Local Lyapunov analysis

For comparison with neural Lyapunov methods, we also provide a function for local Lyapunov analysis by linearization.

NeuralLyapunov.local_lyapunovFunction
local_lyapunov(dynamics, state_dim, optimizer_factory[, jac]; fixed_point, p)

Use semidefinite programming to derive a quadratic Lyapunov function for the linearization of dynamics around fixed_point. Return (V, dV/dt).

To solve the semidefinite program, JuMP.Model requires an optimizer_factory capable of semidefinite programming (SDP). See the JuMP documentation for examples.

If jac is not supplied, the Jacobian of the dynamics(x, p, t) with respect to x is calculated using ForwardDiff. Otherwise, jac is expected to be either a function or an AbstractMatrix. If jac isa Function, it should take in the state and parameters and output the Jacobian of dynamics with respect to the state x. If jac isa AbstractMatrix, it should be the value of the Jacobian at fixed_point.

If fixed_point is not specified, it defaults to the origin, i.e., zeros(state_dim). Parameters p for the dynamics should be supplied when the dynamics depend on them.

source