Package com.polytechnik.utils
Class IstatesConditionalSameAverage
java.lang.Object
com.polytechnik.utils.IstatesConditionalSameAverage
Find \( \left|\psi\right> \) state such that
execution rate
\[
\frac{\left<\psi|I| \psi\right>}{\left<\psi|\psi\right> }
\xrightarrow[\psi]{\quad }\max
\]
is maximal, subject to constraints:
\begin{align}
0&=\frac{\left<\psi|pI|\psi\right>}{\left<\psi|I|\psi\right>}
-\, \frac{\left<\psi|pJ|\psi\right>}{\left<\psi|J|\psi\right>} \\
1&=\left<\psi|\psi\right>
\end{align}
.
As \( J \) typically time--averge is used,
the constraint means time- and volume- averaged prices to be identical
in \( \left|\psi\right> \) state:
\(
\frac{\left<\psi|pI|\psi\right>}{\left<\psi|I|\psi\right>}
= \frac{\left<\psi|p|\psi\right>}{\left<\psi|\psi\right>}
\).
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
Given an input bQQconditional=bQQi+mu*bQQc matrix find it's eigenvectors and modify then to satisfy the constraint to obtain new |psi> candidates in several variants as perFindPsiConstrainedSameAverage
.private static class
Given an inputFindPsiConstrainedSameAverage
class it takes all it's adjustedFindPsiConstrainedSameAverage.psiConstrained
states and select the one with maximal <psi|I|psi> among all the provided |psi> with the constraint satisfied. -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal boolean
final EVXData
The \( \left|I|\psi\right>=\lambda \left|\psi\right> \) solution.final double
The <psi_M|I|psi_M>.final double
Lagrange multiplier value.final double
Last value of eigenvalue, in case of algorithm convergence matches toi_M
.private static final int
final double
Prices (volume- and time- averaged) in initial |psiH> state.final double
Prices (volume- and time- averaged) in |psi_M> state; must be identical according to constraint.final double
Prices (volume- and time- averaged) in initial |psiH> state.final double
Prices (volume- and time- averaged) in |psi_M> state; must be identical according to constraint.final double[]
The state of maxI conditional to <psi|QQpI|psi>/<psi|QQI|psi> - <psi|QQpJ|psi>/<psi|QQJ|psi> = 0.final double
The <psi_M|psi0>^2, a kind of "distance" to "now". -
Constructor Summary
ConstructorsConstructorDescriptionIstatesConditionalSameAverage
(int n, double[] QQt, double[] QQi, double[] QQI, double[] QQpI, double[] QQJ, double[] QQpJ, OrthogonalPolynomialsBasisFunctionsCalculatable<? extends BasisFunctionsCalculatable> M, double eps) -
Method Summary
Modifier and TypeMethodDescriptionprivate static double
getLagrangeMultiplier
(PsiConstrained bpsi_M, double[] bQQi, double[] bQQc) Calculate Lagrange multiplier.private static List
<IstatesConditionalSameAverage.GetMaxIState> getSeqOfInitFunctions
(int n, List<double[]> bpsiInit, double[] bQQi, double[] bQQI, double[] bQQpI, double[] bQQJ, double[] bQQpJ, List<double[]> tryVariations, double eps) Given a sequence of inputbpsiInit
modify each of them to satisfy the constraint then applyIstatesConditionalSameAverage.GetMaxIState
to find the state with maximal <psi|bQQi|psi>.static void
Unit test.(package private) static void
-
Field Details
-
N_iterations
private static final int N_iterations- See Also:
-
i_M
public final double i_MThe <psi_M|I|psi_M>. -
lambda_i_M
public final double lambda_i_MLast value of eigenvalue, in case of algorithm convergence matches toi_M
. -
LagrangeMultiplier_M
public final double LagrangeMultiplier_MLagrange multiplier value. -
wr0_M
public final double wr0_MThe <psi_M|psi0>^2, a kind of "distance" to "now". -
psi_M
public final double[] psi_MThe state of maxI conditional to <psi|QQpI|psi>/<psi|QQI|psi> - <psi|QQpJ|psi>/<psi|QQJ|psi> = 0. -
I
The \( \left|I|\psi\right>=\lambda \left|\psi\right> \) solution. -
pI_IH
public final double pI_IHPrices (volume- and time- averaged) in initial |psiH> state. -
pJ_IH
public final double pJ_IHPrices (volume- and time- averaged) in initial |psiH> state. -
pI_M
public final double pI_MPrices (volume- and time- averaged) in |psi_M> state; must be identical according to constraint. -
pJ_M
public final double pJ_MPrices (volume- and time- averaged) in |psi_M> state; must be identical according to constraint. -
flag_solution_found
public final boolean flag_solution_found
-
-
Constructor Details
-
IstatesConditionalSameAverage
public IstatesConditionalSameAverage(int n, double[] QQt, double[] QQi, double[] QQI, double[] QQpI, double[] QQJ, double[] QQpJ, OrthogonalPolynomialsBasisFunctionsCalculatable<? extends BasisFunctionsCalculatable> M, double eps)
-
-
Method Details
-
getSeqOfInitFunctions
private static List<IstatesConditionalSameAverage.GetMaxIState> getSeqOfInitFunctions(int n, List<double[]> bpsiInit, double[] bQQi, double[] bQQI, double[] bQQpI, double[] bQQJ, double[] bQQpJ, List<double[]> tryVariations, double eps) Given a sequence of inputbpsiInit
modify each of them to satisfy the constraint then applyIstatesConditionalSameAverage.GetMaxIState
to find the state with maximal <psi|bQQi|psi>. -
getLagrangeMultiplier
Calculate Lagrange multiplier. -
printDiag
-
main
Unit test.
-