bifurcationkit / DDEBifurcationKit.jl

Numerical bifurcation analysis for delay differential equations
MIT License
5 stars 3 forks source link

Computing stability of periodic orbits #16

Open sceptri opened 2 weeks ago

sceptri commented 2 weeks ago

Goal

The continuation of periodic orbits, either from Hopf bifurcation or from orbit guess, is possible and works well. As such, computing the stability of the periodic orbit would be immensely useful.

What I've tried

Using the first neuron example , the computation of eigenvalues needed to determine stability is turned off (as is in all of the examples/tests)

opts_po_cont = ContinuationPar(dsmax = 0.1, ds= -0.0001, dsmin = 1e-4, p_max = 10., p_min=-0., max_steps = 120, detect_bifurcation = 0, save_sol_every_step=1)

Thus I tried enabling it. When tried with the default method to compute Floquet exponents, that is FloquetColl, it gives terrible results - at all times, the precision is insufficient. Using FloquetCollGEV gets me significantly better results, but they still differ from the output of DDE-BifTool.

In my experience, using FloquetCollGEV and trying to determine stability boils down to playing around with tol_stability way too much to give any sensible results.

The problem with inadequate precision of Floquet multipliers still persists in some way. I have also tried enabling mesh adaptation, though it seems to give even worse results sometimes (but I have to investigate this more).

Question

Is there any supported way to compute the Floquet multipliers, or stability in general, with the continuation of periodic orbit? If not, can anyone provide some pointers as to how one might go about implementing it?

Notes

If I'm reading the code correctly, the FloquetCollGEV (and even FloquetColl for that matter) does not use the supplied eigensolver- So supplying DDE_DefaultEig() to it has little to no effect.

rveltz commented 2 weeks ago

Hi,

The computation of Floquet coefficients is not implemented yet for DDE in this package. No wonder that you get strange results.

that is FloquetColl, it gives terrible results - at all times, the precision is insufficient

It is quite close to a solution. I have not looked on how to adapt it to DDE yet.

If not, can anyone provide some pointers as to how one might go about implementing it?

If you want to try it, I will be happy to help!

You can perhaps look at the documentation of DDEBifTool or this paper [1] to get insight on how to do it. You might want to derive a new Floquet eigensolver by taking inspairation from FloquetCollGEV

References

[1] Verheyden, Koen, and Kurt Lust. “A Newton-Picard Collocation Method for Periodic Solutions of Delay Differential Equations.” BIT Numerical Mathematics 45, no. 3 (September 2005): 605–25. https://doi.org/10.1007/s10543-005-0013-4.

rveltz commented 2 weeks ago

but they still differ from the output of DDE-BifTool.

Do you have an example and code to share?

sceptri commented 2 weeks ago

Hello, thank you so much for such a quick response!

I will share my code snippets later today (I don't have my laptop with me now, sorry).

And yeah, I thought I could implement it. So if you'd provide me with some guidance, it would be terrific. I've already looked at some articles discussing this topic, but your reference looks super useful! Thank you :smiley:

rveltz commented 2 weeks ago

See also

Breda, Dimitri, Stefano Maset, and Rossana Vermiglio. “NUMERICAL COMPUTATION OF CHARACTERISTIC MULTIPLIERS FOR LINEAR TIME PERIODIC COEFFICIENTS DELAY DIFFERENTIAL EQUATIONS.” IFAC Proceedings Volumes 39, no. 10 (2006): 163–68. https://doi.org/10.3182/20060710-3-IT-4901.00027.

Michiels, Wim, and Luca Fenzi. “Spectrum-Based Stability Analysis and Stabilization of a Class of Time-Periodic Time Delay Systems.” SIAM Journal on Matrix Analysis and Applications 41, no. 3 (January 2020): 1284–1311. https://doi.org/10.1137/19M1275851.

sceptri commented 2 weeks ago

Okay, so as I promised, here are MWEs in both DDEBifurcationKit.jl and DDE-BIFTOOL (I ran that on GNU Octave and it worked well)

Both needed to be included as .txt because of GitHub...

Except for some fancy plotting at the end of both files, which should be rather straightforward, it is all taken from the tutorials (dde-biftool and julia)

rveltz commented 2 weeks ago

Great thabk you