Local Lyapunov analysis
For comparison with neural Lyapunov methods, we also provide a function for local Lyapunov analysis by linearization.
NeuralLyapunov.local_lyapunov
— Functionlocal_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.