Library of polynomial ODEs

Library of commonly used or famous polynomial ODE systems.

The following functions are available:

arrowsmith_and_place_fig_3_5e_page_79() Nonlinear two-dimensional system with an hyperbolic fixed point
biomodel_2() Nine-dimensional polynomial ODE form a biological model
chen_seven_dim() Seven-dimensional nonlinear system of quadratic order
cubic_scalar() Scalar ODE with a cubic term
quadratic_scalar() Scalar ODE with a quadratic term
vanderpol() Van der Pol oscillator

AUTHOR:

  • Marcelo Forets (May 2017)
carlin.library.arrowsmith_and_place_fig_3_5e_page_79()

Nonlinear two-dimensional system with an hyperbolic fixed point.

It is defined as:

\[\begin{split}\begin{aligned} x' &= x^2+(x+y)/2 \\ y' &= (-x+3y)/2 \end{aligned}\end{split}\]

Taken from p. 79 of the book by Arrowsmith and Place, Dynamical Systems: Differential Equations, maps and chaotic behaviour.

carlin.library.biomodel_2()

This is a nine-dimensional polynomial ODE used as benchmark model in the Flow star tool.

The model is adapted from E. Klipp, R. Herwig, A. Kowald, C. Wierling, H. Lehrach. Systems Biology in Practice: Concepts, Implementation and Application. Wiley-Blackwell, 2005.

carlin.library.chen_seven_dim(u=0)

This is a seven-dimensional nonlinear system of quadratic order.

It appears as 'example_nonlinear_reach_04_sevenDim_nonConvexRepr.m' in the tool CORA 2016, in the examples for continuous nonlinear systems.

There is an independent term, \(u\), in the fourth equation with value \(2.0\) that has been neglected here for convenience (hence we take \(u=0\) by default).

carlin.library.cubic_scalar(a=1, b=1)

A scalar ODE with a cubic term.

It is defined as:

\[x'(t) = ax(t) + bx(t)^3\]

where \(a\) and \(b\) are paremeters of the ODE.

EXAMPLES:

sage: from carlin.library import cubic_scalar
sage: C = cubic_scalar(-1, 1)
sage: C.funcs()
[x0^3 - x0]

Compute the Carleman embedding truncated at order \(N=4\):

sage: from carlin.transformation import get_Fj_from_model, truncated_matrix 
sage: Fj = get_Fj_from_model(C.funcs(), C.dim(), C.degree())
sage: matrix(truncated_matrix(4, *Fj, input_format="Fj_matrices").toarray())
[-1.0  0.0  1.0  0.0]
[ 0.0 -2.0  0.0  2.0]
[ 0.0  0.0 -3.0  0.0]
[ 0.0  0.0  0.0 -4.0]
carlin.library.quadratic_scalar(a=1, b=1)

A scalar ODE with a quadratic term.

It is defined as:

\[x'(t) = ax(t) + bx(t)^2\]

where \(a\) and \(b\) are paremeters of the ODE.

EXAMPLES:

sage: from carlin.library import quadratic_scalar
sage: Q = quadratic_scalar(); Q
A Polynomial ODE in n = 1 variables
sage: Q.funcs()
[x0^2 + x0]

Compute the Carleman embedding truncated at order \(N=4\):

sage: from carlin.transformation import get_Fj_from_model, truncated_matrix 
sage: Fj = get_Fj_from_model(Q.funcs(), Q.dim(), Q.degree())
sage: matrix(truncated_matrix(4, *Fj, input_format="Fj_matrices").toarray())
[1.0 1.0 0.0 0.0]
[0.0 2.0 2.0 0.0]
[0.0 0.0 3.0 3.0]
[0.0 0.0 0.0 4.0]
carlin.library.vanderpol(mu=1, omega=1)

The Van der Pol oscillator is a non-conservative system with non-linear damping.

It is defined as:

\[\begin{split}\begin{aligned} x' &= y \\ y' &= -\omega^2 x - (x^2 - 1) \mu y \end{aligned}\end{split}\]

where \(\omega\) is the natural frequency and \(\mu\) is the damping parameter. For additional information see the Wikipedia article Van_der_Pol_oscillator.

EXAMPLES:

sage: from carlin.library import vanderpol
sage: vanderpol(SR.var('mu'), SR.var('omega')).funcs()
[x1, -omega^2*x0 - (x0^2 - 1)*mu*x1]