Class IstatesConditionalV2

java.lang.Object
com.polytechnik.utils.IstatesConditionalV2

public class IstatesConditionalV2 extends Object
Find \( \left|\psi\right> \) state such that \[ \frac{\left<\psi|I| \psi\right>}{\left<\psi|\psi\right> } \xrightarrow[\psi]{\quad }\max \] subject to: \[ \left<\psi|C|\psi\right>=0 \] . Similar to IstatesConditional but has an updated algorithm (minor improvements). A different approach in IstatesConditionalSubspaceLinearConstraints seems to provide better results.
See Also:
  • Field Details

    • N_iterations

      private static final int N_iterations
      See Also:
    • i_M

      public final double i_M
      The <psi_M|I|psi_M>.
    • lambda_i_M

      public final double lambda_i_M
      Last value of eigenstate, in case of algorithm convergence matches to i_M.
    • LagrangeMultiplier_M

      public final double LagrangeMultiplier_M
      Lagrange multiplier value.
    • wr0_M

      public final double wr0_M
      The <psi_M|psi0>^2, a kind of "distance" to "now".
    • psi_M

      public final double[] psi_M
      The state of maxI conditional to <psi|QQc|psi>=0.
    • flag_solution_exists

      public final boolean flag_solution_exists
      Whether a solution exists.
    • I

      public final EVXData I
      The |I|psi>=lambda |psi> solution.
  • Constructor Details

  • Method Details

    • getbQQcFromQQc

      double[] getbQQcFromQQc(double[] QQc)
    • getInitialTriesCommonVersion

      static List<double[]> getInitialTriesCommonVersion(int n)
    • getSeqOfInitFunctions

      private static List<IstatesConditionalV2.GetMaxIState> getSeqOfInitFunctions(int n, List<double[]> bpsiInit, double[] bQQi, double[] bQQc, double[] ev_bQQc, double eps)
      Given a sequence of input bpsiInit modify each of them to satisfy the constraint then apply IstatesConditionalV2.GetMaxIState to find the state with maximal <psi|bQQi|psi>.
    • selectSomeNotVerySimilarInitFunctions

      static <T> List<T> selectSomeNotVerySimilarInitFunctions(int n, int nInitApprox, List<T> inSorted, Function<T,double[]> getPsi)
      Select given number of initial states removing too similar.
    • getLagrangeMultiplier

      private static double getLagrangeMultiplier(PsiConstrained bpsi_M, double[] bQQi, double[] bQQc)
      Calculate Lagrange multiplier.
    • printDiag

      static void printDiag(IstatesConditionalV2 m)
    • main

      public static void main(String[] args)
      Unit test.