Eigenvectors

Help
Greg
2012-08-17
2013-11-04
  • Greg
    Greg
    2012-08-17

    Hello,

    I wonder if their is a possibilty to extract the eigenvectors corresponding
    to a fixed point?

    Greets,
    Gregor

     
  • Drew LaMar
    Drew LaMar
    2012-08-17

    Hi, Gregor.  Here's the command to use:

    <instance of class EquilibriumCurve>.sol.labels['EP'][0]['data'].evecs
    

    This gets the eigenvectors for the first fixed point on the equilibrium curve.  Keep in mind that the SaveEigen flag must be set to True for this information to be there.  Eigenvectors for any other point on the curve can be found by substituting for 0. 

    - Drew

     
  • Greg
    Greg
    2012-08-18

    Hi Drew,

    thank you very much.
    I found that
    <instance of class EquilibriumCurve>.sol.labels]'data'].evecs
    line in the documentation, but it was awkward to find "the right"  .
    So for what value of the bifurcation parameter on the eq. curve are the
    eigenvectors given by that line you proposed?

    Greets,
    Gregor

     
  • Rob Clewley
    Rob Clewley
    2012-08-18

    Gregor,

    I'm not sure I understand your question. Are you saying that you're looking at a point in the bifurcation diagram plot, and you're wondering how to extract the information for it? If so, here's how you could do it:

    Suppose 'sol' is the solution pointset, and you had a free parameter 'p' and variables 'x' and 'y'. The first problem is that sol is not a parameterized pointset, so its 'find' method won't work. The problem can be that the plot is not a graph of p (due to folds, etc). Maybe the diagram is a function of x instead. If you want the point nearest x = 1.5,

    index = find(sol['x'], 1.5)
    

    Then sol will show the eigenvalue and eigenvector information you seek at the nearest point to x = 1.5 in sol. If there are folds and the plot is multi-valued in p in the region you want (suppose p = 0.1), you could find the point with the lowest index with

    index = find(sol['p'], 0.1)
    

    The next point could then be found with

    index2 = index + find(sol['p'][index:], 0.1)
    

    Hope that helps,
    Rob

     
  • Greg
    Greg
    2012-08-18

    Hey,

    What I wanted in the first place are simply the eigenvectors of a specific
    FP for a fixed parameter set. So the evecs of the jacobian at that point. Of course that changes
    when I vary a parameter. But originally I don't wanted necessarily to do
    a continuiation analysis.
    But yep I think your idea will do the job, thx!

    Greg

     
  • Rob Clewley
    Rob Clewley
    2012-08-18

    Well then maybe you were just needing the phase plane toolbox? This tutorial includes finding of 2D fixedpoints and the objects that find the Jacobian and the eigenvalues/vectors (the code is similar for nD, but you have to do more work to classify as it is not automated in that case): http://www.ni.gsu.edu/~rclewley/PyDSTool/Tutorial/Tutorial_VdP.html

    -Rob

     
  • Greg
    Greg
    2012-08-20

    Ok, yes, that is actually where I looked first..I just could not find any documentation about how to extract the eigenval/vecs
    with these toolbox objects..the dir() thing should do it I guess?!
    Anyway thanks for your quick and detailed answers!

    Greg