#+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:nil -:t f:t *:t TeX:t LaTeX:t skip:t d:t tags:not-in-toc creator:t timestamp:nil author:nil title:nil html5-fancy:t
#+HTML_DOCTYPE: html5
#+HTML_HEAD:
#+HTML_HEAD:
#+HTML_HEAD:
#+HTML_HEAD:
#+HTML_HEAD:
#+HTML_HEAD:
#+LANGUAGE: fr
#+STARTUP: latexpreview
#+TITLE: Systèmes d'équations différentielles linéaires
#+DATE: Septembre 2026
#+AUTHOR: Stéphane Adjemian
#+EMAIL: stephane.adjemian@univ-lemans.fr
#+PROPERTY: header-args:python :python /tmp/blog-sedl/bin/python
#+BEGIN_QUOTE
Cette note prolonge celle consacrée aux
[[https://stephane-adjemian.fr/posts/equations-differentielles-du-premier-ordre/][équations différentielles du premier ordre]]
en considérant plusieurs variables dont les variations dépendent
linéairement des niveaux de toutes les autres. La difficulté nouvelle tient à
cet enchevêtrement, et la stratégie consiste à le défaire par un changement
de base\nbsp{}: dans une base de vecteurs propres de la matrice de transition,
le système se ramène à des équations scalaires que l'on sait résoudre, au
prix d'un détour par les nombres complexes lorsque les valeurs propres ne
sont pas réelles. On traite ensuite le cas des matrices non diagonalisables,
les équations linéaires d'ordre $n$, qui ne sont que des systèmes déguisés,
et l'on termine par la stabilité, avec le théorème caractérisant les
matrices dont toutes les solutions convergent vers zéro et le critère de
Routh–Hurwitz. Les vérifications numériques et les figures sont faites en
Python, et les corrigés des exercices sont donnés dans des blocs dépliables.
#+END_QUOTE
\\
\\
\\
#+BEGIN_SRC bash :results silent :exports none :async t
python3 -m venv /tmp/blog-sedl
source /tmp/blog-sedl/bin/activate
pip install numpy scipy matplotlib
#+END_SRC
#+begin_src python :session sedl :exports none :results none
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp
#+end_src
* Systèmes linéaires du premier ordre
:PROPERTIES:
:CUSTOM_ID: systeme
:END:
#+BEGIN_definition
Soient $a_{i,j}$ (pour $i=1,\dots,n$ et $j=1,\dots,n$) des paramètres réels
et $b_i(t)$ (pour $i=1,\dots,n$) des fonctions continues de $\mathbb R^+$
dans $\mathbb R$. Les fonctions $x_i(t)$, $i=1,\dots,n$, définies sur
$\mathbb R^+$ sont solutions du /système d'équations différentielles
linéaires du premier ordre/\nbsp{}:
\begin{equation*}
\begin{cases}
\dot x_1(t) = a_{1,1}\,x_1(t) + a_{1,2}\,x_2(t) + \dots + a_{1,n}\,x_n(t) + b_1(t)\\
\dot x_2(t) = a_{2,1}\,x_1(t) + a_{2,2}\,x_2(t) + \dots + a_{2,n}\,x_n(t) + b_2(t)\\
\quad\vdots\\
\dot x_n(t) = a_{n,1}\,x_1(t) + a_{n,2}\,x_2(t) + \dots + a_{n,n}\,x_n(t) + b_n(t)
\end{cases}
\end{equation*}
si elles sont dérivables sur $\mathbb R^+$ et si elles vérifient, avec leurs
dérivées $\dot x_i(t)$, ces $n$ équations pour tout $t$ dans $\mathbb R^+$.
#+END_definition
Le système est linéaire parce que les niveaux $x_j(t)$ n'y interviennent que
par des combinaisons linéaires, et du premier ordre parce que seules les
dérivées premières apparaissent. Les fonctions $b_i(t)$ forment le /second
membre/\nbsp{}; lorsqu'elles sont toutes nulles on dit que le système est
/homogène/, ou sans second membre.
** Notation matricielle
:PROPERTIES:
:CUSTOM_ID: notation
:END:
On note $X(t)\equiv\bigl(x_1(t),\dots,x_n(t)\bigr)^\top$ le vecteur des
variables, à valeurs dans $\mathbb R^n$, $\dot X(t)$ le vecteur de leurs
dérivées et $b(t)\equiv\bigl(b_1(t),\dots,b_n(t)\bigr)^\top$ le vecteur du
second membre. Le système de la définition s'écrit alors de façon
équivalente\nbsp{}:
\begin{equation*}
\dot X(t) = A\,X(t) + b(t)
\end{equation*}
où la matrice réelle carrée $A$, de dimension $n\times n$, est définie
par\nbsp{}:
\begin{equation*}
A =
\begin{pmatrix}
a_{1,1} & a_{1,2} & \dots & a_{1,n}\\
a_{2,1} & a_{2,2} & \dots & a_{2,n}\\
\vdots & \vdots & \ddots & \vdots\\
a_{n,1} & a_{n,2} & \dots & a_{n,n}
\end{pmatrix}
\end{equation*}
On appellera $A$ la /matrice de transition/ du système. Lorsque $n=1$ on
retrouve l'équation $\dot x(t) = a\,x(t) + b(t)$ étudiée dans la
[[https://stephane-adjemian.fr/posts/equations-differentielles-du-premier-ordre/][note précédente]],
dont nous utiliserons librement les résultats.
#+BEGIN_remarque
On s'intéresse aux solutions réelles du système. Néanmoins, la recherche de
ces solutions nous conduira à transformer le système, et nous serons parfois
amenés à calculer les solutions complexes du système transformé, c'est-à-dire
des fonctions de $\mathbb R^+$ dans $\mathbb C^n$. La propriété suivante
montre que ce détour ne pose pas de difficulté.
#+END_remarque
#+BEGIN_property
Si $A$ et $b(t)$ sont une matrice et un vecteur réels, alors la fonction
complexe $X(t) = X_1(t) + \mathrm i\,X_2(t)$, où $X_1$ et $X_2$ sont à valeurs
dans $\mathbb R^n$, est solution de $\dot X(t) = A\,X(t) + b(t)$ si et
seulement si\nbsp{}:
\begin{equation*}
\begin{cases}
\dot X_1(t) = A\,X_1(t) + b(t)\\
\dot X_2(t) = A\,X_2(t)
\end{cases}
\end{equation*}
La partie réelle d'une solution complexe est une solution réelle du système
complet, et sa partie imaginaire une solution réelle du système homogène.
#+END_property
#+BEGIN_proof
En substituant $X(t) = X_1(t) + \mathrm i\,X_2(t)$ dans le système, il vient
\(\dot X_1(t) + \mathrm i\,\dot X_2(t) = A\,X_1(t) + \mathrm i\,A\,X_2(t) + b(t)\).
Puisque $A$ et $b(t)$ sont réels, $A X_1(t) + b(t)$ et $A X_2(t)$ sont réels,
et deux vecteurs complexes sont égaux si et seulement si leurs parties
réelles et imaginaires le sont.
#+END_proof
** Transformation équivalente du système
:PROPERTIES:
:CUSTOM_ID: transformation
:END:
Résoudre directement le système n'est généralement pas possible, car la
variation de chaque variable, $\dot x_i(t)$, dépend des niveaux de toutes les
variables. L'idée est de considérer de nouvelles variables, combinaisons
linéaires indépendantes des variables originales, choisies de sorte que la
variation de chaque nouvelle variable ne dépende que de son propre niveau (et
du second membre). Si l'on y parvient, le système se ramène à $n$ équations
différentielles scalaires que nous savons résoudre.
Plus formellement, soit $H$ une matrice carrée inversible de dimension
$n\times n$, à éléments dans $\mathbb C$, que nous interprétons comme une
matrice de changement de base. Posons\nbsp{}:
\begin{equation*}
Y(t) = H^{-1}X(t)
\end{equation*}
Le vecteur $Y(t)$ est composé de $n$ fonctions de $\mathbb R^+$ dans
$\mathbb C$, et par linéarité de la dérivation nous avons
$\dot Y(t) = H^{-1}\dot X(t)$. En substituant $X(t) = H\,Y(t)$ dans le
système, puis en prémultipliant par $H^{-1}$, il vient\nbsp{}:
\begin{equation*}
\begin{split}
\dot X(t) = A\,X(t) + b(t)
&\Leftrightarrow H\,\dot Y(t) = A\,H\,Y(t) + b(t)\\
&\Leftrightarrow \dot Y(t) = H^{-1}A\,H\,Y(t) + H^{-1}b(t)
\end{split}
\end{equation*}
soit, en posant $\hat A \equiv H^{-1}AH$ et \(c(t)\equiv H^{-1}b(t)\)\nbsp{}:
\begin{equation*}
\dot Y(t) = \hat A\,Y(t) + c(t)
\end{equation*}
Ce /système transformé/ est équivalent au système initial\nbsp{}: $X(t)$ est
solution du premier si et seulement si $Y(t) = H^{-1}X(t)$ est solution du
second, et les conditions initiales se correspondent par $Y(0) = H^{-1}X(0)$.
Tout le problème est de choisir $H$ pour que $\hat A$ soit aussi simple que
possible. Le cas idéal est celui où $\hat A$ est diagonale\nbsp{}; à défaut, nous
verrons que l'on peut toujours obtenir une matrice triangulaire par blocs,
ce qui suffit à résoudre le système de proche en proche.
* Réduction de la matrice de transition
:PROPERTIES:
:CUSTOM_ID: reduction
:END:
** Diagonalisation
:PROPERTIES:
:CUSTOM_ID: diagonalisation
:END:
Soit $A$ une matrice carrée réelle de dimension $n\times n$ et $I_n$ la
matrice identité de même dimension. Le /polynôme caractéristique/ de $A$ est
le polynôme de degré $n$ en \(\lambda\)\nbsp{}:
\begin{equation*}
\chi_A(\lambda) = \left|A - \lambda I_n\right|
\end{equation*}
où $|\cdot|$ désigne le déterminant. Les /valeurs propres/ de $A$ sont les
racines, réelles ou complexes, de $\chi_A$, c'est-à-dire les nombres
$\lambda$ tels que $|A-\lambda I_n| = 0$. Le polynôme caractéristique
possède au plus $n$ racines distinctes. On note $\lambda_k$, $k=1,\dots,m$
(avec $m\leq n$), ces racines distinctes et $r_k$ leurs ordres de
multiplicité, avec $\sum_{k=1}^m r_k = n$. Pour chaque valeur propre
$\lambda_k$, la matrice $A-\lambda_kI_n$ est singulière, et il existe donc
des vecteurs $v$ non nuls tels que\nbsp{}:
\begin{equation*}
(A-\lambda_kI_n)\,v = 0
\qquad\Leftrightarrow\qquad
A\,v = \lambda_k v
\end{equation*}
Un tel vecteur est un /vecteur propre/ associé à $\lambda_k$. L'ensemble des
solutions de cette équation linéaire est un sous-espace vectoriel de
$\mathbb C^n$, le /sous-espace propre/ associé à $\lambda_k$, dont la
dimension $q_k$ vérifie $1\leq q_k\leq r_k$.
#+BEGIN_definition
La matrice $A$ est /diagonalisable/ si, pour chaque valeur propre
$\lambda_k$, on peut trouver $r_k$ vecteurs propres linéairement
indépendants, c'est-à-dire si $q_k = r_k$ pour tout $k=1,\dots,m$.
#+END_definition
Dans ce cas, les $n$ vecteurs propres ainsi obtenus sont linéairement
indépendants et forment les colonnes d'une matrice de passage
$H\equiv(v_1,\dots,v_n)$ inversible. Puisque $A\,v_i = \lambda_i v_i$ pour
chaque colonne, on a $A\,H = H\,\hat A$ avec\nbsp{}:
\begin{equation*}
\hat A = H^{-1}AH =
\begin{pmatrix}
\lambda_1 & 0 & \dots & 0\\
0 & \lambda_2 & \ddots & \vdots\\
\vdots & \ddots & \ddots & 0\\
0 & \dots & 0 & \lambda_n
\end{pmatrix}
\end{equation*}
où chaque valeur propre apparaît sur la diagonale autant de fois que son
ordre de multiplicité.
#+BEGIN_property
Si les $n$ valeurs propres de $A$ sont distinctes, alors $A$ est
diagonalisable.
#+END_property
#+BEGIN_proof
Chaque valeur propre est de multiplicité $r_k=1$ et possède au moins un
vecteur propre, donc $q_k = r_k$. Il reste à vérifier que des vecteurs
propres associés à des valeurs propres distinctes sont linéairement
indépendants. Supposons que $v_1,\dots,v_p$, associés à des valeurs propres
distinctes $\lambda_1,\dots,\lambda_p$, vérifient
$\alpha_1v_1+\dots+\alpha_pv_p = 0$. En appliquant $A-\lambda_pI_n$ aux deux
membres, le dernier terme disparaît et l'on obtient
$\alpha_1(\lambda_1-\lambda_p)v_1+\dots+\alpha_{p-1}(\lambda_{p-1}-\lambda_p)v_{p-1}=0$.
En répétant l'opération avec $\lambda_{p-1},\dots,\lambda_2$ il ne reste que
$\alpha_1\prod_{j=2}^p(\lambda_1-\lambda_j)v_1 = 0$, d'où $\alpha_1=0$ puisque
les valeurs propres sont distinctes et $v_1\neq0$. Le même argument
appliqué à chaque indice montre que tous les $\alpha_i$ sont nuls.
#+END_proof
#+BEGIN_remarque
Si $A$ est réelle, son polynôme caractéristique est à coefficients réels et
ses racines complexes vont par paires conjuguées. Si $v$ est un vecteur
propre associé à $\lambda$, alors $\bar v$ est un vecteur propre associé à
$\bar\lambda$, comme on le voit en conjuguant $Av=\lambda v$. Une matrice
réelle symétrique a toutes ses valeurs propres réelles et est toujours
diagonalisable, avec des vecteurs propres orthogonaux.
#+END_remarque
#+BEGIN_exemple
Soit la matrice réelle symétrique\nbsp{}:
\begin{equation*}
A = \begin{pmatrix} 2 & 1\\ 1 & 2\end{pmatrix}
\end{equation*}
Le polynôme caractéristique associé est\nbsp{}:
\begin{equation*}
\begin{split}
\chi_A(\lambda) &= \begin{vmatrix} 2-\lambda & 1\\ 1 & 2-\lambda\end{vmatrix}\\
&= (2-\lambda)^2 - 1\\
&= (1-\lambda)(3-\lambda)
\end{split}
\end{equation*}
Les valeurs propres sont donc réelles et distinctes\nbsp{}: $\lambda_1=1$ et
$\lambda_2=3$. Le vecteur propre $v_1$ associé à $\lambda_1$ doit vérifier
$(A-\lambda_1I_2)\,v_1 = 0$, c'est-à-dire\nbsp{}:
\begin{equation*}
\begin{pmatrix} 1 & 1\\ 1 & 1\end{pmatrix}
\begin{pmatrix} v_{1,1}\\ v_{2,1}\end{pmatrix} = 0
\quad\Leftrightarrow\quad
v_{2,1} = -v_{1,1}
\end{equation*}
Un vecteur propre n'est défini qu'à un facteur multiplicatif près, on
posera $v_1 = (1,-1)^\top$. De même, le vecteur propre $v_2$ associé à
$\lambda_2$ vérifie \((A-\lambda_2I_2)\,v_2 = 0\)\nbsp{}:
\begin{equation*}
\begin{pmatrix} -1 & 1\\ 1 & -1\end{pmatrix}
\begin{pmatrix} v_{1,2}\\ v_{2,2}\end{pmatrix} = 0
\quad\Leftrightarrow\quad
v_{2,2} = v_{1,2}
\end{equation*}
et l'on posera $v_2 = (1,1)^\top$. La matrice de passage et son inverse
sont\nbsp{}:
\begin{equation*}
H = \begin{pmatrix} 1 & 1\\ -1 & 1\end{pmatrix}
\qquad\text{et}\qquad
H^{-1} = \frac{1}{2}\begin{pmatrix} 1 & -1\\ 1 & 1\end{pmatrix}
\end{equation*}
et l'on vérifie que\nbsp{}:
\begin{equation*}
H^{-1}AH = \begin{pmatrix} 1 & 0\\ 0 & 3\end{pmatrix}
\end{equation*}
#+END_exemple
On peut vérifier ces calculs numériquement. La fonction ~eig~ de ~numpy~
renvoie les valeurs propres et une matrice dont les colonnes sont des
vecteurs propres normalisés (de norme un), ce qui ne change rien à la
diagonalisation puisque les vecteurs propres ne sont définis qu'à un facteur
près.
#+begin_src python :session sedl :exports code :results none
A = np.array([[2, 1], [1, 2]])
lam, V = np.linalg.eig(A)
print(lam) # 3 et 1
print(V) # colonnes proportionnelles à (1,1) et (1,-1)
H = np.array([[1, 1], [-1, 1]])
print(np.linalg.inv(H) @ A @ H) # diag(1, 3)
#+end_src
** Forme réduite d'une matrice non diagonalisable
:PROPERTIES:
:CUSTOM_ID: forme-reduite
:END:
Que faire lorsque la matrice de transition n'est pas diagonalisable,
c'est-à-dire lorsque pour une valeur propre $\lambda_k$ de multiplicité
$r_k$ on ne trouve que $q_k < r_k$ vecteurs propres linéairement
indépendants\nbsp{}? On ne peut plus rendre $\hat A$ diagonale, mais on peut
la rendre triangulaire par blocs, ce qui suffira pour résoudre le système
de façon récursive.
#+BEGIN_property
Soit $A$ une matrice carrée de dimension $n\times n$, à éléments réels ou
complexes, dont les valeurs propres distinctes sont $\lambda_1,\dots,\lambda_m$
de multiplicités $r_1,\dots,r_m$. Il existe une matrice de passage $H$
inversible telle que $\hat A = H^{-1}AH$ soit diagonale par blocs, avec un
bloc par valeur propre distincte. Le bloc associé à $\lambda_k$ est une
matrice triangulaire supérieure de dimension $r_k\times r_k$ dont tous les
éléments diagonaux sont égaux à $\lambda_k$.
#+END_property
Nous admettons ce résultat[fn:: Il s'agit d'une forme faible du théorème de
réduction de Jordan, qui précise en outre qu'un choix convenable des
vecteurs permet de n'avoir que des $0$ ou des $1$ au-dessus de la diagonale
de chaque bloc. Cette précision n'est pas nécessaire pour résoudre le
système.] et décrivons la construction des colonnes de $H$ associées à une
valeur propre $\lambda_k$, en notant $N \equiv A-\lambda_kI_n$. On procède par
étapes.
1. On choisit une base $v_1,\dots,v_{q_k}$ du sous-espace propre, c'est-à-dire
$q_k$ vecteurs non nuls linéairement indépendants tels que $N v_i = 0$.
2. Si $q_k < r_k$, on cherche un vecteur $w$, n'appartenant pas au sous-espace
engendré par les vecteurs déjà obtenus, tel que $Nw$ appartienne à ce
sous-espace\nbsp{}:
\begin{equation*}
(A-\lambda_kI_n)\,w = \alpha_1v_1+\dots+\alpha_{q_k}v_{q_k}
\end{equation*}
pour des coefficients $\alpha_i$ non tous nuls que l'on détermine en même
temps que $w$ (le système linéaire en $w$ n'a de solution que pour
certaines valeurs des $\alpha_i$). On dit que $w$ est un /vecteur propre
généralisé/.
3. On ajoute $w$ à la liste des vecteurs et, tant que l'on n'a pas obtenu
$r_k$ vecteurs linéairement indépendants, on recommence l'étape 2 en
cherchant un nouveau vecteur dont l'image par $N$ appartient au
sous-espace engendré par tous les vecteurs déjà obtenus.
On montre que cette construction aboutit toujours à $r_k$ vecteurs
linéairement indépendants[fn:: Les vecteurs obtenus à l'étape $p$ sont dans
le noyau de $N^p$, et la suite croissante des noyaux
$\ker N\subset\ker N^2\subset\dots$ atteint la dimension $r_k$.]. Si l'on
range ces vecteurs, dans l'ordre où ils ont été obtenus, dans les colonnes
de $H$, le bloc correspondant de $H^{-1}AH$ est triangulaire supérieur\nbsp{}:
en effet $A\,v_i = \lambda_kv_i$ pour les vecteurs propres, et pour chaque
vecteur généralisé $A\,w = \lambda_kw + \alpha_1v_1+\dots$ ne fait intervenir
que $w$ et des vecteurs placés avant lui dans $H$.
#+BEGIN_exemple
Soit la matrice carrée réelle\nbsp{}:
\begin{equation*}
A = \begin{pmatrix} 3 & 3 & 1\\ -2 & -2 & -1\\ 2 & 3 & 2\end{pmatrix}
\end{equation*}
Son polynôme caractéristique est $\chi_A(\lambda) = (1-\lambda)^3$, qui
admet une racine triple $\lambda=1$. Les vecteurs propres sont les solutions
du système \((A-I_3)\,v = 0\)\nbsp{}:
\begin{equation*}
\begin{cases}
2v_1 + 3v_2 + v_3 = 0\\
-2v_1 - 3v_2 - v_3 = 0\\
2v_1 + 3v_2 + v_3 = 0
\end{cases}
\quad\Leftrightarrow\quad
2v_1 + 3v_2 + v_3 = 0
\end{equation*}
qui est de rang un. Le sous-espace propre est donc de dimension deux, il
n'existe que deux vecteurs propres linéairement indépendants et la matrice
$A$ n'est pas diagonalisable. On peut choisir\nbsp{}:
\begin{equation*}
v_1 = \begin{pmatrix} 0\\ 1\\ -3\end{pmatrix}
\qquad\text{et}\qquad
v_2 = \begin{pmatrix} 1\\ 0\\ -2\end{pmatrix}
\end{equation*}
Le système $(A-I_3)\,w = \alpha_1v_1+\alpha_2v_2$ s'écrit\nbsp{}:
\begin{equation*}
\begin{cases}
2w_1 + 3w_2 + w_3 = \alpha_2\\
-2w_1 - 3w_2 - w_3 = \alpha_1\\
2w_1 + 3w_2 + w_3 = -3\alpha_1 - 2\alpha_2
\end{cases}
\end{equation*}
Les deux premières équations ne sont compatibles que si $\alpha_2 = -\alpha_1$,
et la troisième est alors identique à la première. En posant $\alpha_1=1$ et
$\alpha_2 = -1$, il reste $2w_1+3w_2+w_3 = -1$ et l'on peut choisir
$w = (0,0,-1)^\top$, qui n'est pas combinaison linéaire de $v_1$ et $v_2$.
La matrice de passage et son inverse sont\nbsp{}:
\begin{equation*}
H = \begin{pmatrix} 0 & 1 & 0\\ 1 & 0 & 0\\ -3 & -2 & -1\end{pmatrix}
\qquad\text{et}\qquad
H^{-1} = \begin{pmatrix} 0 & 1 & 0\\ 1 & 0 & 0\\ -2 & -3 & -1\end{pmatrix}
\end{equation*}
et l'on obtient\nbsp{}:
\begin{equation*}
\hat A = H^{-1}AH = \begin{pmatrix} 1 & 0 & 1\\ 0 & 1 & -1\\ 0 & 0 & 1\end{pmatrix}
\end{equation*}
La dernière colonne de $\hat A$ n'est autre que le vecteur
$(\alpha_1,\alpha_2,1)^\top$, conformément à $A\,w = w + v_1 - v_2$.
#+END_exemple
Numériquement, le rang de $A-I_3$ confirme qu'il n'y a que deux vecteurs
propres indépendants, et l'on retrouve la forme réduite\nbsp{}:
#+begin_src python :session sedl :exports code :results none
A = np.array([[3, 3, 1], [-2, -2, -1], [2, 3, 2]])
print(np.linalg.eigvals(A)) # 1, 1, 1 (aux erreurs d'arrondi près)
print(np.linalg.matrix_rank(A - np.eye(3))) # 1
H = np.array([[0, 1, 0], [1, 0, 0], [-3, -2, -1]])
print(np.linalg.inv(H) @ A @ H) # [[1, 0, 1], [0, 1, -1], [0, 0, 1]]
#+end_src
* Résolution du système
:PROPERTIES:
:CUSTOM_ID: resolution
:END:
** Le système transformé
:PROPERTIES:
:CUSTOM_ID: systeme-transforme
:END:
Revenons au système transformé $\dot Y(t) = \hat A\,Y(t) + c(t)$, où
$\hat A = H^{-1}AH$ est une forme diagonale ou réduite de $A$. Les éléments
de $\hat A$ et les fonctions $c_i(t)$ sont a priori complexes. Nous aurons
besoin de la solution de l'équation scalaire du premier ordre avec un
coefficient complexe.
#+BEGIN_property
Soient $\lambda\in\mathbb C$ et $c(t)$ une fonction continue de $\mathbb R^+$
dans $\mathbb C$. Pour toute condition initiale $y(0) = y_0\in\mathbb C$,
l'équation différentielle $\dot y(t) = \lambda\,y(t) + c(t)$ admet une unique
solution sur \(\mathbb R^+\)\nbsp{}:
\begin{equation*}
y(t) = e^{\lambda t}\left(y_0 + \int_0^t e^{-\lambda s}c(s)\,\mathrm ds\right)
\end{equation*}
#+END_property
#+BEGIN_proof
C'est la formule établie pour les
[[https://stephane-adjemian.fr/posts/equations-differentielles-du-premier-ordre/#non-homogene-variable][coefficients réels]]
dans la note précédente, et la preuve est la même\nbsp{}: la dérivée de
$e^{-\lambda t}$ est $-\lambda e^{-\lambda t}$ pour tout $\lambda$ complexe, de sorte
que l'équation équivaut à $\frac{\mathrm d}{\mathrm dt}\bigl(e^{-\lambda t}y(t)\bigr) = e^{-\lambda t}c(t)$,
que l'on intègre entre $0$ et $t$.
#+END_proof
On distingue deux cas.
1. Si $\hat A$ est diagonale, le système transformé se réduit à $n$ équations
indépendantes $\dot y_i(t) = \lambda_iy_i(t) + c_i(t)$, que la propriété
précédente résout une à une.
2. Si $\hat A$ est diagonale par blocs, chaque bloc peut être traité
séparément. Considérons le bloc associé à la valeur propre $\lambda_k$ de
multiplicité $r_k$, et supposons qu'il occupe les lignes $i+1$ à $i+r_k$
de $\hat A$. Les variables correspondantes vérifient un sous-système de
$r_k$ équations, indépendant des $n-r_k$ autres variables\nbsp{}:
\begin{equation*}
\begin{pmatrix} \dot y_{i+1}(t)\\ \dot y_{i+2}(t)\\ \vdots\\ \dot y_{i+r_k}(t)\end{pmatrix}
=
\begin{pmatrix}
\lambda_k & \hat a_{k,1,2} & \dots & \hat a_{k,1,r_k}\\
0 & \lambda_k & \dots & \hat a_{k,2,r_k}\\
\vdots & \ddots & \ddots & \vdots\\
0 & \dots & 0 & \lambda_k
\end{pmatrix}
\begin{pmatrix} y_{i+1}(t)\\ y_{i+2}(t)\\ \vdots\\ y_{i+r_k}(t)\end{pmatrix}
+
\begin{pmatrix} c_{i+1}(t)\\ c_{i+2}(t)\\ \vdots\\ c_{i+r_k}(t)\end{pmatrix}
\end{equation*}
Le bloc étant triangulaire supérieur, il suffit de résoudre par le bas.
La dernière équation, $\dot y_{i+r_k}(t) = \lambda_ky_{i+r_k}(t) + c_{i+r_k}(t)$,
est une équation scalaire que nous savons résoudre\nbsp{}: étant donnée la
condition initiale $y_{i+r_k}(0)$, elle admet une unique solution. Une fois
cette solution obtenue, on la substitue dans l'équation du dessus, qui
devient à son tour une équation scalaire du premier ordre en
$y_{i+r_k-1}(t)$ avec un second membre connu. En remontant ainsi le
triangle, on obtient une solution unique pour les $r_k$ variables du bloc,
étant données leurs conditions initiales.
Dans tous les cas, le système transformé admet, pour tout vecteur initial
$Y_0\in\mathbb C^n$, une solution $Y(t)$ et une seule de $\mathbb R^+$ dans
$\mathbb C^n$ telle que $Y(0) = Y_0$.
** Existence et unicité
:PROPERTIES:
:CUSTOM_ID: existence-unicite
:END:
#+BEGIN_theorem
Si les fonctions $b_i(t)$ du second membre sont continues sur $\mathbb R^+$,
alors pour tout vecteur $X_0\in\mathbb R^n$ le système
$\dot X(t) = A\,X(t) + b(t)$ admet une solution réelle et une seule sur
$\mathbb R^+$ telle que $X(0) = X_0$. C'est aussi l'unique solution complexe
vérifiant cette condition initiale, et elle est égale à $H\,Y(t)$, où $Y(t)$
est la solution du système transformé telle que $Y(0) = H^{-1}X_0$.
#+END_theorem
#+BEGIN_proof
On a vu que le système transformé admet une solution complexe et une seule
$Y(t)$ telle que $Y(0) = H^{-1}X_0$. Puisque les deux systèmes sont
équivalents, $X(t) = H\,Y(t)$ est l'unique solution complexe du système
initial telle que $X(0) = X_0$. Écrivons cette solution
$X(t) = X_1(t) + \mathrm i\,X_2(t)$. D'après la propriété établie dans la
[[#notation][première section]], la partie imaginaire vérifie
$\dot X_2(t) = A\,X_2(t)$ avec, puisque $X_0$ est réel, $X_2(0) = 0$. Or la
fonction nulle est solution de ce système homogène avec cette condition
initiale, et cette solution est unique\nbsp{}: $X_2(t)$ est donc nulle à tout
instant, et l'unique solution complexe est réelle.
#+END_proof
** Un exemple avec des valeurs propres complexes
:PROPERTIES:
:CUSTOM_ID: exemple-complexe
:END:
#+BEGIN_exemple
On veut résoudre le système d'équations différentielles\nbsp{}:
\begin{equation*}
\begin{cases}
\dot x_1(t) = x_1(t) - x_2(t) + 2\\
\dot x_2(t) = x_1(t) + x_2(t) - 2t
\end{cases}
\end{equation*}
L'écriture matricielle équivalente est $\dot X(t) = A\,X(t) + b(t)$ avec\nbsp{}:
\begin{equation*}
A = \begin{pmatrix} 1 & -1\\ 1 & 1\end{pmatrix}
\qquad\text{et}\qquad
b(t) = \begin{pmatrix} 2\\ -2t\end{pmatrix}
\end{equation*}
Le polynôme caractéristique est\nbsp{}:
\begin{equation*}
\chi_A(\lambda) = \begin{vmatrix} 1-\lambda & -1\\ 1 & 1-\lambda\end{vmatrix} = (1-\lambda)^2 + 1
\end{equation*}
dont les racines sont $\lambda_1 = 1-\mathrm i$ et $\lambda_2 = 1+\mathrm i$.
Les valeurs propres sont distinctes, la matrice est donc diagonalisable dans
$\mathbb C$. Le vecteur propre $v_1$ associé à $\lambda_1$ vérifie\nbsp{}:
\begin{equation*}
\begin{pmatrix} \mathrm i & -1\\ 1 & \mathrm i\end{pmatrix}
\begin{pmatrix} v_{1,1}\\ v_{2,1}\end{pmatrix} = 0
\quad\Leftrightarrow\quad
\begin{cases}
\mathrm i\,v_{1,1} - v_{2,1} = 0\\
v_{1,1} + \mathrm i\,v_{2,1} = 0
\end{cases}
\end{equation*}
La seconde équation est égale à $-\mathrm i$ fois la première, il ne reste
donc qu'une condition, $v_{2,1} = \mathrm i\,v_{1,1}$, et l'on posera
$v_1 = (-\mathrm i, 1)^\top$. Le vecteur propre associé à $\lambda_2$ est le
conjugué, $v_2 = (\mathrm i, 1)^\top$, comme on le vérifie directement\nbsp{}:
\begin{equation*}
\begin{pmatrix} -\mathrm i & -1\\ 1 & -\mathrm i\end{pmatrix}
\begin{pmatrix} \mathrm i\\ 1\end{pmatrix} = \begin{pmatrix} 1 - 1\\ \mathrm i-\mathrm i\end{pmatrix} = 0
\end{equation*}
La matrice de changement de base et son inverse sont\nbsp{}:
\begin{equation*}
H = \begin{pmatrix} -\mathrm i & \mathrm i\\ 1 & 1\end{pmatrix}
\qquad\text{et}\qquad
H^{-1} = \frac{1}{2}\begin{pmatrix} \mathrm i & 1\\ -\mathrm i & 1\end{pmatrix}
\end{equation*}
En posant $Y(t) = H^{-1}X(t)$ et $c(t) = H^{-1}b(t)$ il vient
$\dot Y(t) = \hat A\,Y(t) + c(t)$ avec\nbsp{}:
\begin{equation*}
\hat A = \begin{pmatrix} 1-\mathrm i & 0\\ 0 & 1+\mathrm i\end{pmatrix}
\qquad\text{et}\qquad
c(t) = \begin{pmatrix} \mathrm i - t\\ -\mathrm i - t\end{pmatrix}
\end{equation*}
soit, de façon équivalente\nbsp{}:
\begin{equation*}
\begin{cases}
\dot y_1(t) = (1-\mathrm i)\,y_1(t) + \mathrm i - t\\
\dot y_2(t) = (1+\mathrm i)\,y_2(t) - \mathrm i - t
\end{cases}
\end{equation*}
Ces deux équations différentielles linéaires complexes sont indépendantes.
Plutôt que d'appliquer la formule intégrale, on procède comme dans le cas
réel\nbsp{}: on cherche une solution particulière de chaque équation complète
sous la forme d'un polynôme $\alpha + \beta t$, dont les coefficients complexes
sont identifiés en substituant dans l'équation, puis on ajoute la solution
générale de l'équation sans second membre. Pour la première équation,
$\beta = (1-\mathrm i)(\alpha+\beta t) + \mathrm i - t$ pour tout $t$ impose
$(1-\mathrm i)\beta = 1$, soit $\beta = \frac{1+\mathrm i}{2}$, puis
$\beta = (1-\mathrm i)\alpha + \mathrm i$, soit $\alpha = \frac12$. Le calcul
est identique pour la seconde équation, et l'on obtient\nbsp{}:
\begin{equation*}
\begin{cases}
y_1(t) = \gamma_1e^{(1-\mathrm i)t} + \frac{1+\mathrm i}{2}\,t + \frac12\\
y_2(t) = \gamma_2e^{(1+\mathrm i)t} + \frac{1-\mathrm i}{2}\,t + \frac12
\end{cases}
\end{equation*}
où les constantes d'intégration sont déterminées par
\(Y(0) = H^{-1}X(0)\)\nbsp{}:
\begin{equation*}
\begin{cases}
\gamma_1 + \frac12 = y_1(0) = \frac{\mathrm i}{2}x_{0,1} + \frac12x_{0,2}\\
\gamma_2 + \frac12 = y_2(0) = -\frac{\mathrm i}{2}x_{0,1} + \frac12x_{0,2}
\end{cases}
\end{equation*}
avec $X(0) = (x_{0,1},x_{0,2})^\top$. On remarque que $y_2(t) = \overline{y_1(t)}$,
ce qui n'est pas un hasard\nbsp{}: la solution $X(t)$ étant réelle, les deux
coordonnées de $Y(t) = H^{-1}X(t)$ sont conjuguées puisque les lignes de
$H^{-1}$ le sont. Revenons au problème initial, la solution est
$X(t) = H\,Y(t)$, soit\nbsp{}:
\begin{equation*}
\begin{cases}
x_1(t) = -\mathrm i\,y_1(t) + \mathrm i\,y_2(t)\\
x_2(t) = y_1(t) + y_2(t)
\end{cases}
\end{equation*}
En remplaçant $e^{(1\pm\mathrm i)t} = e^t(\cos t \pm \mathrm i\sin t)$ et
$\gamma_1 = \frac12\bigl(\mathrm i\,x_{0,1} + x_{0,2} - 1\bigr)$,
$\gamma_2 = \overline{\gamma_1}$, on obtient après simplification\nbsp{}:
\begin{equation*}
\begin{cases}
x_1(t) = x_{0,1}\,e^t\cos t - (x_{0,2}-1)\,e^t\sin t + t\\
x_2(t) = x_{0,1}\,e^t\sin t + (x_{0,2}-1)\,e^t\cos t + t + 1
\end{cases}
\end{equation*}
On vérifie sans peine que ces fonctions satisfont le système et la condition
initiale.
#+END_exemple
#+BEGIN_remarque
La solution particulière $(t, t+1)^\top$ est polynomiale, comme le second
membre, et la solution du système homogène est une combinaison de
$e^t\cos t$ et \(e^t\sin t\)\nbsp{}: la partie réelle des valeurs propres, $1$,
gouverne l'amplitude et la partie imaginaire, $\pm1$, la fréquence des
oscillations. Le module de la solution homogène croît sans limite, la
dynamique est instable et les trajectoires s'éloignent de l'origine en
spiralant. La figure [[fig:foyer][ci-dessous]] représente quelques
trajectoires du système homogène dans le plan $(x_1,x_2)$, ainsi que la
solution du système complet, où l'on a superposé une résolution numérique
obtenue avec ~solve_ivp~.
#+END_remarque
#+begin_src python :session sedl :exports code :results none
A = np.array([[1, -1], [1, 1]])
b = lambda t: np.array([2, -2*t])
x0 = np.array([1.0, 0.5])
t = np.linspace(0, 3, 301)
numerique = solve_ivp(lambda t, X: A @ X + b(t), (0, 3), x0, t_eval=t, rtol=1e-10, atol=1e-12)
x1 = x0[0]*np.exp(t)*np.cos(t) - (x0[1]-1)*np.exp(t)*np.sin(t) + t
x2 = x0[0]*np.exp(t)*np.sin(t) + (x0[1]-1)*np.exp(t)*np.cos(t) + t + 1
print(np.max(np.abs(numerique.y[0] - x1)), np.max(np.abs(numerique.y[1] - x2)))
#+end_src
#+begin_src python :session sedl :exports none :results none
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(11, 4))
s = np.linspace(0, 3.6, 400)
for r, phi in ((0.05, 0), (0.05, 2*np.pi/3), (0.05, 4*np.pi/3)):
z0 = np.array([r*np.cos(phi), r*np.sin(phi)])
z1 = np.exp(s)*(z0[0]*np.cos(s) - z0[1]*np.sin(s))
z2 = np.exp(s)*(z0[0]*np.sin(s) + z0[1]*np.cos(s))
ax1.plot(z1, z2, 'b', linewidth=1)
ax1.annotate('', xy=(z1[-1], z2[-1]), xytext=(z1[-2], z2[-2]),
arrowprops=dict(arrowstyle='->', color='b'))
ax1.plot(0, 0, 'ro', markersize=4)
ax1.set_xlim(-2, 2); ax1.set_ylim(-2, 2)
ax1.set_xlabel(r'$x_1$'); ax1.set_ylabel(r'$x_2$')
ax1.set_title(r'Système homogène : foyer instable')
ax2.plot(t, x1, 'b', linewidth=1, label=r'$x_1(t)$')
ax2.plot(t, x2, 'r', linewidth=1, label=r'$x_2(t)$')
ax2.plot(t[::20], numerique.y[0][::20], 'bo', markersize=3)
ax2.plot(t[::20], numerique.y[1][::20], 'ro', markersize=3)
ax2.set_xlabel(r'$t$')
ax2.set_title(r'Système complet, $X(0)=(1, 0{,}5)$')
ax2.legend()
fig.tight_layout()
fig.savefig("sedl-foyer.svg", transparent=True)
#+end_src
#+CAPTION: *À gauche, trajectoires du système homogène dans le plan de phase pour trois conditions initiales proches de l'origine. À droite, solution analytique du système complet (traits) et résolution numérique (points).*
#+LABEL: fig:foyer
[[file:sedl-foyer.svg]]
#+NAME: ex-noeud
#+BEGIN_exercice
Résolvez le système d'équations différentielles\nbsp{}:
\begin{equation*}
\begin{cases}
\dot x(t) = 3x(t) - 2y(t) + 1\\
\dot y(t) = x(t) + 1
\end{cases}
\end{equation*}
en le réécrivant sous forme matricielle, puis en le transformant dans une
base de vecteurs propres. Caractérisez l'état stationnaire et sa stabilité.
#+END_exercice
#+ATTR_HTML: :class corrige
#+BEGIN_details
#+BEGIN_summary
Corrigé
#+END_summary
En posant $X(t) = (x(t),y(t))^\top$, le système s'écrit
$\dot X(t) = A\,X(t) + b$ avec\nbsp{}:
\begin{equation*}
A = \begin{pmatrix} 3 & -2\\ 1 & 0\end{pmatrix}
\qquad\text{et}\qquad
b = \begin{pmatrix} 1\\ 1\end{pmatrix}
\end{equation*}
Le polynôme caractéristique est
$\chi_A(\lambda) = (3-\lambda)(-\lambda) + 2 = \lambda^2 - 3\lambda + 2 = (\lambda-1)(\lambda-2)$,
dont les racines $\lambda_1 = 1$ et $\lambda_2 = 2$ sont réelles et
distinctes. Les vecteurs propres vérifient
$(A-I_2)\,v_1 = 0 \Leftrightarrow 2v_{1,1} - 2v_{2,1} = 0$ et
\((A-2I_2)\,v_2 = 0 \Leftrightarrow v_{1,2} - 2v_{2,2} = 0\)\nbsp{}; on pose
$v_1 = (1,1)^\top$ et $v_2 = (2,1)^\top$, d'où\nbsp{}:
\begin{equation*}
H = \begin{pmatrix} 1 & 2\\ 1 & 1\end{pmatrix}
\qquad
H^{-1} = \begin{pmatrix} -1 & 2\\ 1 & -1\end{pmatrix}
\qquad
\hat A = \begin{pmatrix} 1 & 0\\ 0 & 2\end{pmatrix}
\qquad
c = H^{-1}b = \begin{pmatrix} 1\\ 0\end{pmatrix}
\end{equation*}
Le système transformé, $\dot y_1(t) = y_1(t) + 1$ et $\dot y_2(t) = 2y_2(t)$,
a pour solution $y_1(t) = \bigl(y_1(0)+1\bigr)e^t - 1$ et
$y_2(t) = y_2(0)\,e^{2t}$. En revenant aux variables initiales,
\(X(t) = H\,Y(t)\)\nbsp{}:
\begin{equation*}
\begin{cases}
x(t) = \bigl(y_1(0)+1\bigr)e^t + 2y_2(0)\,e^{2t} - 1\\
y(t) = \bigl(y_1(0)+1\bigr)e^t + y_2(0)\,e^{2t} - 1
\end{cases}
\end{equation*}
avec $y_1(0) = -x_0 + 2y_0$ et $y_2(0) = x_0 - y_0$, où $(x_0,y_0)$ est la
condition initiale. L'état stationnaire est la solution constante
$X^{\star} = -A^{-1}b = (-1,-1)^\top$, et la solution s'écrit encore\nbsp{}:
\begin{equation*}
X(t) = X^{\star} + (2y_0 - x_0 + 1)\,e^{t}\begin{pmatrix} 1\\ 1\end{pmatrix}
+ (x_0-y_0)\,e^{2t}\begin{pmatrix} 2\\ 1\end{pmatrix}
\end{equation*}
Les deux valeurs propres étant strictement positives, l'écart à l'état
stationnaire croît exponentiellement pour toute condition initiale autre
que \(X^{\star}\)\nbsp{}: l'état stationnaire est un /nœud instable/. Dans le
plan de phase, les trajectoires s'en éloignent tangentiellement à la
direction $v_1$, associée à la plus petite valeur propre, avant de se
redresser vers la direction $v_2$, dont le poids $e^{2t}$ finit par dominer,
comme le montre la figure [[fig:noeud][ci-dessous]].
#+END_details
#+begin_src python :session sedl :exports none :results none
fig, ax = plt.subplots(figsize=(6, 5))
grille = np.linspace(-3.5, 1.5, 25)
U, V = np.meshgrid(grille, grille)
ax.streamplot(U, V, 3*U - 2*V + 1, U + 1, color='b', linewidth=0.7, density=1.1, arrowsize=0.8)
for v, style in (((1, 1), 'r--'), ((2, 1), 'g--')):
ax.plot([-1 - 3*v[0], -1 + 3*v[0]], [-1 - 3*v[1], -1 + 3*v[1]], style, linewidth=1.2)
ax.plot(-1, -1, 'ko', markersize=4)
ax.text(0.35, 0.8, r'$v_1$', color='r', bbox=dict(facecolor='white', edgecolor='none', pad=1))
ax.text(0.9, 0.1, r'$v_2$', color='g', bbox=dict(facecolor='white', edgecolor='none', pad=1))
ax.set_xlim(-3.5, 1.5); ax.set_ylim(-3.5, 1.5)
ax.set_xlabel(r'$x$'); ax.set_ylabel(r'$y$')
ax.set_title(r'Nœud instable en $X^\star = (-1, -1)$')
fig.tight_layout()
fig.savefig("sedl-noeud.svg", transparent=True)
#+end_src
#+CAPTION: *Lignes de courant de l'exercice dans le plan de phase. Les droites en pointillés sont les directions propres : les trajectoires quittent l'état stationnaire tangentiellement à $v_1$ et se redressent vers $v_2$.*
#+LABEL: fig:noeud
[[file:sedl-noeud.svg]]
** Caractérisation des solutions
:PROPERTIES:
:CUSTOM_ID: caracterisation
:END:
Les deux propriétés suivantes généralisent au cas vectoriel la structure
des solutions d'une équation linéaire\nbsp{}: la solution générale de
l'équation complète est la somme d'une solution particulière et de la
solution générale de l'équation homogène, et cette dernière est un espace
vectoriel.
#+BEGIN_property
Si $\Psi(t)$ est une solution particulière du système
$\dot X(t) = A\,X(t) + b(t)$, alors $X(t)$ est solution de ce système si et
seulement si $X(t) - \Psi(t)$ est solution du système homogène
$\dot Z(t) = A\,Z(t)$.
#+END_property
#+BEGIN_proof
Puisque $\Psi(t)$ est une solution de l'équation complète, nous avons
$b(t) = \dot\Psi(t) - A\,\Psi(t)$. La fonction $X(t)$ est solution si et
seulement si $b(t) = \dot X(t) - A\,X(t)$, c'est-à-dire si et seulement si
$\dot X(t) - \dot\Psi(t) = A\bigl(X(t) - \Psi(t)\bigr)$.
#+END_proof
#+BEGIN_property
L'ensemble des solutions réelles (respectivement complexes) du système
linéaire homogène $\dot X(t) = A\,X(t)$, $t\in\mathbb R^+$, est un espace
vectoriel sur $\mathbb R$ (respectivement $\mathbb C$) de dimension $n$.
#+END_property
#+BEGIN_proof
Par linéarité, toute combinaison linéaire de solutions du système homogène
est encore une solution\nbsp{}: l'ensemble des solutions est un espace
vectoriel. Pour $i=1,\dots,n$, soit $X_i(t)$ l'unique solution telle que
$X_i(0) = U_i$, où $U_i$ est le \(i\)-ème vecteur de la base canonique (dont
la \(j\)-ème coordonnée vaut $1$ si $j=i$ et $0$ sinon). Les $n$ fonctions
$X_i(t)$ sont linéairement indépendantes, car leurs valeurs en $t=0$ sont des
vecteurs linéairement indépendants. Soit maintenant une condition initiale
$X_0 = (x_{1,0},\dots,x_{n,0})^\top$ quelconque. Par linéarité,
$\sum_{i=1}^nx_{i,0}X_i(t)$ est une solution du système homogène, et elle
vaut $X_0$ en \(t=0\)\nbsp{}; par unicité, c'est l'unique solution telle que
\(X(0) = X_0\)\nbsp{}:
\begin{equation*}
X(t) = \sum_{i=1}^n x_{i,0}\,X_i(t)
\end{equation*}
Toute solution est donc combinaison linéaire des $X_i(t)$, qui forment une
base de l'espace des solutions[fn:: Voir aussi le chapitre trois de Philippe
Michel, /Cours de mathématiques pour économistes/, Economica, 1989.].
#+END_proof
#+BEGIN_theorem
Soit $H = (v_1,\dots,v_n)$ une matrice de passage donnant une forme réduite
(ou diagonale) de la matrice de transition $A$. La solution générale du
système homogène $\dot X(t) = A\,X(t)$ est\nbsp{}:
\begin{equation*}
X(t) = \sum_{i=1}^n y_i(t)\,v_i \qquad t\in\mathbb R^+
\end{equation*}
où $y_1(t),\dots,y_n(t)$ sont les coordonnées de la solution $Y(t)$ du
système transformé $\dot Y(t) = \hat A\,Y(t)$ telle que $Y(0) = H^{-1}X(0)$.
Chaque $y_i(t)$ est de la forme $e^{\lambda_it}P_i(t)$, où $\lambda_i$ est la
valeur propre associée à la colonne $v_i$ et $P_i$ un polynôme de degré
strictement inférieur à l'ordre de multiplicité de $\lambda_i$.
#+END_theorem
#+BEGIN_proof
Par définition, $X(t) = H\,Y(t)$, ce qui donne la première formule puisque
les colonnes de $H$ sont les vecteurs $v_i$. Pour la forme des $y_i(t)$,
considérons le bloc de $\hat A$ associé à la valeur propre $\lambda_k$ de
multiplicité $r_k$, et résolvons-le par le bas comme dans la section
[[#systeme-transforme][précédente]], sans second membre. La dernière équation
donne $y_{i+r_k}(t) = e^{\lambda_kt}P_{i+r_k}(t)$ avec $P_{i+r_k}$ constant,
égal à $y_{i+r_k}(0)$. En remontant d'une ligne et en substituant cette
solution, on obtient une équation scalaire dont le second membre est le
produit de $e^{\lambda_kt}$ et d'une constante. D'après la formule intégrale,
sa solution est\nbsp{}:
\begin{equation*}
y_{i+r_k-1}(t) = e^{\lambda_kt}\left(y_{i+r_k-1}(0) + \hat a_{k,r_k-1,r_k}\int_0^t P_{i+r_k}(s)\,\mathrm ds\right) = e^{\lambda_kt}P_{i+r_k-1}(t)
\end{equation*}
où $P_{i+r_k-1}$ est un polynôme de degré au plus un, l'intégrale d'un
polynôme étant un polynôme de degré supérieur d'une unité. Par récurrence
en remontant le bloc, le second membre de la ligne $j$ est le produit de
$e^{\lambda_kt}$ et d'une combinaison linéaire des polynômes des lignes
inférieures, et la solution est de la forme $e^{\lambda_kt}P_j(t)$ où le
degré de $P_j$ excède d'au plus une unité le plus grand degré des lignes
inférieures. La première ligne du bloc, atteinte après $r_k-1$ remontées,
est donc associée à un polynôme de degré au plus $r_k-1$. L'argument
s'applique de la même façon à chaque valeur propre.
#+END_proof
#+BEGIN_remarque
Dans le cas où la matrice de transition est diagonalisable, tous les blocs
sont de dimension un et les polynômes se réduisent à des constantes\nbsp{}: la
solution générale est simplement $X(t) = \sum_{i=1}^n\gamma_ie^{\lambda_it}v_i$,
où les constantes $\gamma_i$ sont les coordonnées de $H^{-1}X(0)$. Si $A$ est
réelle et si $\lambda = a + \mathrm ib$ est une valeur propre complexe de
vecteur propre $v$, alors $\bar\lambda$ et $\bar v$ apparaissent aussi dans
la somme, avec des coefficients conjugués puisque la solution est réelle.
La contribution de la paire est donc $2\,\mathrm{Re}\bigl(\gamma e^{\lambda t}v\bigr)$,
combinaison réelle de $e^{at}\cos(bt)$ et $e^{at}\sin(bt)$, comme dans
l'exemple de la [[#exemple-complexe][section précédente]].
#+END_remarque
#+NAME: ex-symetrique
#+BEGIN_exercice
Soit le système homogène $\dot X(t) = A\,X(t)$ avec\nbsp{}:
\begin{equation*}
A = \begin{pmatrix} 1/2 & 1 & 1\\ 1 & 1/2 & 1\\ 1 & 1 & 1/2\end{pmatrix}
\end{equation*}
Montrez que la solution, étant donnée une condition initiale
$X_0 = (x_{1,0},x_{2,0},x_{3,0})^\top$, est\nbsp{}:
\begin{equation*}
\begin{split}
X(t) = {}& \frac{x_{1,0}+x_{2,0}-2x_{3,0}}{3}\,e^{-\frac t2}\begin{pmatrix} 1\\ 0\\ -1\end{pmatrix}
+ \frac{x_{1,0}+x_{3,0}-2x_{2,0}}{3}\,e^{-\frac t2}\begin{pmatrix} 1\\ -1\\ 0\end{pmatrix}\\
&+ \frac{x_{1,0}+x_{2,0}+x_{3,0}}{3}\,e^{\frac{5t}{2}}\begin{pmatrix} 1\\ 1\\ 1\end{pmatrix}
\end{split}
\end{equation*}
pour $t\in\mathbb R^+$.
#+END_exercice
#+ATTR_HTML: :class corrige
#+BEGIN_details
#+BEGIN_summary
Corrigé
#+END_summary
La matrice s'écrit $A = J - \frac12I_3$, où $J$ est la matrice dont tous les
éléments valent un. Puisque $J$ est de rang un, zéro est valeur propre double
de $J$, et la trace de $J$ étant égale à trois, la troisième valeur propre
est $3$. Les valeurs propres de $A$ sont donc $-\frac12$ (double) et
$\frac52$. La matrice est symétrique réelle, donc diagonalisable\nbsp{}: on
doit trouver deux vecteurs propres indépendants pour $-\frac12$, solutions
de $J\,v = 0$, c'est-à-dire $v_1+v_2+v_3 = 0$, et un vecteur propre pour
$\frac52$, solution de \((J-3I_3)\,v = 0\)\nbsp{}:
\begin{equation*}
v_1 = \begin{pmatrix} 1\\ 0\\ -1\end{pmatrix},\qquad
v_2 = \begin{pmatrix} 1\\ -1\\ 0\end{pmatrix}
\qquad\text{et}\qquad
v_3 = \begin{pmatrix} 1\\ 1\\ 1\end{pmatrix}
\end{equation*}
D'après la remarque précédente, la solution générale est\nbsp{}:
\begin{equation*}
X(t) = \alpha\,e^{-\frac t2}v_1 + \beta\,e^{-\frac t2}v_2 + \gamma\,e^{\frac{5t}{2}}v_3
\end{equation*}
En évaluant cette expression en $t=0$ et en identifiant avec $X_0$, on
obtient le système $\alpha+\beta+\gamma = x_{1,0}$, $-\beta+\gamma = x_{2,0}$,
$-\alpha+\gamma = x_{3,0}$. La somme des trois équations donne
$3\gamma = x_{1,0}+x_{2,0}+x_{3,0}$, puis $\alpha = \gamma - x_{3,0}$ et
$\beta = \gamma - x_{2,0}$, ce qui est la solution annoncée. La composante
selon $v_3$ domine à long terme, sauf si $x_{1,0}+x_{2,0}+x_{3,0} = 0$,
auquel cas la solution converge vers zéro.
#+END_details
* Équations linéaires d'ordre $n$
:PROPERTIES:
:CUSTOM_ID: ordre-n
:END:
Une équation différentielle faisant intervenir linéairement le niveau d'une
fonction $x$ et ses $n$ premières dérivées est une équation différentielle
linéaire d'ordre $n$. En normalisant le coefficient de la dérivée
\(n\)-ième, nous l'écrivons sous la forme\nbsp{}:
\begin{equation*}
x^{(n)}(t) = a_1x^{(n-1)}(t) + a_2x^{(n-2)}(t) + \dots + a_nx(t),\qquad t\in\mathbb R^+
\end{equation*}
où $x^{(p)}$ désigne la dérivée \(p\)-ième de $x$ et où les $a_i$ sont des
paramètres réels. On suppose $a_n\neq0$, sinon il s'agit d'une équation
d'ordre $n-1$ en $\dot x$. On suppose aussi, pour l'instant, que l'équation
n'a pas de second membre.
L'équation d'ordre $n$ est équivalente à un système de $n$ équations du
premier ordre. En posant $x_1 = x^{(n-1)}$, $x_2 = x^{(n-2)}$, \dots,
$x_n = x$, chaque variable est la dérivée de la suivante et la première
vérifie l'équation\nbsp{}:
\begin{equation*}
\begin{cases}
\dot x_1(t) = a_1x_1(t) + a_2x_2(t) + \dots + a_nx_n(t)\\
\dot x_2(t) = x_1(t)\\
\quad\vdots\\
\dot x_n(t) = x_{n-1}(t)
\end{cases}
\end{equation*}
soit, avec $X(t) = \bigl(x_1(t),\dots,x_n(t)\bigr)^\top$, le système
$\dot X(t) = A\,X(t)$ dont la matrice de transition est la /matrice
compagnon/\nbsp{}:
\begin{equation*}
A =
\begin{pmatrix}
a_1 & a_2 & \dots & a_{n-1} & a_n\\
1 & 0 & \dots & 0 & 0\\
0 & 1 & \ddots & \vdots & \vdots\\
\vdots & \ddots & \ddots & 0 & 0\\
0 & \dots & 0 & 1 & 0
\end{pmatrix}
\end{equation*}
#+BEGIN_property
L'ensemble des solutions réelles (complexes) de l'équation différentielle
linéaire homogène d'ordre $n$ est un espace vectoriel sur $\mathbb R$
($\mathbb C$) de dimension $n$. Les $n$ conditions initiales $x(0)$,
$\dot x(0)$, \dots, $x^{(n-1)}(0)$ déterminent une unique solution.
#+END_property
#+BEGIN_proof
Direct par la propriété sur la dimension de l'espace des solutions du
système homogène équivalent, dont la condition initiale $X(0)$ regroupe
précisément les $n$ dérivées successives de $x$ en zéro.
#+END_proof
#+BEGIN_property
Le polynôme caractéristique de la matrice compagnon est\nbsp{}:
\begin{equation*}
\chi_A(\lambda) = (-1)^n\bigl(\lambda^n - a_1\lambda^{n-1} - a_2\lambda^{n-2} - \dots - a_{n-1}\lambda - a_n\bigr)
\end{equation*}
#+END_property
#+BEGIN_proof
Notons $D_n(\lambda) = |A-\lambda I_n|$ et raisonnons par récurrence sur $n$.
Pour $n=1$, $D_1(\lambda) = a_1 - \lambda$ et la formule est vérifiée.
Pour $n\geq2$, développons le déterminant selon la dernière colonne, dont
les seuls éléments non nuls sont $a_n$ en première ligne et $-\lambda$ en
dernière ligne\nbsp{}:
\begin{equation*}
D_n(\lambda) = (-1)^{1+n}a_n\,M_{1,n} + (-1)^{2n}(-\lambda)\,M_{n,n}
\end{equation*}
où $M_{i,j}$ est le mineur obtenu en supprimant la ligne $i$ et la colonne
$j$. Le mineur $M_{n,n}$ est le déterminant de la matrice compagnon d'ordre
$n-1$ associée à $a_1,\dots,a_{n-1}$, diminuée de $\lambda I_{n-1}$, c'est
donc $D_{n-1}(\lambda)$. Le mineur $M_{1,n}$ est le déterminant de la
matrice formée des lignes $2$ à $n$ et des colonnes $1$ à $n-1$ de
$A-\lambda I_n$, qui est triangulaire supérieure avec des $1$ sur la
diagonale (et des $-\lambda$ juste au-dessus)\nbsp{}: il vaut $1$. Ainsi
$D_n(\lambda) = (-1)^{n+1}a_n - \lambda D_{n-1}(\lambda)$, et en substituant
l'hypothèse de récurrence\nbsp{}:
\begin{equation*}
D_n(\lambda) = (-1)^{n+1}a_n + (-1)^n\bigl(\lambda^n - a_1\lambda^{n-1} - \dots - a_{n-1}\lambda\bigr)
= (-1)^n\bigl(\lambda^n - a_1\lambda^{n-1} - \dots - a_{n-1}\lambda - a_n\bigr)
\end{equation*}
#+END_proof
Les valeurs propres de la matrice compagnon sont donc les racines du
polynôme $\lambda^n - a_1\lambda^{n-1} - \dots - a_n$, que l'on obtient
directement en cherchant des solutions de la forme $x(t) = e^{\lambda t}$
dans l'équation d'ordre $n$. On suppose que ce polynôme possède $m\leq n$
racines distinctes $\lambda_k$, de multiplicités $r_k$ avec $\sum_{k=1}^mr_k = n$.
#+BEGIN_property
La solution générale de l'équation différentielle linéaire homogène d'ordre
$n$ est\nbsp{}:
\begin{equation*}
x(t) = \sum_{k=1}^m\sum_{p=0}^{r_k-1}\alpha_{k,p}\,t^p\,e^{\lambda_kt},\qquad t\in\mathbb R^+
\end{equation*}
où les $n$ constantes $\alpha_{k,p}$ sont déterminées par les conditions
initiales.
#+END_property
#+BEGIN_proof
Direct en appliquant le théorème de la [[#caracterisation][section précédente]]
au système équivalent\nbsp{}: $x = x_n$ est une coordonnée de $X(t)$, donc une
combinaison linéaire des $y_i(t) = e^{\lambda_it}P_i(t)$, et le degré de
$P_i$ est au plus $r_k-1$ lorsque $\lambda_i = \lambda_k$. La famille des $n$
fonctions $t^pe^{\lambda_kt}$ est linéairement indépendante, et l'espace des
solutions étant de dimension $n$, elle en est une base.
#+END_proof
#+BEGIN_exemple
Pour $n=2$, l'équation $\ddot x(t) = a_1\dot x(t) + a_2x(t)$ a pour polynôme
caractéristique $\lambda^2 - a_1\lambda - a_2$. Si le discriminant
$a_1^2+4a_2$ est strictement positif, les racines $\lambda_1$ et $\lambda_2$
sont réelles distinctes et $x(t) = \alpha_1e^{\lambda_1t} + \alpha_2e^{\lambda_2t}$.
S'il est nul, la racine double $\lambda = a_1/2$ donne
$x(t) = (\alpha_0 + \alpha_1t)\,e^{\lambda t}$. S'il est strictement négatif,
les racines sont conjuguées, $\lambda = a\pm\mathrm ib$ avec $a = a_1/2$ et
$b = \frac12\sqrt{-a_1^2-4a_2}$, et la solution réelle s'écrit
$x(t) = e^{at}\bigl(\alpha_1\cos(bt) + \alpha_2\sin(bt)\bigr)$.
#+END_exemple
Considérons maintenant l'équation avec un second membre\nbsp{}:
\begin{equation*}
x^{(n)}(t) = a_1x^{(n-1)}(t) + \dots + a_nx(t) + b(t),\qquad t\in\mathbb R^+
\end{equation*}
où $b(t)$ est une fonction continue de $\mathbb R^+$ dans $\mathbb R$.
L'introduction d'un second membre ne pose pas de problème nouveau\nbsp{}: en
ajoutant à une solution particulière $\psi(t)$ de l'équation complète la
solution générale de l'équation homogène, on obtient la solution générale
de l'équation complète, puisque $x(t)$ est solution de l'équation complète
si et seulement si $x(t)-\psi(t)$ est solution de l'équation homogène. Il ne
reste plus qu'à déterminer les $n$ constantes d'intégration à l'aide des
conditions initiales. Pour les seconds membres usuels, on connaît la forme
de la solution particulière.
#+BEGIN_property
Si le second membre est de la forme $b(t) = e^{\mu t}Q(t)$, où $\mu$ est un
nombre réel ou complexe et $Q$ un polynôme de degré $q$, alors l'équation
complète admet une solution particulière de la forme $e^{\mu t}R(t)$, avec
$R$ un polynôme de degré $q$, si $\mu$ n'est pas racine du polynôme
caractéristique, et de la forme $t^re^{\mu t}R(t)$ si $\mu$ est racine
d'ordre $r$ du polynôme caractéristique.
#+END_property
Nous admettons cette propriété, dont l'exemple de la section
[[#exemple-complexe][précédente]] est une illustration avec \(\mu = 0\)\nbsp{}: le
second membre y était polynomial de degré un, zéro n'était pas valeur
propre, et la solution particulière était polynomiale de degré un. Les
coefficients de $R$ s'obtiennent par identification, en substituant la forme
postulée dans l'équation.
* Stabilité d'un système dynamique
:PROPERTIES:
:CUSTOM_ID: stabilite
:END:
** Définition et critère
:PROPERTIES:
:CUSTOM_ID: critere
:END:
On s'intéresse au système homogène\nbsp{}:
\begin{equation*}
\dot X(t) = A\,X(t),\qquad t\in\mathbb R^+
\end{equation*}
#+BEGIN_definition
On dit que la matrice réelle $A$ de dimension $n\times n$ est /d-stable/
(différentiellement stable) si toute solution $X(t)$ du système homogène
tend vers $0$ quand $t$ tend vers $+\infty$. On dit alors que l'état
stationnaire nul du système est /globalement stable/.
#+END_definition
Plus généralement, considérons une dynamique de la forme
$\dot X(t) = A\,X(t) + b$, où le second membre $b$ est un vecteur constant.
Un /état stationnaire/ est une solution constante $X^{\star}$, c'est-à-dire
un point de $\mathbb R^n$ vérifiant $A\,X^{\star} + b = 0$, soit
$X^{\star} = -A^{-1}b$ si $A$ est de plein rang. L'état stationnaire est
globalement stable si, pour toute condition initiale $X_0\in\mathbb R^n$, la
solution telle que $X(0) = X_0$ tend vers $X^{\star}$ quand $t$ tend vers
$+\infty$. Puisque l'écart $Z(t) = X(t) - X^{\star}$ vérifie
$\dot Z(t) = A\,Z(t)$, l'état stationnaire $X^{\star}$ est globalement stable
si et seulement si $A$ est d-stable.
#+BEGIN_theorem
Pour que la matrice $A$ soit d-stable, il faut et il suffit que toutes ses
valeurs propres soient de partie réelle strictement négative.
#+END_theorem
#+BEGIN_proof
On établit successivement la condition nécessaire et la condition
suffisante.
/Condition nécessaire./ On suppose que $A$ est d-stable. Soit
$\lambda = a + \mathrm ib$ une valeur propre de $A$ et $v\in\mathbb C^n$ un
vecteur propre associé, non nul. Alors $Z(t) = e^{\lambda t}v$ est une
solution complexe du système, car
$\dot Z(t) = \lambda e^{\lambda t}v = e^{\lambda t}A\,v = A\,Z(t)$. Ses parties
réelle et imaginaire sont des solutions réelles, qui tendent vers zéro
puisque $A$ est d-stable, donc $Z(t)$ tend vers zéro. Soit $v_i$ une
coordonnée non nulle de $v$. La coordonnée $z_i(t) = v_ie^{\lambda t}$ tend
vers zéro, ce qui implique que $|z_i(t)| = |v_i|\,e^{at}$ tend vers zéro
quand $t$ tend vers l'infini, donc que $a$ est strictement négatif.
/Condition suffisante./ On suppose que toutes les valeurs propres
$\lambda_k = a_k + \mathrm ib_k$ de $A$, de multiplicités $r_k$, sont de parties
réelles $a_k$ strictement négatives ($k=1,\dots,m$). Soit $X(t)$ une solution
du système. D'après le théorème de la section
[[#caracterisation][caractérisation des solutions]], chaque coordonnée
$x_i(t)$ de $X(t)$ est de la forme $\sum_{k=1}^me^{\lambda_kt}P_{i,k}(t)$, où
les $P_{i,k}$ sont des polynômes à coefficients complexes, et\nbsp{}:
\begin{equation*}
|x_i(t)| = \left|\sum_{k=1}^me^{\lambda_kt}P_{i,k}(t)\right| \leq \sum_{k=1}^me^{a_kt}\,|P_{i,k}(t)|
\end{equation*}
Puisque $a_k < 0$, chaque terme $e^{a_kt}|P_{i,k}(t)|$ tend vers zéro quand
$t$ tend vers l'infini, l'exponentielle l'emportant sur tout polynôme. Ainsi
$X(t)$ tend vers zéro et la matrice $A$ est d-stable.
#+END_proof
** Cas particuliers
:PROPERTIES:
:CUSTOM_ID: cas-particuliers
:END:
Le critère précédent est simple à mettre en œuvre en petite dimension.
- Si $n=1$, $A = (a)$ est d-stable si et seulement si $a < 0$.
- Si $n=2$, $A = \begin{pmatrix} a & b\\ c & d\end{pmatrix}$ est d-stable si
et seulement si $\mathrm{tr}(A) = a + d < 0$ et $|A| = ad - bc > 0$. En
effet, la trace est la somme des valeurs propres et le déterminant leur
produit. Si les valeurs propres sont réelles, elles sont toutes deux
strictement négatives si et seulement si leur somme est strictement
négative et leur produit strictement positif. Si elles sont complexes
conjuguées, $a\pm\mathrm ib$ avec $b\neq0$, leur produit $a^2+b^2$ est
toujours strictement positif et leur somme $2a$ est strictement négative si
et seulement si leur partie réelle l'est. La figure [[fig:stabilite][ci-dessous]]
illustre les trois configurations possibles lorsque le déterminant est non
nul.
- Si $A$ est symétrique, ses valeurs propres sont réelles et elle est
d-stable si et seulement si elle est définie négative, ce qui d'après le
critère de Sylvester s'écrit\nbsp{}:
\begin{equation*}
(-1)^p\,|A_{1:p}| > 0\qquad\text{pour tout } 1\leq p\leq n
\end{equation*}
où $A_{1:p}$ est la sous-matrice formée des $p$ premières lignes et
colonnes de $A$ (les mineurs principaux dominants alternent en signe, en
commençant par $a_{1,1} < 0$).
#+begin_src python :session sedl :exports none :results none
fig, axes = plt.subplots(1, 3, figsize=(12, 4))
cas = ((np.array([[-2, 1], [1, -2]]), r'Nœud stable : tr $=-4$, dét $=3$'),
(np.array([[-0.5, -2], [2, -0.5]]), r'Foyer stable : tr $=-1$, dét $=4{,}25$'),
(np.array([[1, 2], [2, 1]]), r'Col : tr $=2$, dét $=-3$'))
grille = np.linspace(-2, 2, 20)
U, V = np.meshgrid(grille, grille)
for ax, (A, titre) in zip(axes, cas):
dU = A[0, 0]*U + A[0, 1]*V
dV = A[1, 0]*U + A[1, 1]*V
ax.streamplot(U, V, dU, dV, color='b', linewidth=0.7, density=0.9, arrowsize=0.8)
ax.plot(0, 0, 'ro', markersize=4)
ax.set_xlim(-2, 2); ax.set_ylim(-2, 2)
ax.set_xlabel(r'$x_1$'); ax.set_ylabel(r'$x_2$')
ax.set_title(titre)
fig.tight_layout()
fig.savefig("sedl-stabilite.svg", transparent=True)
#+end_src
#+CAPTION: *Portraits de phase de trois systèmes homogènes de dimension deux. À gauche et au centre la trace est négative et le déterminant positif, toutes les trajectoires convergent vers l'origine, sans oscillation (valeurs propres réelles) ou en spiralant (valeurs propres complexes). À droite le déterminant est négatif, les valeurs propres sont réelles et de signes opposés et l'origine est un col : seules les trajectoires issues de la direction propre stable convergent.*
#+LABEL: fig:stabilite
[[file:sedl-stabilite.svg]]
Au-delà de la dimension deux, on peut utiliser le polynôme caractéristique
sans calculer ses racines. La proposition suivante traite le cas $n=3$.
#+BEGIN_proposition
Pour que le polynôme $\lambda^3 + a\lambda^2 + b\lambda + c$ ait toutes ses
racines de partie réelle strictement négative, il faut et il suffit que ses
coefficients vérifient $a > 0$, $b > 0$, $c > 0$ et $ab > c$.
#+END_proposition
#+BEGIN_proof
Notons $\lambda_1$, $\lambda_2$ et $\lambda_3$ les trois racines dans
$\mathbb C$. En développant $(\lambda-\lambda_1)(\lambda-\lambda_2)(\lambda-\lambda_3)$
et en identifiant, on a $a = -(\lambda_1+\lambda_2+\lambda_3)$,
$b = \lambda_1\lambda_2+\lambda_1\lambda_3+\lambda_2\lambda_3$ et
$c = -\lambda_1\lambda_2\lambda_3$, d'où l'identité\nbsp{}:
\begin{equation*}
ab - c = -(\lambda_1+\lambda_2)(\lambda_2+\lambda_3)(\lambda_3+\lambda_1)
\end{equation*}
/Condition nécessaire./ Si les trois racines sont réelles et strictement
négatives, on a immédiatement $a > 0$, $b > 0$, $c > 0$, et chaque facteur
$\lambda_i+\lambda_j$ étant strictement négatif, $ab - c > 0$. Si
$\lambda_1 = -r$ est réelle, avec $r > 0$, et $\lambda_{2,3} = \alpha\pm\mathrm i\beta$
avec $\alpha < 0$, alors $a = r - 2\alpha > 0$,
$b = -2r\alpha + \alpha^2+\beta^2 > 0$, $c = r(\alpha^2+\beta^2) > 0$ et,
puisque $(\lambda_1+\lambda_2)(\lambda_1+\lambda_3) = |\lambda_1+\lambda_2|^2 > 0$
et $\lambda_2+\lambda_3 = 2\alpha < 0$, on a encore $ab - c > 0$.
/Condition suffisante./ Supposons $a > 0$, $b > 0$, $c > 0$ et $ab > c$. Un
polynôme réel de degré trois possède au moins une racine réelle
$\lambda_1$, et celle-ci est strictement négative puisque, les coefficients
étant tous strictement positifs, le polynôme est strictement positif pour
$\lambda\geq0$. On factorise
$\lambda^3+a\lambda^2+b\lambda+c = (\lambda-\lambda_1)(\lambda^2+s\lambda+q)$, et
par identification $c = -\lambda_1q$, soit $q = -c/\lambda_1 > 0$, puis
$b = q - \lambda_1s$ et $a = s - \lambda_1$. Il vient alors\nbsp{}:
\begin{equation*}
ab - c = (s-\lambda_1)(q-\lambda_1s) + \lambda_1q = s\bigl(q - \lambda_1s + \lambda_1^2\bigr) = s\bigl(b + \lambda_1^2\bigr)
\end{equation*}
et donc $s = (ab-c)/(b+\lambda_1^2) > 0$. Les deux autres racines sont celles
du facteur $\lambda^2+s\lambda+q$, dont la somme $-s$ est strictement négative
et le produit $q$ strictement positif\nbsp{}: d'après le cas $n=2$, elles sont
de partie réelle strictement négative.
#+END_proof
Les deux propriétés suivantes donnent des conditions nécessaires de
stabilité, faciles à vérifier, qui permettent d'écarter rapidement une
matrice.
#+BEGIN_property
Si la matrice réelle $A$ de dimension $n\times n$ est d-stable, alors sa
trace est strictement négative et son déterminant est du signe de $(-1)^n$.
#+END_property
#+BEGIN_proof
La trace est la somme des valeurs propres et le déterminant leur produit.
Les valeurs propres réelles sont strictement négatives, et les valeurs
propres complexes vont par paires conjuguées $a\pm\mathrm ib$ avec $a < 0$,
dont la somme $2a$ est strictement négative et le produit $a^2+b^2$
strictement positif. La somme de toutes les valeurs propres est donc
strictement négative, et leur produit est du signe de $(-1)^{n_r}$, où $n_r$
est le nombre de valeurs propres réelles, qui a la parité de $n$.
#+END_proof
#+BEGIN_property
Si le polynôme $\lambda^n + a_1\lambda^{n-1} + \dots + a_{n-1}\lambda + a_n$ a
toutes ses racines de partie réelle strictement négative, alors tous ses
coefficients sont strictement positifs.
#+END_property
#+BEGIN_proof
Le polynôme se factorise en $(\lambda-\lambda_1)(\lambda-\lambda_2)\cdots(\lambda-\lambda_n)$.
Si $\lambda_1 < 0$ est réelle, les coefficients de $\lambda-\lambda_1$ sont
strictement positifs. Si $\lambda_1 = a + \mathrm ib$ avec $a < 0$ et
$b\neq0$, on regroupe le facteur avec celui de la racine conjuguée\nbsp{}:
$(\lambda - a - \mathrm ib)(\lambda - a + \mathrm ib) = \lambda^2 - 2a\lambda + a^2+b^2$,
dont les coefficients sont strictement positifs. Le polynôme est donc le
produit de polynômes du premier et du second degré à coefficients
strictement positifs, et tous ses coefficients sont strictement positifs.
#+END_proof
#+BEGIN_remarque
Le polynôme caractéristique de la matrice compagnon de l'équation d'ordre
$n$ est $(-1)^n(\lambda^n - a_1\lambda^{n-1} - \dots - a_n)$. La propriété
s'applique au polynôme unitaire \(\lambda^n - a_1\lambda^{n-1} - \dots - a_n\)\nbsp{}:
une condition nécessaire de stabilité de l'équation d'ordre $n$ est que tous
les coefficients $a_i$ soient strictement négatifs. Pour $n=2$, la condition
$a_1 < 0$ et $a_2 < 0$ est aussi suffisante, puisque la trace de la matrice
compagnon est $a_1$ et son déterminant $-a_2$.
#+END_remarque
** Matrices à diagonale dominante
:PROPERTIES:
:CUSTOM_ID: diagonale-dominante
:END:
#+BEGIN_definition
Une matrice carrée $A = (a_{i,j})$ de dimension $n\times n$ à éléments réels
est à /diagonale négative dominante/ s'il existe $n$ nombres $d_i > 0$,
$i=1,\dots,n$, tels que\nbsp{}:
\begin{equation*}
-d_i\,a_{i,i} > \sum_{j\neq i}d_j\,|a_{i,j}|\qquad\text{pour tout } 1\leq i\leq n
\end{equation*}
#+END_definition
En particulier, les éléments diagonaux d'une telle matrice sont strictement
négatifs, et chacun domine, en valeur absolue, les autres éléments de sa
ligne pondérés par les $d_j$. Cette condition est facile à vérifier, et elle
suffit à garantir la stabilité.
#+BEGIN_property
Une matrice à diagonale négative dominante est d-stable.
#+END_property
#+BEGIN_proof
Soit $\lambda = \alpha + \mathrm i\beta$ une valeur propre de $A$ et
$v\in\mathbb C^n$, non nul, un vecteur propre associé, de coordonnées $v_j$.
Choisissons un indice $k$ tel que \(|v_k|/d_k = \max_j|v_j|/d_j\)\nbsp{}; on a
$v_k\neq0$ puisque $v$ est non nul. La \(k\)-ième ligne de $A\,v = \lambda v$
s'écrit $(\lambda - a_{k,k})\,v_k = \sum_{j\neq k}a_{k,j}\,v_j$, d'où, en
utilisant $|v_j|\leq d_j|v_k|/d_k$ pour tout \(j\)\nbsp{}:
\begin{equation*}
\begin{split}
|\lambda - a_{k,k}|\,|v_k| &\leq \sum_{j\neq k}|a_{k,j}|\,|v_j| \leq \frac{|v_k|}{d_k}\sum_{j\neq k}d_j\,|a_{k,j}|\\
&< \frac{|v_k|}{d_k}\bigl(-d_k\,a_{k,k}\bigr) = -a_{k,k}\,|v_k|
\end{split}
\end{equation*}
où la dernière inégalité est la définition de la diagonale négative
dominante. En divisant par $|v_k| > 0$ il vient $|\lambda - a_{k,k}| < -a_{k,k}$,
et puisque la partie réelle d'un nombre complexe est majorée par son module,
$\alpha - a_{k,k} \leq |\lambda - a_{k,k}| < -a_{k,k}$, soit $\alpha < 0$. Toutes
les valeurs propres sont de partie réelle strictement négative et $A$ est
d-stable.
#+END_proof
** Le critère de Routh–Hurwitz
:PROPERTIES:
:CUSTOM_ID: routh-hurwitz
:END:
Le critère de Routh–Hurwitz généralise la proposition établie pour $n=3$ en
donnant une condition nécessaire et suffisante portant sur les coefficients
du polynôme caractéristique, sans calcul des racines. Soit
$p(\lambda) = \lambda^n + a_1\lambda^{n-1} + \dots + a_{n-1}\lambda + a_n$ un
polynôme unitaire à coefficients réels[fn:: Pour une matrice $A$, on prend
$p(\lambda) = (-1)^n\chi_A(\lambda)$, qui a les mêmes racines.]. On construit
la matrice carrée de dimension \(n\times n\)\nbsp{}:
\begin{equation*}
R =
\begin{pmatrix}
a_1 & a_3 & a_5 & \dots & a_{2n-3} & a_{2n-1}\\
1 & a_2 & a_4 & \dots & a_{2n-4} & a_{2n-2}\\
0 & a_1 & a_3 & \dots & a_{2n-5} & a_{2n-3}\\
0 & 1 & a_2 & \dots & a_{2n-6} & a_{2n-4}\\
\vdots & \vdots & \vdots & \ddots & \vdots & \vdots\\
0 & 0 & 0 & \dots & a_{n-2} & a_n
\end{pmatrix}
\end{equation*}
dont l'élément de la ligne $i$ et de la colonne $j$ est $a_{2i-j}$, avec la
convention $a_0 = 1$ et $a_k = 0$ si $k < 0$ ou $k > n$. On peut montrer
qu'une condition nécessaire et suffisante pour que toutes les racines de
$p$ soient de partie réelle strictement négative est que les $n$ mineurs
principaux dominants de $R$ (les déterminants des sous-matrices formées des
$p$ premières lignes et colonnes, $p=1,\dots,n$) soient tous strictement
positifs. Nous admettons ce résultat, et nous contentons de vérifier qu'il
redonne les conditions déjà établies.
#+NAME: ex-rh2
#+BEGIN_exercice
Écrivez la matrice de Routh–Hurwitz du polynôme $\lambda^2 + a_1\lambda + a_2$
et retrouvez la condition de stabilité d'un système de dimension deux.
#+END_exercice
#+ATTR_HTML: :class corrige
#+BEGIN_details
#+BEGIN_summary
Corrigé
#+END_summary
Avec $n=2$, $a_3 = 0$ et la matrice est\nbsp{}:
\begin{equation*}
R = \begin{pmatrix} a_1 & 0\\ 1 & a_2\end{pmatrix}
\end{equation*}
Les mineurs principaux dominants sont $a_1$ et $a_1a_2$. Les racines sont
de partie réelle strictement négative si et seulement si\nbsp{}:
\begin{equation*}
\begin{cases}
a_1 > 0\\
a_1a_2 > 0
\end{cases}
\quad\Leftrightarrow\quad
\begin{cases}
a_1 > 0\\
a_2 > 0
\end{cases}
\end{equation*}
Pour une matrice $A$ de dimension deux, $p(\lambda) = \lambda^2 - \mathrm{tr}(A)\,\lambda + |A|$,
et l'on retrouve la condition $\mathrm{tr}(A) < 0$ et $|A| > 0$.
#+END_details
#+NAME: ex-rh3
#+BEGIN_exercice
Écrivez la matrice de Routh–Hurwitz du polynôme
$\lambda^3 + a_1\lambda^2 + a_2\lambda + a_3$ et retrouvez la proposition
établie plus haut pour les polynômes de degré trois.
#+END_exercice
#+ATTR_HTML: :class corrige
#+BEGIN_details
#+BEGIN_summary
Corrigé
#+END_summary
Avec $n=3$, $a_4 = a_5 = 0$ et la matrice est\nbsp{}:
\begin{equation*}
R = \begin{pmatrix} a_1 & a_3 & 0\\ 1 & a_2 & 0\\ 0 & a_1 & a_3\end{pmatrix}
\end{equation*}
Les mineurs principaux dominants sont $a_1$, $a_1a_2 - a_3$ et, en
développant selon la dernière colonne, $a_3(a_1a_2 - a_3)$. Les conditions
de Routh–Hurwitz s'écrivent donc $a_1 > 0$, $a_1a_2 > a_3$ et
$a_3(a_1a_2-a_3) > 0$, soit $a_3 > 0$ compte tenu de la deuxième. Enfin
$a_1 > 0$, $a_3 > 0$ et $a_1a_2 > a_3$ impliquent $a_2 > 0$. On retrouve
exactement les conditions $a_1 > 0$, $a_2 > 0$, $a_3 > 0$ et $a_1a_2 > a_3$ de
la proposition.
#+END_details