# [SciPy-user] Eigenvalues of the Floquet matrix

Nils Wagner nwagner@iam.uni-stuttgart...
Mon Mar 16 04:26:01 CDT 2009

On Sun, 15 Mar 2009 13:56:00 -0400
Rob Clewley <rob.clewley@gmail.com> wrote:
> Hi Nils,
>
>> The eigenvalues \lambda of the Floquet matrix are called
>>multipliers.
>> Multipliers of system (1) possess symmetry: If \lambda
>>is the
>> multiplier, then 1/\lambda is also a multiplier.
>
> I am still not certain what the problem with your code
>is
> specifically, but I can verify that when I put your
>model and
> calculations into PyDSTool I get symmetric eigenvalues.
>
>> The computation of a stability chart is a time-consuming
>>task even for low dimensional systems.
>
> The integrations with PyDSTool are an order of magnitude
>faster or
> more even at the higher tolerances, so that should help
>a lot.
>
>> How can I improve the numerical results concerning the
>>symmetry ?
>
> It could be just that the VODE integrator is not having
>its absolute
> and relative tolerances set small enough (I'm not sure
>what these are
> by default for VODE but I'm using values for Radau down
>near 1e-12). I
> am also integrating with smaller maximum step size
>(0.001).
>
>For the first pair of (omega, delta) = (16.2,
>0.0128205128205)
> parameter values that your code detects as giving a
>stable orbit, my
> code does not agree. Your final point on the last of the
>four computed
> orbits ("ic=3" in your loop) is
>
> q1: 0.04280477
> q1dot: 0.35978081
> q2: 0.33468969
> q2dot: 0.48781428
>
> whereas mine is
>
> q1:  0.0404874798281
> q1dot:  0.350985516948
> q2:  0.336574584737
> q2dot:  0.504365520376
>
> which would appear to suggest a source of error during
>integration
> between our codes. My eigenvalues of F are
>
> [ 0.96241252+0j          0.00799704+0.99996802j
> 0.00799704-0.99996802j
>  1.03905548+0.j        ]
>
> which are indistinguishable, as a set, from their
>reciprocals. I've
> attached my PyDSTool script in case changing the VODE
>tolerances don't
> get you the accuracy you need. Please let me know if you
>get VODE to
> be more agreeable, I'm curious.
>
> -Rob

Hi Rob,

Thank you very much for your detailed answers !

Again, I wrestle with the installation of PyDSTool
on my x86_64 box (OpenSuSe11.1).

It would be really nice to have a setup.py ;-)

Anyway, I have used

svn co http://jay.cam.cornell.edu/svn/PyDSTool/trunk
PyDSTool

to get the latest version of PyDSTool.

Here is the contents of
~/local/lib64/python2.6/site-packages/PyDSTool.pth

$HOME$HOME/svn
$HOME/svn/PyDSTool$HOME/svn/PyDSTool/PyDSTool
$HOME/svn/PyDSTool/PyDSTool/tests echo$PYTHONPATH
/home/nwagner/:/home/nwagner/local/lib64/python2.6/site-packages/:/home/nwagner/svn/PyDSTool/PyDSTool:/home/nwagner/svn/PyDSTool/PyDSTool/tests

python -i seyranian-PyDSTool.py
Traceback (most recent call last):
File "seyranian-PyDSTool.py", line 1, in <module>
from PyDSTool import *
ImportError: No module named PyDSTool

Best wishes,
Nils