Académique Documents
Professionnel Documents
Culture Documents
Resolution Equadiff PDF
Resolution Equadiff PDF
Resolution Equadiff PDF
Matlab
Olivier Gauthé
1
solution exacte, on peut résoudre numériquement une équation différentielle,
c’est à dire obtenir une valeur numérique approchée y(t) pour un ensemble de
temps discrets. L’objectif est que lorsque le pas de temps diminue, la solution
approchée converge vers la solution exacte.
2 Méthodes numériques
Nous allons détailler quelques méthodes numériques permettant de ré-
soudre l’équation différentielle
dy
= f (t, y), y(t0 ) = y0 (2)
dt
2
2.2 Autres méthodes numériques
La méthode d’Euler converge très lentement, l’erreur est mal contrôlée. On
cherche donc des algorithmes plus efficaces. On ne détaillera pas le déroulé des
méthodes, le lecteur intéressé est renvoyé à la littérature sur le sujet.
tmid = ti + ∆t/2
k1 = ∆t · f (ti , yi )
k2 = ∆t · f (tmid , yi + k1 /2)
k3 = ∆t · f (tmid , yi + k2 /2)
k4 = ∆t · f (ti+1 , yi + k3 )
yi+1 = yi + (k1 + 2k2 + 2k3 + k4 )/6
2.3 Application
Implémenter la méthode du point du milieu et la méthode de Runge-Kutta
pour résoudre le problème de Cauchy y(t) = 2y, y(0) = 1 sur l’intervalle
de temps [0, 4]. Tracer les courbe des résultats obtenus par cette méthode,
par la méthode d’Euler ainsi que la solution exacte. Faire varier le pas de
temps et regarder comment les solutions évoluent. Tracer la courbe de l’erreur
exp(8) − y(4) en fonction du pas de temps pour différentes méthodes.
3
la syntaxe est [t,y] = ode45(odefun,tspan,y0). Pour résoudre le problème
précédent, il faut donc rentrer
Ici, on définit une fonction sans nom qui renvoie 2y et on passe une référence à
cette fonction comme argument à ode45. On aurait aussi pu définir cette fonc-
tion dans un fichier annexe fct_ode1.m et l’appeler avec ode45(@fct_ode1,
[0,4],1).
Matlab détermine tout seul sa grille de temps, on ne lui passe donc que les
bornes comme argument.
Ẏ = f (t, Y ) (10)
4
Plus généralement, une équation différentielle scalaire d’ordre n
peut toujours se ramener à une équation vectorielle d’ordre 1 de
dimension n. Les conditions initiales s’écrivent alors Y (0) = Y0 , c’est à dire
qu’on fixe le vecteur initial, soit n scalaires. On peut ensuite appliquer les
méthodes numériques du chapitre précédent.
En pratique, la fonction ode45 ne résout que des équations différentielles
d’ordre 1, mais de dimension quelconque. Il faut donc ramener une équation
différentielle à une équation d’ordre 1 avant d’appeler ode45. Dans le cas du
ressort, on commence par construire la matrice A. On résout ensuite l’équation
différentielle sur l’intervalle [0, 2π] avec les conditions initiales x(0) = 1, v(0) =
0 en rentrant :