Dynamical systems ODEs

De Popix
Aller à : Navigation, rechercher

Sommaire

Test

Autonomous dynamical systems

Consider a time-varying system $A(t)=(A_1(t),A_2(t),\ldots A_J(t))$ defined by a system of Ordinary Differential Equations (ODE)

\begin{equation} \tag{1} \dot{A} = F(A(t)) \end{equation}

where $\dot{A}(t)$ denotes the vector of derivatives of $A(t)$ with respect to $t$: \begin{equation} \tag{2} \left\{ \begin{array}{lll} \dot{A}_1(t) & = & F_1(A(t)) \\ \dot{A}_2(t) & = & F_2(A(t)) \\ \vdots & \vdots & \vdots \\ \dot{A}_L(t) & = & F_L(A(t)) \end{array} \right. \end{equation}

Notations:

  1. let $A_0 = A(t_0)$ be the initial condition of the system defined at the initial time $t_0$,
  2. let $A^{\star}$ be the solution of the system at equilibrium: $F(A^{\star}) =0$


A basic model

We assume here that there is no input: \begin{eqnarray*} A(t_0) &= &A_0 \\ \dot{A}(t) &= &F(A(t)) \, \ t \geq t_0 \end{eqnarray*}


Example: A viral kinetic (VK) model.

In this example, the data file contains the viral load:


ID TIME VL
1 -5 6.5
1 -2 7.1
1 1 6.3
1 5 4.2
1 12 2.1
1 20 0.9
$\vdots$ $\vdots$ $\vdots$



Consider a basic VK model with $A=(N,I,V)$ where $N$ is the number of non infected target cells, $C$ the number of infected target cells and $V$ the number of virus.

After infection and before treatment, the dynamics of the system is described by this ODE system: \begin{equation} \tag{3} \begin{array}{lll} \dot{N}(t) & = & s - \beta \, \it{N}(t) \it{V}(t) - d\it{N}(t) \\ \dot{I}(t) & = & \beta \, \it{N}(t)\, \it{V}(t) - \delta \, \it{I}(t) \\ \dot{V}(t) & = & p \it{I}(t) - c \, \it{V}(t) \end{array} \end{equation}

The equilibrium state of this system is $A^{\star} = (N^{\star} , I^{\star} , V^{\star})$, where

\begin{equation} \tag{4} N^{\star} = \frac{\delta \, c}{ \beta \, p} \quad ; \quad I^{\star} = \frac{s - d\, N^{\star}}{ \delta} \quad ; \quad V^{\star} = \frac{ p \, I^{\star} }{c}. \end{equation}

Assume that the system has reached the equilibrium state $A^{\star}$ when the treatment starts at time $t_0=0$. The treatment inhibits the infection of the target cells and blocks the production of virus. The dynamics of the new system is described with this new ODE system:

\begin{equation} \tag{5} \begin{array}{lll} \dot{N}(t) & = & s - \beta(1-\eta) \, N(t) \, V(t) - d\, N(t) \\ \dot{I}(t) & = & \beta(1-\eta) \, N(t) \, V(t) - \delta \, I(t) \\ \dot{V}(t) & = & p(1-\varepsilon) \, I(t) - c \, V(t) \end{array} \end{equation}

where $0<\varepsilon <1$ and $0 < \eta < 1$.


The initial condition and the dynamical system are described in the MDL (in a block EQUATION with MLXTRAN):


\begin{minipage}[b]{10cm} \begin{verbatim} UNIQ4ee9ba7b592d8861-MathJax-22-QINU\AsUNIQ4ee9ba7b592d8861-MathJax-23-QINUt<0UNIQ4ee9ba7b592d8861-MathJax-24-QINUt_0< t_1< ...<t_KUNIQ4ee9ba7b592d8861-MathJax-25-QINUF^{(1)}, F^{(2)},\ldots,F^{(K)}UNIQ4ee9ba7b592d8861-MathJax-26-QINUT_{Start1}UNIQ4ee9ba7b592d8861-MathJax-27-QINUT_{Start2}UNIQ4ee9ba7b592d8861-MathJax-28-QINUT_{Stop}UNIQ4ee9ba7b592d8861-MathJax-29-QINU(T_{Start1},T_{Start2},T_{Stop})UNIQ4ee9ba7b592d8861-MathJax-30-QINUT_{Start1}=0UNIQ4ee9ba7b592d8861-MathJax-31-QINUT_{Start2}=20UNIQ4ee9ba7b592d8861-MathJax-32-QINUT_{Stop}=200UNIQ4ee9ba7b592d8861-MathJax-33-QINUT_{Start1}UNIQ4ee9ba7b592d8861-MathJax-34-QINUA(t) = \AsUNIQ4ee9ba7b592d8861-MathJax-35-QINU\AsUNIQ4ee9ba7b592d8861-MathJax-36-QINUT_{Start1}UNIQ4ee9ba7b592d8861-MathJax-37-QINUT_{Start2}UNIQ4ee9ba7b592d8861-MathJax-38-QINUT_{Start2}UNIQ4ee9ba7b592d8861-MathJax-39-QINUT_{Stop}UNIQ4ee9ba7b592d8861-MathJax-40-QINUT_{Stop}UNIQ4ee9ba7b592d8861-MathJax-41-QINUEQUATION" and using the statement \verb"SWITCH" with MLXTRAN). We only show the blocks \verb"UNIQ4ee9ba7b592d8861-MathJax-42-QINUEQUATION" of the code: \hspace*{2cm} \begin{minipage}[b]{10cm} \begin{verbatim} UNIQ4ee9ba7b592d8861-MathJax-43-QINUEQUATION SWITCH CASE T < T_Start1 N = delta*c/(beta*p); I = (s-d*N)/delta V = p*I/c CASE T_Start1 < T < T_Start2 DDT_N = s - beta*N*V - d*N DDT_I = beta*N*V - delta*I DDT_V = p*(1-epsilon)*I - c*V CASE T_Start2 < T < T_Stop DDT_N = s - beta*(1-eta)*N*V - d*N DDT_I = beta*(1-eta)*N*V - delta*I DDT_V = p*(1-epsilon)*I - c*V CASE T > T_Stop DDT_N = s - beta*(1-eta*exp(-k1*(T-T_Stop)))*N*V - d*N DDT_I = beta*(1-eta*exp(-k1*(T-T_Stop)))*N*V - delta*I DDT_V = p*(1-epsilon*exp(-k2*(T-T_Stop)))*I - c*V END \end{verbatim} \end{minipage}

\noindent{\bf Remark 1:} Here, \verb"EVENT" is a reserved variable name. Then, the information in the column \verb"EVENT" is recognized as a succession of events. Furthermore, the times of the events \verb"Start1", \verb"Start2" and \verb"Stop" are automatically created as \verb"T_Start1", \verb"T_Start2" and \verb"T_Stop".

\noindent{\bf Remark 2:} In this particular example, the dynamical system is described by parameters $\beta$ and $p$ whose definition switches. Then, the same model could be encoded as follows:

\hspace*{2cm} \begin{minipage}[b]{10cm} \begin{verbatim} $EQUATION T_0 = T_Start1 N_0 = delta*c/(beta*p); I_0 = (s-d*N)/delta V_0 = p*I/c SWITCH CASE T_Start1 < T < T_Start2 be = beta pe = p*(1-epsilon) CASE T_Start2 < T < T_Stop be = beta*(1-eta) pe = p*(1-epsilon) CASE T > T_Stop be = beta*(1-eta*exp(-k1*(T-T_Stop))) pe = p*(1-epsilon*exp(-k2*(T-T_Stop))) END DDT_N = s - be*N*V - d*N DDT_I = be*N*V - delta*I DDT_V = pe*I - c*V \end{verbatim} \end{minipage}

Dynamical systems with source terms

Outils personnels
Espaces de noms

Variantes
Actions
WikiPopix
Introduction
Models
Tasks & Tools
Methods
Download files
Boîte à outils