Catalyst.jl
Catalyst.jl copied to clipboard
[v14 ready] New stability computation
New version of: https://github.com/SciML/Catalyst.jl/pull/730 (rebasing was a mess)
Enables computation of stability of steady states. Conservation laws should be accounted for.
Simple example:
using Catalyst
import HomotopyContinuation
rs = @reaction_network begin
(v/10.0 + hill(X, v, K, n), d), 0 <--> X
end
p = [:v => 2.0, :K => 1.0, :n => 3, :d => 1.0]
steady_states = hc_steady_states(rs, p)
steady_state_stability(steady_states[1], rs, p) # true
steady_state_stability(steady_states[2], rs, p) # false
steady_state_stability(steady_states[3], rs, p) # true
steady_state_stability(steady_states, rs, p) # [1, 0, 1]
ss_jac = steady_state_jac(rs) # [1, 0, 1]
steady_state_stability(steady_states, rs, p; ss_jac=ss_jac) # [1, 0, 1]
Also add a function is_autnomous that checks whether a system is autonomous. Add this as an error check when creating BifurcationProblems, NonlinearSystems, and computing steady states using hc_steady_states.
Remove autonomy check for NonlinearSystems for now, however, it is probably something we will have to think about at some point (at least the user will get an error quite soon right now anyway).