Système d’équations et ordre 2
Contents
4. Système d’équations et ordre 2#
Le but est de voir comment utiliser la méthode d’intégration d’Euler explicite pour étudier le régime transitoire d’un système d’équations. On a alors un système d’équations différentielles. La théorie relative à la méthode d’intégration par Euler explicite ayant déjà été donnée, nous allons ici partir d’un exemple pour comprenre sa généralisation à des systèmes d’ordre supérieurs.
4.1. Système d’équations - Position du problème#
On s’intéresse au système d’équations différentielle suivant :
4.1.1. Vision vectorielle#
Le système d’équations différentielles précédent peut être vu comme une seule équation différentielle d’ordre 1 faisant un intervenir des vecteurs:
soit, en définissant le vecteur:
Sa dérivée est:
avec :
On rappelle que d’un point de vue vectoriel:
u = Y[0]
etv = Y[1]
.F
prend comme argument un vecteurY
(de taille 2) et renvoie un vecteur de taille 2.On n’a techniquement pas besoin du temps puisque
F
ne dépend pas explicitement du temps mais on prendra l’habitude de le mettre comme argument même si on ne l’utilise pas (pour des fonctions commesolve_ivp
).
4.1.2. Schéma d’Euler#
Le principe du schéma d’Euler est alors identique au cas d’ordre 1 avec une seule fonction:
avec \(Y_{k} = Y(t_k)\) et \(h = t_{k+1} - t_k\)
Dans l’expression précédente, la somme correspond à la somme vectorielle (somme des coordonnées terme à terme \(\overrightarrow{w_1} + \overrightarrow{w_2}\)) et la multiplication à la multiplication d’un vecteur par un scalaire (\(\lambda \overrightarrow{w}\)).
Il faudra juste veiller à ce que la fonction \(F\) renvoie un vecteur numpy et que \(y_0\) soit un vecteur numpy dans les programmes (de manière à faciliter la somme vectorielle et la multiplication par un scalaire - pas besoin de boucle). Les valeurs \(u_k\) et \(v_k\) calculées aux instant \(t_k = t_0 + hk\) sont alors stockées dans deux vecteurs numpy (on pourra les rassembler dans un seul tableau numpy à deux colonnes comme le fait odeint
(ce que fera naturellement la fonction euler
créée dans la partie précédente) ou à deux lignes comme le fait solve_ivp
.
4.2. Système d’ordre 2#
Lors qu’on doit résoudre un système d’ordre 2 du type:
on peut toujours le réécrire sous la forme d’un système d’équations différentielles d’ordre 1 où les deux fonctions inconnues sont:
En effet, la dérivée de \(Y\) est:
On peut donc se ramener au cas précédent en posant:
La méthode permettant de résoudre un système d’équation permettra donc aussi de résoudre un système d’ordre 2 (et on obtient en prime la dérivée de la solution aux instants \(t_k\)).