Package com.polytechnik.utils
Class IstatesConditional
java.lang.Object
com.polytechnik.utils.IstatesConditional
Find the <psi|I|psi> -> max state
subject to the constraint: <psi|C|psi>=0.
Here we use self--concordant approach to solve Rayleigh quotient
maximization with the quadratic constraint:<psi|C|psi>=0.
There is an updated and improved version
IstatesConditionalV2
and especially IstatesConditionalSubspaceLinearConstraints
.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate class
Try all eigenvectors available. -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal boolean
Whether a solution exists.final EVXData
The |I|psi>=lambda |psi> solution.final double
final double
final double
private static final int
final double
final double[]
The state of maxI conditional to <psi|QQc|psi>=0.final double
-
Constructor Summary
ConstructorsConstructorDescriptionIstatesConditional
(int n, double[] QQt, double[] QQi, double[] QQc, OrthogonalPolynomialsBasisFunctionsCalculatable<? extends BasisFunctionsCalculatable> M, double eps) -
Method Summary
Modifier and TypeMethodDescription(package private) double[]
getbQQcFromQQc
(double[] QQc) (package private) double
getInitialLagrangeMultiplier
(int n, double[] QQt, double[] QQi, double[] QQc, OrthogonalPolynomialsBasisFunctionsCalculatable<? extends BasisFunctionsCalculatable> M, double[] bQQi, double[] bQQc) static void
Unit test.static void
matchIstatesConditional
(IstatesConditional a, IstatesConditional b, double eps) For unit test.(package private) static void
-
Field Details
-
N_iterations
private static final int N_iterations- See Also:
-
i_M
public final double i_M -
lambda_i_M
public final double lambda_i_M -
LagrangeMultiplier_M
public final double LagrangeMultiplier_M -
wr0_M
public final double wr0_M -
orig_constraint
public final double orig_constraint -
psi_M
public final double[] psi_MThe state of maxI conditional to <psi|QQc|psi>=0. -
flag_solution_exists
public final boolean flag_solution_existsWhether a solution exists. -
I
The |I|psi>=lambda |psi> solution.
-
-
Constructor Details
-
IstatesConditional
public IstatesConditional(int n, double[] QQt, double[] QQi, double[] QQc, OrthogonalPolynomialsBasisFunctionsCalculatable<? extends BasisFunctionsCalculatable> M, double eps)
-
-
Method Details
-
getInitialLagrangeMultiplier
double getInitialLagrangeMultiplier(int n, double[] QQt, double[] QQi, double[] QQc, OrthogonalPolynomialsBasisFunctionsCalculatable<? extends BasisFunctionsCalculatable> M, double[] bQQi, double[] bQQc) -
getbQQcFromQQc
double[] getbQQcFromQQc(double[] QQc) -
matchIstatesConditional
For unit test. -
printDiag
-
main
Unit test.
-