Vous êtes sur la page 1sur 20

Département de Mathématique, Informatique et Gestion

Filière Sciences Mathématiques et Informatiques


Numéros d’ordre :.....

Résolution d’équations différentielles linéaires du premier ordre


par la méthode de Runge Kutta d’ordre 4 et application

Projet tutoré préparé 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é polydisciplinaire de Ouarzazate


Prof. R. Bouyouli : Professeur la faculté polydisciplinaire de Ouarzazate

Année Universitaire : 2016-2017


Table des matières

Remerciements 3

Introduction générale 4

1 Équations différentielles linéaires 5


1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Exemples et motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Résolution analytique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Méthode de Runge Kutta d’ordre 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.3 Erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Application sous Java 10


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Diagramme de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Interface de l’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Les cas d’exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Exemple de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Annexes 16

Conclusion 19

Bibliographie 20

2
Remerciements

Nous tenons à remercier notre encadrant Monsieur Brahim El Habil Professeur à la faculté polydisciplinaire
de Ouarzazate, pour avoir accepté d’encadrer ce projet tutoré, pour son soutien, ses encouragements et ses
explications.
Nous remercions également Mademoiselle R’kia Bouyouli Professeur à la faculté polydisciplinaire de Ouar-
zazate, pour avoir accepté d’être examinatrice de notre travail.
Enfin , Nous remercions également les professeurs et les personnels de la faculté polydisciplinaire de Ouar-
zazate pour leur collaboration au long de la période de formation et toute personne ayant contribué, de près ou
de loin, à la réalisation de ce travail.

3
Introduction générale

Le présent document constitue une synthèse de notre travail réalisé dans le cadre du projet tutoré de
fin de formation de la licence sciences mathématiques et informatique (SMI). Ce projet à pour objectif est de
présenter une étude analytique de la résolution des équations différentielle linéaires du premier ordre à coefficients
constantes et une résolution numérique par la méthode de Runge-Kutta dordre 4.
Une grande variété de problèmes relatifs à la mécanique, l’astronomie, la physique, mathématique, etc...
conduisent à déterminer une fonction inconnue, par la connaissance d’une équation reliant ses dérivées successives
jusqu’à un certain ordre. Ces équations sont appelées les équations différentielles. Leur étude constitue l’une des
branches des mathématiques les plus fameux.
Ces équations différentielles en générale sont inventées par Newton (1642-1727). C’est le début de la physique
moderne et l’utilisation de l’analyse pour résoudre la loi de la gravitation universelle conduisant à l’ellipsité des
orbites des planètes dans le système solaire. Leibniz (1646-1716) érige 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éthodes
permettant la résolution des équations linéaires.
Plus tard, Liouville (1790-1882) montrera l’impossibilité de résoudre certaines équations différentielles d’ordre
plus élevé.
De nos jours beaucoup des mathématiciens, à commencer par Poincaré (1854-1912), ont montré que les
solutions d’équations différentielles peuvent être très instables, ces équations peuvent conduire à des situations
chaotiques à cause d’une grande sensibilité aux conditions initiales.
Parmis les méthodes numériques d’aproximations des solutions des équations différentielles les plus fameux
et les plus éfficasses on trouve la méthode de Runge-Kutta (voir [1]). Elles sont nommées ainsi en l’honneur des
mathématiciens Carl Runge et Martin Wilhem Kutta lesquels élaborèrent cette méthode en 1901. Ces méthodes
reposent sur le principe de l’itération avec une condition initiale, c’est à dire qu’une première estimation de la
solution est utilisée pour calculer une seconde et ainsi de suite.
Ainsi notre rapport écrit en LATEX contient deux chapitre. Le premier chapitre est consacré à la résolution
analytique et numérique des équations différentielles du premier ordre sous la forme du problème de Cauchy
suivant  0
y (t) = ay(t) + b, t ≥ 0,
y(t0 ) = y0 ,
Où a, b et y0 sont des éléments d’un corps K. Dans le deuxième chapitre nous avons développé une application
sous le language de programation orienté objet Java pour résoudre tout problème de Cauchy.

4
Chapitre 1

Équations différentielles linéaires

1.1 Introduction
Le long de ce chapitre, on s’intéressent aux équations différentielles linéaires d’ordre 1 de la forme

a0 y 0 (t) + a1 y(t) = b0 , t∈I

définies sur un intervalle de la forme I = [t0 , +∞[. Si a0 = 1, alors cette équation est dite une équation
différentielle linéaire d’ordre 1 normalisée.
Sinon on peut se ramener à une équation différentielle linéaire d’ordre 1 normalisée on divisent par a0 . D’où
l’équation devient
y 0 (t) + ay(t) = b, t ∈ I,
a1 b0
où a = et b = . Pour ça résolution, cette équation est muni d’un condition unitiale y0 , qu’on suppose
a0 a0
égale à y(t0 ). Ce ci donne le problème de Cauchy suivant
 0
y (t) = −ay(t) + b, t ≥ t0 ,
(1.1.0.1)
y(t0 ) = y0 ,

Avec (a, b, y0 ) ∈ R3 . On commence ce chapitre, dans un premier temps, par donner deux exemples théorique des
équation différentielles linéaire d’ordre 1. En suite, on donnera la solution analytique du problème de Cauchy
dans le cas générale. En fin, on s’interessent à la solution numérique de (1.1.0.1). En particulier, la solution par
la méthode de Rung Kutta.

1.1.1 Exemples et motivations


Les équations différentielles linéaires sont aujourd’hui extrêmement présents dans de nombreux domaines
scientifiques telsque le domaine de la physique, le domaine finançier, la biologie....
Dans cette section, on donne les deux exemples suivant
Exemple 1.1.1. (Circuit électrique) On considère le circuit électrique RC décrit par la figure suivante

Où UC et UR représent réspectivement la tension du courant électrique aux bornes du condensateur C et de la


résistance R sous une tension constante E.
D’aprés la loi d’additivité des tensions (ou loi des mailles), E = UR + UC et d’après la loi d’Ohm UR = Ri,
dq d(C.UC ) dUC
où l’intensité i = = =C , on trouve l’équation différetielle du circuit RC déterminer par la
dt dt dt
forme suivante
dUC dUC (t) 1 E
E = RC + UC ⇔ + UC (t) = .
dt dt RC RC

5
Exemple 1.1.2. (Solde d’un compte bancaire) Tous les ans, un compte bancaire est crédité d’intérêts 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ée t vérifierait
5
y0 = y − 50.
100

1.2 Résolution analytique


Dans cette sous section, on considère le problème de Cauchy (1.1.0.1). Analytiquement, la solution de ce
système est donnée par la méthode de la variation de la constante (voir [2]), sous la forme suivante

b 
y(t) = y0 e−a(t−t0 ) + 1 − e−a(t−t0 ) , t ≥ t0 . (1.2.0.1)
a
Exemple 1.2.1. On considère le problème de cauchy suivant
 0
y (t) = −2y(t) + 6, t ≥ 0,
y(0) = −1.

Par la méthode de variation de la constante (voir (1.2.0.1)), la solution est donnée par

y(t) = −e2t − 3(1 − e2t ), t≥0


= 2e2t − 3.

Dans la suite, on étudiera la solution numérique du probème de Cauchy (1.1.0.1).

1.3 Méthode de Runge Kutta d’ordre 4


Dans cette partie, on s’intéressent à la résolution numérique du système (1.1.0.1), où y(t) est la fonction
recherchée et y0 est la valeur initial. En particulier, la résolution par la méthode de Runge Kutta d’ordre 4 qui
présente un outil d’une grande précision que d’autre méthode telsque les méthodes d’Euler, Heun et Cranck
Nicolson (voir [4] et [5]). On commence ce paragraphe par déterminer explicitement le principe de cette méthode.

1.3.1 Principe
Le principe de la méthode de Runge Kutta est de choisir un pas h = tn+1 − tn en partant de la valeur initiale
y0 = y(t0 ), on intégre l’équation différentielle y 0 (t) = −ay(t) + b entre tn et tn+1 , cela donne la forme suivante
Z tn+1  
y(tn+1 ) − y(tn ) = − ay(s) + b ds. (1.3.1.1)
tn

On commence par estimer numériquement l’integrale dans l’équation (1.3.1.1).


Z tn+1  
(i) Par la méthode d’Euler explicite (voir [3]), l’intégrale − ay(s) + b ds est approchée comme suite
tn
Z tn+1    
− ay(s) + b ds ' h × − ay(tn ) + b .
tn

Si on pose y(tn ) = yn , pour tout n ∈ Z, alors l’équation (1.3.1.1) est approchée sous la forme suivante

yn+1 = yn + h(−ayn + b), n ∈ N. (1.3.1.2)


Z tn+1  
(ii) Par la méthode d’Euler implicite (voir [3]), l’intégrale − ay(s) + b ds est approchée par la forme
tn
suivante Z tn+1    
− ay(s) + b ds ' h × − ay(tn+1 ) + b .
tn

D’où
yn+1 = yn + h(−ayn+1 + b), n ∈ N. (1.3.1.3)

6
Z tn+1  
(iii) Par la méthode de Simpson (voir [4]), l’intégrale − ay(s) + b ds est approchée sous la forme
tn
suivante
Z tn+1   
 h  tn + tn+1 
− ay(s) + b ds ' × − ay(tn ) + b + 4(−ay( ) + b) + − ay(tn+1 ) + b .
tn 6 2
tn + tn+1
Si on pose = tn+ 21 , alors
2
Z tn+1   h h   i
− ay(s) + b ds ' × − ayn + b + 4(−ayn+ 12 + b) + − ayn+1 + b .
tn 6
D’où
h h     i
×
yn+1 = yn + − ayn + b + 4 − ayn+ 21 + b + − ayn+1 + b . (1.3.1.4)
6
Z tn+1  
(iv) Par la méthode de rectangle au milieu (voir [5]), l’intégrale − ay(s) + b ds est éstimée par
tn
Z tn+1    
− ay(s) + b ds ' h × − ayn+ 12 + b .
tn

D’où  
yn+1 = yn + h × − ayn+ 12 + b . (1.3.1.5)

h
Maintenant, puisque yn+ 12 = yn + (−ayn + b) (voir (i)), alors, par (ii) on a
2
h 
yn+ 12 = yn + − ayn+ 12 + b
2  
h h 
= yn + −a yn + (−ayn + b + b .
2 2
D’où
     
4 − ayn+ 12 + b = 2 − ayn+ 21 + b + 2 − ayn+ 12 + b
  
 h    h h   
= 2 − a yn + (−ayn + b) + b + 2 − a yn + −a yn + (−ayn + b) + b + b
2 2 2

De plus, par (1.3.1.5), on obtient


  
 h h  
yn+1 = yn + h × − a(yn + −a yn + (−ayn + b) + b ) + b .
2 2
D’où   
 h h  
−ayn+1 + b = −a{yn + h × − a(yn + −a yn + (−ayn + b) + b ) + b } + b.
2 2
Finalement, d’aprés l’équation (1.3.1.4), on trouve
h   h  h  
yn+1 = yn + × − ayn + b + × 2 − a yn + (−ayn + b) + b
6   6 2 
h h h  
+ × 2 − a yn + −a yn + (−ayn + b) + b + b
6 2 2
h  
+ × − ayn+1 + b
6 "
h    h  
= yn + × − ayn + b + 2 − a yn + (−ayn + b) + b
6 2
  
 h h   
+2 − a yn + −a yn + (−ayn + b) + b + b
2 2 #
  
  h h   
+ − a{yn + h × − a(yn + −a yn + (−ayn + b) + b ) + b } + b
2 2
h i
h
= yn + 6 × k1 + 2k2 + 2k3 + k4

7
où 

 k1 = −ayn + b




 k2 = k1 − a h2 k1

k3 = k1 − a h2 k2








k4 = k1 − ahk3

On obtient la relation explicite de Runge Kutta d’ordre 4 :


h h i
yn+1 = yn + × k1 + 2k2 + 2k3 + k4 .
6

1.3.2 Exemple
Soit le problème de Cauchy suivant

y 0 (t) = −2y(t) + 0.5,



t ≥ t0
y(0) = 3

On a (t0 , y0 ) = (0, 3) et choisissons le pas h = 0.1.


— Première itération
k1 = −ay0 + b = −2 × 3 + 0.5 = −5.5,

k2 = k1 − a h2 k1 = −4.95,

k3 = k1 − a h2 k2 = −5.005,

k4 = k1 − ahk3 = −4.499.
D’où y1 = y0 + h6 (k1 + 2k2 + 2k3 + k4 ) = 2.501516.
— Deuxième itération
k1 = −ay1 + b = −2 × 2.501516 + 0.5 = −4.503032

k2 = k1 − a h2 k1 = −4.0527288

k3 = k1 − a h2 k2 = −4.09775912

k4 = k1 − ahk3 = −3.683480176
D’où : y2 = y1 + h6 (k1 + 2k2 + 2k3 + k4 ) = 2.0933912.
Par la même façon on calcule les autres solutions numériques jusqu’à l’itération n.

8
1.3.3 Erreurs
La méthode de Runge Kutta d’ordre 4 est une méthode numérique évolue pour minimiser l’erreur commise
au sein de la résolution numérique des équations différentielles linéaires. L’erreur associé à chaque itération de
la solution est donnée sous la forme suivante

ei = |yexact (ti ) − yRK4 (ti )|

avec yexact (ti ) est la solution obtenue par la résolution analytique et yRK4 (ti ) est la solution obtenue par la
méthode de Runge Kutta
Exemple 1.3.1. On considère l’exemple précédent
 0
y (t) = −2y(t) + 0.5, t ≥ t0
(1.3.3.1)
y(0) = 3

Résolution analytique : par la méthode de la variation de la constante (voir (1.2.0.1)), la solution du problème
s’écrite sous la forme
0.5
y(t) = 3e−2t + (1 − e−2t )
2 −2t
= 0.25 + 2.75e
Résolution numérique : (voir 1.3.2)
La solution du problème de Cauchy (1.3.3.1) en 10 itération 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
Chapitre 2

Application sous Java

2.1 Introduction
Cette partie constitue une représentation de notre application java créer précisement pour donner une ap-
proximation sur la résolution numériques des équations différentielles linéaires du premier ordre à coefficients
constantes sous la forme de problème de Cauchy (1.1.0.1). Cette solution est calculée, en appliquant la méthode
de Runge Kutte d’ordre 4. Nous commençons ce chapitre par expliquer l’interaction entre l’utilisateur et le
système.

2.2 Diagramme de séquence


Ce diagramme permet de décrire l’interaction entre l’utilisateur et le système. Cette interaction est aussi une
interaction entre utilisateur et interface de l’application. Pour la résolution des équations différentielles linéaires
sous forme du probème de Cauchy
 0
y (t) = −ay(t) + b, t ≥ 0,
y(t0 ) = y0 .

après l’entrée des valeurs de a, b, t0 , n et h.


Où a, b, t0 sont des réels , n est le nombre d’itération et h est le pas de la méthode numérique.

Figure 2.1 – Diagramme de séquence

10
2.3 Interface de l’application
Lors de l’exécution de notre application informatique, développée en java, la fenêtre de démarrage suivante
s’affiche

Figure 2.2 – La fenêtre de démarrage

Cette interface est une interface d’introduction à l’application qui contient un seul bouton qu’on appellé
”Ouvrir”. Si on clique sur ce bouton, le code (voir l’annexe(A-1)) s’exécute est lance la fenêtre suivante

Figure 2.3 – Fenêtre d’insertion 1

Cette fenêtre contient la forme du problème de Cauchy à résoudre, quatres cases pour insérer les coefficients
a, b, t0 et y0 du problème et les deux boutons suivants
1. ”Effacer” : pour effacer le contenu des quatres cases.

11
2. ”Suivant” : pour passer à la fenêtre suivante.
On suppose que l’utilisateur a saisie les réelles 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écute et génére la fenêtre suivante

Figure 2.4 – Fenêtre d’insertion 2

qui affiche en haut le problème inséré par l’utilisateur dans la fenêtre précédente suivie de deux cases : h
pour insérer le pas et n pour le nombre d’itérations. La fenêtre contient en dessous trois boutons :
1. ”Retour” : pour revenir à la fenêtre précédente.
2. ”Effacer” : pour effacer le contenu des deux cases.
3. ”Résoudre” : pour passer à la fenêtre suivante de résultat.
On suppose que l’utilisateur a saisie le réel h = 0.2 et l’entier n = 10. Lorsqu’il clique sur le bouton ”Résoudre”,
un code similaire à celui dans l’annexe(A-7) s’exécute et donne la fenêtre de résultat suivante

Figure 2.5 – Fenêtre de résultat

12
Cette fenêtre contient le problème de Cauchy inséré par l’utilisateur avec le nombre d’itérations et le pas,
suivie d’un tableau de Solutions par la méthode de Runge-Kutta d’ordre 4 et Solutions exactes par la méthode
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être d’insertion 1
(Figure 2.3) ou ”Résoudre” dans la fenêtre d’insertion 2 (Figure 2.3) , l’application affiche une boı̂te de
message à l’attention de l’utilisateur selon les cases vides comme dans la figure suivante

• Lorsque l’utilisateur saisie une chaı̂ne de caractères quelconque, l’application affiche une boı̂te de message
à l’attention de l’utilisateur selon la case qui a été remplie, comme dans la figure suivante

13
• Lorsque l’utilisateur saisie un pas h négatif ou null dans la fenêtre d’insertion 2 (Figure 2.3), l’applications
affiche une boı̂te de message à l’attention de l’utilisateur pour saisie un pas strictement positif comme
dans la figure suivante

2.5 Exemple de test


Parmis les étapes essentielles dans le cycle de vie d’un logiciel on trouve l’étape des tests unitaires qui consiste
à vérifier le fonctionnement correct de chaque sous-ensemble de l’application. Ainsi notre application a été testée
sur différents exemples.
Exemple 2.5.1. Considérons le problème de Cauchy suivant :
 0
y (t) = 3y(t) + 1, t ≥ 0,
y(0) = 2.

avec le pas h = 0.1 et 10 itérations.

14
La solution est s’affiche comme suite

15
Annexes

A-1. Bouton Ouvrir

A-2. Méthode de Runge-Kutta d’ordre 4

A-3. Méthode de variation de la constante

16
A-4. Affichage de résultat dans un tableau

A-5. Test de nombres fractionnaires

17
A-6. Fonction Round Value

A-7. Liaison entre deux fenêtres

18
Conclusion

Dans ce projet, nous nous sommes concentrés sur la résolution des équations différentielles linéaires du
premier ordre par la méthode de Runge-Kutta d’ordre 4.

Ensuite, nous avons développé une application sous java qui permet de résoudre les équations différentielles
linéaires de la forme y 0 (t) = ay(t) + b, où a et b sont des coefficients réels.

Enfin, ce projet nous a permis de travailler en groupe et d’appliquer la théorique mathématique en program-
mation informatique.

19
Bibliographie

[1] K. Arbenz, A. Wohlhauser , Analyse numérique, Lausanne 1996


[2] D. Fredon, M. Maumy-Bertrand, F. Bertrand , Mathématiques. Analyse en 30 fiches, Paris 2009
[3] http ://femto-physique.fr/omp/runge kutta.php
[4] A. Quarteroni, R. Sacco, F. Saleri , Méthodes numériques. Algorithmes,analyse et applications,
Springer-Verlag Italia, Février 2007
[5] M. Granger , Equations différentielles. Méthodes numériques à un pas, Janvier 2010

20

Vous aimerez peut-être aussi