Calculate Equilibrium points for continuous system DynamicalSystems.jl

I need calculate all equilibrium points for dynamical system Hindmarsh Rose (HR). Code for system:

function HR!(du, u, p, t)
    
    function sigma(x)
            return 1.0 / ( 1.0 + exp( -10.0 * ( x  - ( - 0.25 ) ) ) )
    end
    
    a, b, c, d, s, xr, r,  I, vs, k1, k2, el_link  = p
    x1, y1, z1, x2, y2, z2 = u
    
    du[1] = y1 + b * x1 ^ 2 - a * x1 ^3 - z1 + I - k1 * ( x1 - vs ) * sigma(x2) + el_link * ( x2 - x1 )
    du[2] = c - d * x1 ^2 - y1
    du[3] = r * ( s * ( x1 - xr ) - z1 )
    
    du[4] = y2 + b * x2 ^ 2 - a * x2 ^3 - z2 + I - k2 * ( x2 - vs ) * sigma(x1) + el_link * ( x1 - x2 )
    du[5] = c - d * x2 ^2 - y2
    du[6] = r * ( s * ( x2 - xr ) - z2 )
    
    return SVector(du[1], du[2], du[3],
                    du[4], du[5], du[6])
end

That is two coupled HR element. How can i get equilibrium points ? Are there any packages that look for equilibrium points for the system ?
For such a system it is too problematic to find equilibrium points analytically
Monodromy matrix i can not use because need find equilibrium points in regular and chaotic modes

Typing “equilibrium points” in the search bar of the docs gives this as first result :wink:

https://juliadynamics.github.io/DynamicalSystems.jl/dev/chaos/periodicity/#Fixed-points

2 Likes

I’m sorry, i’m too inattentive. Thank you.

No, this isn’t possible out of the box. You would need to combine the Poincare map integrator with a newton solver or NLSolve.jl. GitHub - JuliaNLSolvers/NLsolve.jl: Julia solvers for systems of nonlinear equations and mixed complementarity problems

if you do write this code, please consider contributing it back to DynamicalSystems.jl.

Okay, I’m sorting out the code for poincaré. I think it will take some time because some lines of code are not clear to me

What do you mean ? The source code of the poincare map should be completely irrelevant. You have want to find the zeros of pmal(u) - u using Newton method or whatever nlsolve jl gives you. This is really easy. See also chapter 4 section 2 of our book if this newton’s approach for fjnding fixed points isn’t clear to you.

I don’t understand yet how I can get the Poincare mapping itself in the form of equations

That’s why you need to use nlsolve.jl, because the poincare map doesn’t doesn’t equations.