Adloun

Systèmes différentiels linéaires

Cours complet · mathématiques appliquées (ECG 2e année), chapitre 4 · prépa ECG, 2e année

Travailler ce chapitre sur Adloun Exercices corrigés de ce chapitre

La première année a résolu les équations différentielles et les équations d'ordre à coefficients constants. Il s'agissait à chaque fois d'une fonction inconnue. Or les situations économiques en font intervenir plusieurs à la fois, et qui s'influencent : le prix d'un bien dépend de la quantité offerte, laquelle réagit au prix. Deux fonctions, deux équations, et chacune fait intervenir l'autre.

C'est un système différentiel. Ce chapitre montre qu'il s'écrit , et surtout que la diagonalisation du chapitre 3 le découple : dans une base de vecteurs propres, les inconnues cessent de s'influencer, chacune suit sa propre exponentielle, et l'on n'a plus qu'à traduire le résultat.

AttentionL'exponentielle de matrice n'est pas au programme

On rencontre parfois la solution écrite . Cette notation n'est pas au programme d'ECG et ne doit pas être employée. La seule méthode attendue est la diagonalisation, en taille ou , avec les valeurs propres fournies ou faciles à obtenir.

4.1 D'où viennent ces systèmes

4.1.1 Un exemple économique

Exemple 4.1Offre, demande et ajustement du prix

Notons l'écart du prix d'un bien à son prix d'équilibre, et l'écart du stock détenu par les producteurs. Un modèle simple d'ajustement s'écrit :

  • le prix baisse quand le stock est excédentaire : ;
  • le stock augmente quand le prix est élevé, car l'offre suit : .

Soit, matriciellement,

La question de l'économiste — le marché revient-il à l'équilibre ? — est exactement la question du mathématicien : tend-il vers ?

4.1.2 Le cadre

Définition 4.2Système différentiel linéaire à coefficients constants

Soit . On appelle système différentiel linéaire à coefficients constants le problème consistant à trouver les fonctions , dérivables, vérifiant

où désigne la colonne des dérivées des coordonnées de .

◆Théorème 4.3Problème de Cauchy

Soient , et . Le problème

admet une unique solution, définie sur tout entier.

iRemarqueRésultat admis

Le programme admet ce théorème. Sa portée est considérable : deux trajectoires distinctes ne peuvent jamais se croiser, puisque le point de croisement définirait deux solutions d'un même problème de Cauchy. C'est ce qui donne aux portraits de phase leur allure de courbes emboîtées, sans jamais d'intersection.

4.2 Résolution par diagonalisation

4.2.1 Le découplage

ImportantLa méthode, en trois temps

Supposons diagonalisable, avec .

  • Changer d'inconnue : poser , c'est-à-dire . Alors

  • Résoudre le système découplé : s'écrit pour chaque , dont les solutions sont , avec .
  • Revenir : .
Exemple 4.4Une résolution complète

Résolvons avec et .

Diagonalisation. est symétrique donc diagonalisable. On a et , d'où , .

Solution générale. Toute solution s'écrit

Condition initiale. En : , soit et : , . Donc

Vérification. En : . Et , tandis que . Les deux coïncident.

iRemarqueLa plus grande valeur propre finit par tout dicter

Dans , divisons par où est la plus grande valeur propre présente. Tous les autres termes portent alors , avec un exposant négatif : ils tendent vers . La trajectoire s'aligne donc, quand , sur la direction propre de — quelle que soit la condition initiale, pourvu que le coefficient correspondant ne soit pas nul.

ImportantLa forme à retenir

Quand est diagonalisable de valeurs propres et de vecteurs propres , la solution générale est

On n'écrit jamais ni : les vecteurs propres suffisent, et les constantes se déterminent par la condition initiale.

4.3 Comportement asymptotique, stabilité

Définition 4.5État d'équilibre

Une solution constante est appelée état d'équilibre. Une telle solution vérifie , donc : les états d'équilibre sont exactement les éléments de .

iRemarqueQuand l'équilibre est unique

Si est inversible, : le seul état d'équilibre est l'origine. Sinon — c'est-à-dire si — il y a toute une droite, voire tout un plan, d'états d'équilibre.

◆Théorème 4.6Comportement des trajectoires

Soit diagonalisable, de valeurs propres . Pour toute solution de :

  • si pour tout , alors quand : l'origine est un équilibre stable ;
  • s'il existe avec , alors les solutions dont la composante correspondante est non nulle sont non bornées ;
  • si les valeurs propres sont de signes opposés, l'origine est un point selle : les trajectoires s'approchent selon les directions propres négatives et s'échappent selon les positives.
Exemple 4.7Le marché revient-il à l'équilibre ?

Reprenons . On vérifie que et sont vecteurs propres :

Les deux valeurs propres et sont strictement négatives : toute trajectoire tend vers . Le marché revient à l'équilibre, et il le fait au rythme de la valeur propre la plus proche de , ici — c'est elle qui s'éteint le plus lentement, donc elle qui dicte la vitesse finale.

4.4 Équation scalaire d'ordre 2 et système d'ordre 1

◆Théorème 4.8Équivalence

Soient . La fonction est solution de l'équation scalaire

si et seulement si la colonne est solution du système

Démonstration

Posons . Alors , et . Les deux colonnes sont égales si et seulement si la première ligne est vraie — ce qu'elle est toujours — et la seconde s'écrit .

AttentionL'ordre des lignes de la matrice compagnon

La seconde ligne de lit l'équation dans cet ordre : le coefficient de vient en première colonne, celui de en seconde. D'où , et non . L'inversion est l'erreur la plus fréquente ; elle se détecte en recalculant la seconde ligne du produit et en la comparant à .

Exemple 4.9Retrouver les solutions de première année

Prenons , soit et . La matrice associée est . On vérifie que et sont vecteurs propres, pour et :

Donc , et en lisant la première coordonnée :

C'est exactement la forme obtenue en première année, où et étaient les racines de . Les valeurs propres de la matrice sont les racines de l'équation caractéristique scalaire — le même calcul, vu autrement.

Python : Résoudre, et vérifier sur la solution


import numpy as np

A = np.array([[1., 2.], [2., 1.]])
vp, V = np.linalg.eig(A)
print(vp)                              # [ 3. -1.]

# X(t) = 2 e^{3t} (1,1) + e^{-t} (1,-1)
def X(t):
    return (2*np.exp(3*t)*np.array([1., 1.])
            + np.exp(-t)*np.array([1., -1.]))

t, h = 0.7, 1e-6
derivee = (X(t+h) - X(t-h)) / (2*h)    # derivee numerique
print(np.allclose(derivee, A @ X(t), atol=1e-5))   # True
print(X(0.))                      # [3. 1.]   <- la condition initiale

La dérivée numérique confronte la solution proposée à l'équation elle-même : si et coïncident en un point tiré au hasard, la formule est bonne.

Continuer sur Adloun : animation, QCM, fiches, exercices