Package com.polytechnik.utils
Class IstatesConditionalSubspaceLinearConstraints
java.lang.Object
com.polytechnik.utils.IstatesConditionalSubspaceLinearConstraints
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.
This class uses per-iteration linear constraint to improve convergence.
On each iteration instead of commnonly used pair (solution,Lagrange multiplier) we use
a triple: (solution,Lagrange multiplier,Linear constraint).
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
private static class
For a givenu
try a number of adjustment methods, select the one, providing the maximal I after the constraint <psi|bQQc|psi>=0 is satisfied. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final double
Minimal norm for Gaussian elimination.final boolean
Whether a solution exists.private static final boolean
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
ConstructorsConstructorDescriptionIstatesConditionalSubspaceLinearConstraints
(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) static void
Unit test.static void
matchIstatesConditionalSubspaceLinearConstraints
(IstatesConditionalSubspaceLinearConstraints a, IstatesConditionalSubspaceLinearConstraints b, double eps) For unit test.(package private) static void
-
Field Details
-
N_iterations
private static final int N_iterations- See Also:
-
FORCE_DIAG_DUMP
private static final boolean FORCE_DIAG_DUMP- 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. -
condMaxToFail_LinearSystem
private static final double condMaxToFail_LinearSystemMinimal norm for Gaussian elimination.- See Also:
-
-
Constructor Details
-
IstatesConditionalSubspaceLinearConstraints
public IstatesConditionalSubspaceLinearConstraints(int n, double[] QQt, double[] QQi, double[] QQc, OrthogonalPolynomialsBasisFunctionsCalculatable<? extends BasisFunctionsCalculatable> M, double eps)
-
-
Method Details
-
getbQQcFromQQc
double[] getbQQcFromQQc(double[] QQc) -
matchIstatesConditionalSubspaceLinearConstraints
public static void matchIstatesConditionalSubspaceLinearConstraints(IstatesConditionalSubspaceLinearConstraints a, IstatesConditionalSubspaceLinearConstraints b, double eps) For unit test. -
printDiag
-
main
Unit test.
-