Les techniques de Runge-Kutta sont des schémas numériques à un pas qui permettent de résoudre les équations différentielles ordinaires. Elles font parties des méthodes les plus populaires de part leur facilité de mise en œuvre et leur précision. C'est Carle Runge et Martin Kutta qui, au début du XXe siècle, ont inventé ces méthodes.
Nous décrivons ici algorithme assez utilisé : celles de Runge-Kutta d'ordre 4.
Résolution d'équations différentielles linéaires du premier ordre par la méthode de Runge Kutta d'ordre 4 et application sous JAVA
1. D´epartement de Math´ematique, Informatique et Gestion
Fili`ere Sciences Math´ematiques et Informatiques
Num´eros d’ordre :.....
R´esolution d’´equations diff´erentielles lin´eaires du premier ordre
par la m´ethode de Runge Kutta d’ordre 4 et application
Projet tutor´e pr´epar´e par
Mohamed Ez-zini et Sofyane Bouameur
Sous la direction du
Prof. Brahim El habil
Soutenu le : 25 Mai 2017
Devant le jury :
Prof. B. El habil : Professeur la facult´e polydisciplinaire de Ouarzazate
Prof. R. Bouyouli : Professeur la facult´e polydisciplinaire de Ouarzazate
Ann´ee Universitaire : 2016-2017
3. Remerciements
Nous tenons `a remercier notre encadrant Monsieur Brahim El Habil Professeur `a la facult´e polydisciplinaire
de Ouarzazate, pour avoir accept´e d’encadrer ce projet tutor´e, pour son soutien, ses encouragements et ses
explications.
Nous remercions ´egalement Mademoiselle R’kia Bouyouli Professeur `a la facult´e polydisciplinaire de Ouar-
zazate, pour avoir accept´e d’ˆetre examinatrice de notre travail.
Enfin , Nous remercions ´egalement les professeurs et les personnels de la facult´e polydisciplinaire de Ouar-
zazate pour leur collaboration au long de la p´eriode de formation et toute personne ayant contribu´e, de pr`es ou
de loin, `a la r´ealisation de ce travail.
3
4. Introduction g´en´erale
Le pr´esent document constitue une synth`ese de notre travail r´ealis´e dans le cadre du projet tutor´e de
fin de formation de la licence sciences math´ematiques et informatique (SMI). Ce projet `a pour objectif est de
pr´esenter une ´etude analytique de la r´esolution des ´equations diff´erentielle lin´eaires du premier ordre `a coefficients
constantes et une r´esolution num´erique par la m´ethode de Runge-Kutta dordre 4.
Une grande vari´et´e de probl`emes relatifs `a la m´ecanique, l’astronomie, la physique, math´ematique, etc...
conduisent `a d´eterminer une fonction inconnue, par la connaissance d’une ´equation reliant ses d´eriv´ees successives
jusqu’`a un certain ordre. Ces ´equations sont appel´ees les ´equations diff´erentielles. Leur ´etude constitue l’une des
branches des math´ematiques les plus fameux.
Ces ´equations diff´erentielles en g´en´erale sont invent´ees par Newton (1642-1727). C’est le d´ebut de la physique
moderne et l’utilisation de l’analyse pour r´esoudre la loi de la gravitation universelle conduisant `a l’ellipsit´e des
orbites des plan`etes dans le syst`eme solaire. Leibniz (1646-1716) ´erige l’analyse en discipline autonome mais il
faut attendre les travaux d’Euler (1707,1783) et de Lagrange (1736-1813) pour avoir apparaˆıtre les m´ethodes
permettant la r´esolution des ´equations lin´eaires.
Plus tard, Liouville (1790-1882) montrera l’impossibilit´e de r´esoudre certaines ´equations diff´erentielles d’ordre
plus ´elev´e.
De nos jours beaucoup des math´ematiciens, `a commencer par Poincar´e (1854-1912), ont montr´e que les
solutions d’´equations diff´erentielles peuvent ˆetre tr`es instables, ces ´equations peuvent conduire `a des situations
chaotiques `a cause d’une grande sensibilit´e aux conditions initiales.
Parmis les m´ethodes num´eriques d’aproximations des solutions des ´equations diff´erentielles les plus fameux
et les plus ´efficasses on trouve la m´ethode de Runge-Kutta (voir [1]). Elles sont nomm´ees ainsi en l’honneur des
math´ematiciens Carl Runge et Martin Wilhem Kutta lesquels ´elabor`erent cette m´ethode en 1901. Ces m´ethodes
reposent sur le principe de l’it´eration avec une condition initiale, c’est `a dire qu’une premi`ere estimation de la
solution est utilis´ee pour calculer une seconde et ainsi de suite.
Ainsi notre rapport ´ecrit en LATEX contient deux chapitre. Le premier chapitre est consacr´e `a la r´esolution
analytique et num´erique des ´equations diff´erentielles du premier ordre sous la forme du probl`eme de Cauchy
suivant
y (t) = ay(t) + b, t ≥ 0,
y(t0) = y0,
O`u a, b et y0 sont des ´el´ements d’un corps K. Dans le deuxi`eme chapitre nous avons d´evelopp´e une application
sous le language de programation orient´e objet Java pour r´esoudre tout probl`eme de Cauchy.
4
5. Chapitre 1
´Equations diff´erentielles lin´eaires
1.1 Introduction
Le long de ce chapitre, on s’int´eressent aux ´equations diff´erentielles lin´eaires d’ordre 1 de la forme
a0y (t) + a1y(t) = b0, t ∈ I
d´efinies sur un intervalle de la forme I = [t0, +∞[. Si a0 = 1, alors cette ´equation est dite une ´equation
diff´erentielle lin´eaire d’ordre 1 normalis´ee.
Sinon on peut se ramener `a une ´equation diff´erentielle lin´eaire d’ordre 1 normalis´ee on divisent par a0. D’o`u
l’´equation devient
y (t) + ay(t) = b, t ∈ I,
o`u a =
a1
a0
et b =
b0
a0
. Pour ¸ca r´esolution, cette ´equation est muni d’un condition unitiale y0, qu’on suppose
´egale `a y(t0). Ce ci donne le probl`eme de Cauchy suivant
y (t) = −ay(t) + b, t ≥ t0,
y(t0) = y0,
(1.1.0.1)
Avec (a, b, y0) ∈ R3
. On commence ce chapitre, dans un premier temps, par donner deux exemples th´eorique des
´equation diff´erentielles lin´eaire d’ordre 1. En suite, on donnera la solution analytique du probl`eme de Cauchy
dans le cas g´en´erale. En fin, on s’interessent `a la solution num´erique de (1.1.0.1). En particulier, la solution par
la m´ethode de Rung Kutta.
1.1.1 Exemples et motivations
Les ´equations diff´erentielles lin´eaires sont aujourd’hui extrˆemement pr´esents dans de nombreux domaines
scientifiques telsque le domaine de la physique, le domaine finan¸cier, la biologie....
Dans cette section, on donne les deux exemples suivant
Exemple 1.1.1. (Circuit ´electrique) On consid`ere le circuit ´electrique RC d´ecrit par la figure suivante
O`u UC et UR repr´esent r´espectivement la tension du courant ´electrique aux bornes du condensateur C et de la
r´esistance R sous une tension constante E.
D’apr´es la loi d’additivit´e des tensions (ou loi des mailles), E = UR + UC et d’apr`es la loi d’Ohm UR = Ri,
o`u l’intensit´e i =
dq
dt
=
d(C.UC)
dt
= C
dUC
dt
, on trouve l’´equation diff´eretielle du circuit RC d´eterminer par la
forme suivante
E = RC
dUC
dt
+ UC ⇔
dUC(t)
dt
+
1
RC
UC(t) =
E
RC
.
5
6. Exemple 1.1.2. (Solde d’un compte bancaire) Tous les ans, un compte bancaire est cr´edit´e d’int´erˆets d’un
taux de 5%. Si on suppose que le client de ce compte paye 50$ pour son loyer alors le solde y de ce compte
bancaire en fontion de l’ann´ee t v´erifierait
y =
5
100
y − 50.
1.2 R´esolution analytique
Dans cette sous section, on consid`ere le probl`eme de Cauchy (1.1.0.1). Analytiquement, la solution de ce
syst`eme est donn´ee par la m´ethode de la variation de la constante (voir [2]), sous la forme suivante
y(t) = y0e−a(t−t0)
+
b
a
1 − e−a(t−t0)
, t ≥ t0. (1.2.0.1)
Exemple 1.2.1. On consid`ere le probl`eme de cauchy suivant
y (t) = −2y(t) + 6, t ≥ 0,
y(0) = −1.
Par la m´ethode de variation de la constante (voir (1.2.0.1)), la solution est donn´ee par
y(t) = −e2t
− 3(1 − e2t
), t ≥ 0
= 2e2t
− 3.
Dans la suite, on ´etudiera la solution num´erique du prob`eme de Cauchy (1.1.0.1).
1.3 M´ethode de Runge Kutta d’ordre 4
Dans cette partie, on s’int´eressent `a la r´esolution num´erique du syst`eme (1.1.0.1), o`u y(t) est la fonction
recherch´ee et y0 est la valeur initial. En particulier, la r´esolution par la m´ethode de Runge Kutta d’ordre 4 qui
pr´esente un outil d’une grande pr´ecision que d’autre m´ethode telsque les m´ethodes d’Euler, Heun et Cranck
Nicolson (voir [4] et [5]). On commence ce paragraphe par d´eterminer explicitement le principe de cette m´ethode.
1.3.1 Principe
Le principe de la m´ethode de Runge Kutta est de choisir un pas h = tn+1 −tn en partant de la valeur initiale
y0 = y(t0), on int´egre l’´equation diff´erentielle y (t) = −ay(t) + b entre tn et tn+1, cela donne la forme suivante
y(tn+1) − y(tn) =
tn+1
tn
− ay(s) + b ds. (1.3.1.1)
On commence par estimer num´eriquement l’integrale dans l’´equation (1.3.1.1).
(i) Par la m´ethode d’Euler explicite (voir [3]), l’int´egrale
tn+1
tn
−ay(s)+b ds est approch´ee comme suite
tn+1
tn
− ay(s) + b ds h × − ay(tn) + b .
Si on pose y(tn) = yn, pour tout n ∈ Z, alors l’´equation (1.3.1.1) est approch´ee sous la forme suivante
yn+1 = yn + h(−ayn + b), n ∈ N. (1.3.1.2)
(ii) Par la m´ethode d’Euler implicite (voir [3]), l’int´egrale
tn+1
tn
−ay(s)+b ds est approch´ee par la forme
suivante
tn+1
tn
− ay(s) + b ds h × − ay(tn+1) + b .
D’o`u
yn+1 = yn + h(−ayn+1 + b), n ∈ N. (1.3.1.3)
6
7. (iii) Par la m´ethode de Simpson (voir [4]), l’int´egrale
tn+1
tn
− ay(s) + b ds est approch´ee sous la forme
suivante
tn+1
tn
− ay(s) + b ds
h
6
× − ay(tn) + b + 4(−ay(
tn + tn+1
2
) + b) + − ay(tn+1) + b .
Si on pose
tn + tn+1
2
= tn+ 1
2
, alors
tn+1
tn
− ay(s) + b ds
h
6
× − ayn + b + 4(−ayn+ 1
2
+ b) + − ayn+1 + b .
D’o`u
yn+1 = yn +
h
6
× − ayn + b + 4 − ayn+ 1
2
+ b + − ayn+1 + b . (1.3.1.4)
(iv) Par la m´ethode de rectangle au milieu (voir [5]), l’int´egrale
tn+1
tn
− ay(s) + b ds est ´estim´ee par
tn+1
tn
− ay(s) + b ds h × − ayn+ 1
2
+ b .
D’o`u
yn+1 = yn + h × − ayn+ 1
2
+ b . (1.3.1.5)
Maintenant, puisque yn+ 1
2
= yn +
h
2
(−ayn + b) (voir (i)), alors, par (ii) on a
yn+ 1
2
= yn +
h
2
− ayn+ 1
2
+ b
= yn +
h
2
−a yn +
h
2
(−ayn + b + b .
D’o`u
4 − ayn+ 1
2
+ b = 2 − ayn+ 1
2
+ b + 2 − ayn+ 1
2
+ b
= 2 − a yn +
h
2
(−ayn + b) + b + 2 − a yn +
h
2
−a yn +
h
2
(−ayn + b) + b + b
De plus, par (1.3.1.5), on obtient
yn+1 = yn + h × − a(yn +
h
2
−a yn +
h
2
(−ayn + b) + b ) + b .
D’o`u
−ayn+1 + b = −a{yn + h × − a(yn +
h
2
−a yn +
h
2
(−ayn + b) + b ) + b } + b.
Finalement, d’apr´es l’´equation (1.3.1.4), on trouve
yn+1 = yn +
h
6
× − ayn + b +
h
6
× 2 − a yn +
h
2
(−ayn + b) + b
+
h
6
× 2 − a yn +
h
2
−a yn +
h
2
(−ayn + b) + b + b
+
h
6
× − ayn+1 + b
= yn +
h
6
× − ayn + b + 2 − a yn +
h
2
(−ayn + b) + b
+2 − a yn +
h
2
−a yn +
h
2
(−ayn + b) + b + b
+ − a{yn + h × − a(yn +
h
2
−a yn +
h
2
(−ayn + b) + b ) + b } + b
= yn + h
6 × k1 + 2k2 + 2k3 + k4
7
8. o`u
k1 = −ayn + b
k2 = k1 − ah
2 k1
k3 = k1 − ah
2 k2
k4 = k1 − ahk3
On obtient la relation explicite de Runge Kutta d’ordre 4 :
yn+1 = yn +
h
6
× k1 + 2k2 + 2k3 + k4 .
1.3.2 Exemple
Soit le probl`eme de Cauchy suivant
y (t) = −2y(t) + 0.5, t ≥ t0
y(0) = 3
On a (t0, y0) = (0, 3) et choisissons le pas h = 0.1.
— Premi`ere it´eration
k1 = −ay0 + b = −2 × 3 + 0.5 = −5.5,
k2 = k1 − ah
2 k1 = −4.95,
k3 = k1 − ah
2 k2 = −5.005,
k4 = k1 − ahk3 = −4.499.
D’o`u y1 = y0 + h
6 (k1 + 2k2 + 2k3 + k4) = 2.501516.
— Deuxi`eme it´eration
k1 = −ay1 + b = −2 × 2.501516 + 0.5 = −4.503032
k2 = k1 − ah
2 k1 = −4.0527288
k3 = k1 − ah
2 k2 = −4.09775912
k4 = k1 − ahk3 = −3.683480176
D’o`u : y2 = y1 + h
6 (k1 + 2k2 + 2k3 + k4) = 2.0933912.
Par la mˆeme fa¸con on calcule les autres solutions num´eriques jusqu’`a l’it´eration n.
8
9. 1.3.3 Erreurs
La m´ethode de Runge Kutta d’ordre 4 est une m´ethode num´erique ´evolue pour minimiser l’erreur commise
au sein de la r´esolution num´erique des ´equations diff´erentielles lin´eaires. L’erreur associ´e `a chaque it´eration de
la solution est donn´ee sous la forme suivante
ei = |yexact(ti) − yRK4(ti)|
avec yexact(ti) est la solution obtenue par la r´esolution analytique et yRK4(ti) est la solution obtenue par la
m´ethode de Runge Kutta
Exemple 1.3.1. On consid`ere l’exemple pr´ec´edent
y (t) = −2y(t) + 0.5, t ≥ t0
y(0) = 3
(1.3.3.1)
R´esolution analytique : par la m´ethode de la variation de la constante (voir (1.2.0.1)), la solution du probl`eme
s’´ecrite sous la forme
y(t) = 3e−2t
+
0.5
2
(1 − e−2t
)
= 0.25 + 2.75e−2t
R´esolution num´erique : (voir 1.3.2)
La solution du probl`eme de Cauchy (1.3.3.1) en 10 it´eration avec l’erreur commise est le suivant
ti yexact(ti) yRK4(ti) Erreur
0 3 3 0
0.1 2.50150957096445 2.501516666666667 7.095702216908251E-6
0.2 2.093380126598008 2.0933917455555555 1.1618957547643305E-5
0.3 1.7592319992585725 1.7592462684778518 1.4269219279272605E-5
0.4 1.4856546513223594 1.4856702282117666 1.5576889407231675E-5
0.5 1.2616684632214663 1.2616844048445803 1.594162311402414E-5
0.6 1.0782840827585558 1.0782997450597527 1.566230119687262E-5
0.7 0.9281416508394179 0.9281566112719215 1.4960432503596799E-5
0.8 0.8052154244853025 0.8052294228686978 1.399838339533055E-5
0.9 0.7045719426093631 0.7045848361500319 1.2893540668801329E-5
1 0.622172028900685 0.6221837581839027 1.1729283217687403E-5
9
10. Chapitre 2
Application sous Java
2.1 Introduction
Cette partie constitue une repr´esentation de notre application java cr´eer pr´ecisement pour donner une ap-
proximation sur la r´esolution num´eriques des ´equations diff´erentielles lin´eaires du premier ordre `a coefficients
constantes sous la forme de probl`eme de Cauchy (1.1.0.1). Cette solution est calcul´ee, en appliquant la m´ethode
de Runge Kutte d’ordre 4. Nous commen¸cons ce chapitre par expliquer l’interaction entre l’utilisateur et le
syst`eme.
2.2 Diagramme de s´equence
Ce diagramme permet de d´ecrire l’interaction entre l’utilisateur et le syst`eme. Cette interaction est aussi une
interaction entre utilisateur et interface de l’application. Pour la r´esolution des ´equations diff´erentielles lin´eaires
sous forme du prob`eme de Cauchy
y (t) = −ay(t) + b, t ≥ 0,
y(t0) = y0.
apr`es l’entr´ee des valeurs de a, b, t0, n et h.
O`u a, b, t0 sont des r´eels , n est le nombre d’it´eration et h est le pas de la m´ethode num´erique.
Figure 2.1 – Diagramme de s´equence
10
11. 2.3 Interface de l’application
Lors de l’ex´ecution de notre application informatique, d´evelopp´ee en java, la fenˆetre de d´emarrage suivante
s’affiche
Figure 2.2 – La fenˆetre de d´emarrage
Cette interface est une interface d’introduction `a l’application qui contient un seul bouton qu’on appell´e
”Ouvrir”. Si on clique sur ce bouton, le code (voir l’annexe(A-1)) s’ex´ecute est lance la fenˆetre suivante
Figure 2.3 – Fenˆetre d’insertion 1
Cette fenˆetre contient la forme du probl`eme de Cauchy `a r´esoudre, quatres cases pour ins´erer les coefficients
a, b, t0 et y0 du probl`eme et les deux boutons suivants
1. ”Effacer” : pour effacer le contenu des quatres cases.
11
12. 2. ”Suivant” : pour passer `a la fenˆetre suivante.
On suppose que l’utilisateur a saisie les r´eelles a = −1, b = 2, t0 = 0 et y0 = 3. Quand il clique sur le bouton
”Suivant”, un code dans l’annexe (A-7) s’ex´ecute et g´en´ere la fenˆetre suivante
Figure 2.4 – Fenˆetre d’insertion 2
qui affiche en haut le probl`eme ins´er´e par l’utilisateur dans la fenˆetre pr´ec´edente suivie de deux cases : h
pour ins´erer le pas et n pour le nombre d’it´erations. La fenˆetre contient en dessous trois boutons :
1. ”Retour” : pour revenir `a la fenˆetre pr´ec´edente.
2. ”Effacer” : pour effacer le contenu des deux cases.
3. ”R´esoudre” : pour passer `a la fenˆetre suivante de r´esultat.
On suppose que l’utilisateur a saisie le r´eel h = 0.2 et l’entier n = 10. Lorsqu’il clique sur le bouton ”R´esoudre”,
un code similaire `a celui dans l’annexe(A-7) s’ex´ecute et donne la fenˆetre de r´esultat suivante
Figure 2.5 – Fenˆetre de r´esultat
12
13. Cette fenˆetre contient le probl`eme de Cauchy ins´er´e par l’utilisateur avec le nombre d’it´erations et le pas,
suivie d’un tableau de Solutions par la m´ethode de Runge-Kutta d’ordre 4 et Solutions exactes par la m´ethode
de variation de la constante(voir 1.2.0.1) avec l’erreur commis(voir 1.3.3).
2.4 Les cas d’exceptions
Comme tout application informatique, notre application traite les erreurs de saisie selon les cas suivantes :
• Lorsque l’utilisateur laisse une case vide et clique sur le bouton ”Suivant” dans la fenˆetre d’insertion 1
(Figure 2.3) ou ”R´esoudre” dans la fenˆetre d’insertion 2 (Figure 2.3) , l’application affiche une boˆıte de
message `a l’attention de l’utilisateur selon les cases vides comme dans la figure suivante
• Lorsque l’utilisateur saisie une chaˆıne de caract`eres quelconque, l’application affiche une boˆıte de message
`a l’attention de l’utilisateur selon la case qui a ´et´e remplie, comme dans la figure suivante
13
14. • Lorsque l’utilisateur saisie un pas h n´egatif ou null dans la fenˆetre d’insertion 2 (Figure 2.3), l’applications
affiche une boˆıte de message `a l’attention de l’utilisateur pour saisie un pas strictement positif comme
dans la figure suivante
2.5 Exemple de test
Parmis les ´etapes essentielles dans le cycle de vie d’un logiciel on trouve l’´etape des tests unitaires qui consiste
`a v´erifier le fonctionnement correct de chaque sous-ensemble de l’application. Ainsi notre application a ´et´e test´ee
sur diff´erents exemples.
Exemple 2.5.1. Consid´erons le probl`eme de Cauchy suivant :
y (t) = 3y(t) + 1, t ≥ 0,
y(0) = 2.
avec le pas h = 0.1 et 10 it´erations.
14
19. Conclusion
Dans ce projet, nous nous sommes concentr´es sur la r´esolution des ´equations diff´erentielles lin´eaires du
premier ordre par la m´ethode de Runge-Kutta d’ordre 4.
Ensuite, nous avons d´evelopp´e une application sous java qui permet de r´esoudre les ´equations diff´erentielles
lin´eaires de la forme y (t) = ay(t) + b, o`u a et b sont des coefficients r´eels.
Enfin, ce projet nous a permis de travailler en groupe et d’appliquer la th´eorique math´ematique en program-
mation informatique.
19
20. Bibliographie
[1] K. Arbenz, A. Wohlhauser , Analyse num´erique, Lausanne 1996
[2] D. Fredon, M. Maumy-Bertrand, F. Bertrand , Math´ematiques. Analyse en 30 fiches, Paris 2009
[3] http ://femto-physique.fr/omp/runge kutta.php
[4] A. Quarteroni, R. Sacco, F. Saleri , M´ethodes num´eriques. Algorithmes,analyse et applications,
Springer-Verlag Italia, F´evrier 2007
[5] M. Granger , Equations diff´erentielles. M´ethodes num´eriques `a un pas, Janvier 2010
20