You are on page 1of 10

Iona Mahe - Mathilde Cachenaud - A11

Compte rendu
TP2 MPSI

Intégrations d’équations différentielles

I - Exercice 1 2
a) la méthode d’Euler explicite 2
b) la méthode de Runge-Kutta d’ordre 2 4
c) la méthode de Runge-Kutta d’ordre 4 : 5
I - Exercice 2 8
a) méthode d’euler : 8
b) méthode Runge Kutta 2 : 9

1
Iona Mahe - Mathilde Cachenaud - A11

TP n°2 : Intégrations d’équations différentielles

L’objectif de ce TP est d’étudier certains outils mathématiques à l’aide du logiciel MATLAB.


Nous allons plus particulièrement parler des équations différentielles et de la manière de les
résoudre informatiquement. Pour cela, nous allons utiliser la méthode d’Euler et de
Runge-Kutta (d’ordre 2 à 4) et nous allons aussi pouvoir comparer les degrés
d’approximation de ces méthodes.

I - Exercice 1

Intégrer cette équation différentielle avec les méthodes d’Euler et de Runge-Kutta


(ordre 2 et 4), avec des pas d'intégration de votre choix, en utilisant les différentes
conditions initiales ci-dessous :

𝑦'(𝑡) = 3𝑦(𝑡)𝑠𝑖𝑛(𝑦(𝑡)) + 𝑡
𝑦(− 6) ∈ [− 2; 4], 𝑡 ∈ [− 6; 4]

a) la méthode d’Euler explicite

yn+1 = yn + Δt * f(tn,yn)

équation traité par la méthode d’Euler explicite → tn = -6 + n x Δt


yn+1 = yn + Δt (3ynsinyn + tn)

Le but de cette méthode est de partir de t0 et y0 pour pouvoir calculer pas à pas les tn et yn,
et ainsi avoir à partir de la valeur précédente yn, yn+1 = y(tn+1) avec tn+1 = tn + Δt

Pour l'effectuer sur matlab, nous avons tout d’abord poser les conditions initiales

● comme 𝑡 ∈ [− 6; 4], on pose le premier t0 à 𝑡(𝑛) =− 6 pour 𝑛 = 1 et le tf(final) = 4


● comme 𝑦(− 6) ∈ [− 2; 4], on pose le premier y0 à 𝑦(𝑛) = − 2 pour 𝑛 = 1
● on prend Δt = 0,1s (le pas de discrétisation)

Par la suite, nous avons donc effectué une boucle while pour faire varier le paramètre t avec
un pas de 0,1 (dt) et ainsi parcourir tout l’intervalle.

2
Iona Mahe - Mathilde Cachenaud - A11

Pour répondre à la question à la question c du TP, nous avons créé une deuxième boucle
while qui contient elle-même la première boucle while (t). Cette boucle nous permet
d'exécuter le programme d’Euler pour les différentes conditions initiales. On a choisi de
réaliser plusieurs courbes afin de visualiser les différences engendrées suite au changement
d’une seule condition (on fait varier la condition initiale avec un pas de 0,5). On va voir à
l’aide des graphiques que les courbes sont complètement différentes.

graphe obtenu :

3
Iona Mahe - Mathilde Cachenaud - A11

b) la méthode de Runge-Kutta d’ordre 2

y∽n+1 = yn + Δt * f(tn,yn)
yn+1 = yn + (Δ𝑡/2) * [ f(tn,yn) + f(tn+1, y∽n+1) ]

équation traité par la méthode de Runge-Kutta d’ordre 2


→ tn = -6 + n*Δt
y∽n+1 = yn + Δt * (3ynsinyn + tn)
yn+1 = yn + (Δ𝑡/2) * [ (3ynsinyn + tn) + (3y∽n+1 + tn+1) ]

Avec cette méthode, l’approximation de la fonction est censée être plus précise. En
application sur Matlab, le déroulé est quasiment identique nous allons juste ajouter certaines
lignes intermédiaires. La fonction y~ correspond à l’approximation d’Euler calculée
précédemment. On la réutilise pour calculer la nouvelle approximation de Runge-Kutta 2.
Voici le code correspondant :

graphe obtenu :

4
Iona Mahe - Mathilde Cachenaud - A11

c) la méthode de Runge-Kutta d’ordre 4 :

La méthode de RK4 nous permet d'approximer encore plus efficacement la fonction


recherchée étant donné que l’on augmente le nombre d'évaluation de la tangente. A l’aide
de An Bn Cn et Dn on calcule à quatres endroits différents la tangente avant le point suivant
afin d’en faire une moyenne très précise.

Encore une fois, le déroulé sur Matlab est similaire à celui expliqué pour la méthode d’Euler.
On y intègre juste les nouvelles grandeurs calculées :

5
Iona Mahe - Mathilde Cachenaud - A11

graphe obtenu :

Lors du cours nous avons appris que la méthode d’Euler était la moins précise. A première
vue, on remarque bien que les trois méthodes nous donnent des courbes similaires
cependant, on voit bien que plus la méthode est précise, plus les courbes sont lisses. Pour
mieux se rendre compte, on effectue un écart :

Écart entre Euler et RK2

6
Iona Mahe - Mathilde Cachenaud - A11

Écart entre Euler et RK4

Écart entre RK4 et RK2

On remarque que les écarts sont les plus importants entre la méthode d’Euler et les
méthodes de Runge-Kutta. Par ailleurs, RK2 et RK4 sont très proches même s'il y a quand
même une différence de précision.

Code utilisé :

7
Iona Mahe - Mathilde Cachenaud - A11

I - Exercice 2

Déterminer la trajectoire d’un satellite géostationnaire en orbite autour de la Terre

2
𝑑 𝐺*𝑚𝑡*𝑚𝑠 𝑂𝑆 '' 𝐺𝑚𝑡*𝑥 '' 𝐺𝑚𝑡*𝑦
𝑚𝑠 2 𝑂𝑆 = 2 * ||𝑂𝑆||
⇔ 𝑥 = − 2 2 2 2 2
𝑒𝑡 𝑦 = − 2 2 2 2 2
𝑑𝑡 ||𝑂𝑆|| (𝑥 +𝑦 ) * 𝑥 +𝑦 (𝑥 +𝑦 ) * 𝑥 +𝑦

on pose :
x1 = x
𝐺𝑚𝑡 𝐺𝑚𝑡
x2 = x’ 𝑋'(𝑡) = (𝑥2 ; 2 2 3/2 * 𝑥1; 𝑥4 ; 2 2 3/2 * 𝑥3) = 𝐹(𝑡, 𝑥)
(𝑥(1) +𝑥(3) ) (𝑥(1) +𝑥(3) )
x3 = y
x4 = y’

Dans notre cas, notre satellite se trouve à 36 000 m de la Terre. Il est sur son orbite
géostationnaire et ainsi il ne déviera pas de sa trajectoire.
Pour la méthode d’Euler et de Runge Kutta 2, nous avons tout d’abord fixé les conditions
initiales du satellite. Puis nous avons par la suite appliqué les méthodes.

a) méthode d’euler :

Nous avons dans un premier temps appliquer notre problème selon la méthode d’Euler
présentée dans l’exercice précédent pour pouvoir tracer l’orbite géostationnaire de ce
satellite et la circonférence de la Terre.

8
Iona Mahe - Mathilde Cachenaud - A11

graphe obtenu :

b) méthode Runge Kutta 2 :

Puis dans un second temps, nous avons traduit ce problème avec la méthode de Runge
Kutta 2 qui est plus précise que la précédente.

9
Iona Mahe - Mathilde Cachenaud - A11

graphe obtenu :

10

You might also like