Système d’équations et ordre 2
Contents
5. 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.
5.1. Système d’équations - Position du problème#
On s’intéresse au système d’équations différentielle suivant :
5.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].Fprend comme argument un vecteurY(de taille 2) et renvoie un vecteur de taille 2.On n’a techniquement pas besoin du temps puisque
Fne 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).
5.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.
5.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\)).