Documente Academic
Documente Profesional
Documente Cultură
Méthode de résolution
des équations différentielles
ODE
BELAIDI
Introduction générale 01
Introduction 40
III-1 Méthode Adams–Bashforth–Moulton Method 40
III.2.Méthode de Hamming 44
III.3.Comparaison des méthodes (RK4 ; Hamming, ABM) 46
III.4 Méthode de Milne Simpson 51
III.5. Méthodes de Gear 52
III.5.1 Méthode de Gear à 2 pas, implicite, d'ordre 2 52
III.5.2 Méthode de Gear à 3 pas, implicite, d'ordre 3 52
III.5.3 Méthode de Gear à 4 pas, implicite, d'ordre 4 52
III.6 problème de la valeur marginale 52
III.6.1 Méthode de Tir 53
III.7 Méthode des différences finis (Finite Difference) 56
Bibliographie 61
Introduction
Introduction
Introduction
On regroupe sous le terme générique de « méthodes numériques », toutes les
techniques de calcul qui permettent de résoudre de manière exacte ou, le plus souvent, de
manière approchée un problème donné. Le concept de calcul est assez vaste et doit être pris au
sens large. Il peut s'agir de déterminer l'inconnue d'une équation, de calculer la valeur d'une
fonction en un point ou sur un intervalle, d'intégrer une fonction, d'inverser une matrice, etc.
Bien que la mise en équation d'un problème et sa résolution passent naturellement par
les Mathématiques, les problématiques sous-jacentes concernent des disciplines aussi variées
que la Physique, l'Astrophysique, la Biologie, la Médecine, l'Economie, etc. Il existe ainsi une
grande variété de problèmes possibles avec pour chacun d'eux, des méthodes très spécifiques.
De fait, le nombre total de méthodes numériques dont nous disposons à l'heure actuelle est
vraisemblablement gigantesque.
Un algorithme, pour être utile, doit satisfaire un certain nombre de conditions. Il doit être :
• Rapide : le nombre d’opérations de calcul pour arriver au résultat escompté doit être aussi
réduit que possible.
• Précis : l’algorithme doit savoir contenir les effets des erreurs qui sont inhérentes à tout
calcul numérique. Ces erreurs peuvent être dues à la modélisation, à la représentation sur
ordinateur ou encore à la troncature.
• Souple : l’algorithme doit être facilement transposable à des problèmes différents.
-1-
Chapitre I
Introduction
Les équations différentielles ordinaires (EDO) apparaissent très souvent dans la modélisation de
la physique et des sciences de l'ingénieur. Trouver la solution d'une EDO ou d'un système d'EDO
est ainsi un problème courant, souvent difficile ou impossible à résoudre de façon analytique. Il
est alors nécessaire de recourir à des méthodes numériques pour résoudre ces équations
différentielles.
I.I Définitions :
Équation d'un (premier ordre) de la forme y' = f (x, y) exprime le taux de changement de la
variable dépendante y en ce qui concerne un changement de la variable indépendante X comme
fonction f (x, y) de la variable indépendante X et de la variable dépendante Y.
Une solution de l'équation y' ; = f (x, y) est une fonction, que par abus de langue nous dénotons
comme y (x), tel que y' ; (x) = f (x, y (x)).
Le théorème d'existence et d'unicité des équations ordinaires du premier ordre déclare que si la
fonction f est continue et remplit la condition de Lipschitz sur une certaine région fermée U×V,
avec x dans U et y dans V, contenant le point intérieur (x0, y0), alors là existe une solution
unique y (x) et un sous-intervalle U0 contenant x0 et contenu dans U tels que y (x0) = y0 et (x, y
(x)) est contenu dans U×V pour x dans U0.
La condition que y (x0) = y0 s'appelle l'état initial. Si la fonction f est différentiable dans la
région fermée, alors la condition de Lipschitz est automatiquement satisfaite. En outre, si la
fonction f est Cn, c.-à-d. f a les dérivés continus jusqu'à la commande n, pour n > 0, dans la
région fermée, alors la solution est Cn+1 dans un voisinage de x0.
Notez que si l'état de Lipschitz n'est pas satisfaisant, alors il n'existe pas une solution ou il peut
exister plus d'une solution. Si la fonction f (x, y) est indépendant de la variable dépendante y,
alors la solution est y (x) = y0 + ∫ x0 f (t), où l'intégrale peut être rapprochée par une des
techniques numériques dans l'intégration numérique de section.
Si la fonction f (x, y) est indépendant de la variable indépendante X, l'équation y' ; =f (y) serait
une équation autonome. Les méthodes données ci-dessous s'appliquent aux équations autonomes
et non autonomes mais dans le cas autonome, l'utilisateur peut vouloir éditer les dossiers et
supprimer des références à la variable indépendante partout où la variable indépendante est mise
en référence par le F.
La variable dépendante y peut être une quantité y de vecteur dans ce cas nous avons un système
des équations du premier ordre. Le théorème d'existence et d'unicité indiqué ci-dessus généralise
immédiatement pour inclure la situation dans laquelle y est un vecteur dimensionnel de n. Une
équation y de nième ordre (n) = f (x, y, y' ; , y (2),…, y (n-1)) peut être transformé à un système
des équations du premier ordre en définissant le z= de quantité de vecteur (z1,…, Zn) par z1=y,
z2=y' ; , z3=y (2),…, zn=y (n-1), puis z' ; 1=z2, z' ; 2=z3,…, z' ; n-1=zn, et z' ; n=f (x, z1,…, Zn).
Tandis qu'une équation du second degré peut être transformé à un système de premier ordre
comme décrit ci-dessus mais parce que les équations du second degré sont omniprésentes dans
des méthodes spéciales de physique et de technologie ont été développés pour les résoudre.
Soit une fonction numérique notée y(x) définie sur un intervalle de R et de classe Cp
(continûment dérivable d’ordre p). On appelle équation différentielle d’ordre p une équation de la
forme
F(x, y, y′, y′′, . . . y(p)) = 0 (1.1)
Ou y′ représente la dérivée première par rapport x, y′′ la dérivée seconde, etc... Plus
généralement, on appelle système différentiel un ensemble d’équations différentielles reliant une
variable x et un certain nombre de fonction yi(x) ainsi que leurs dérivées.
L’ordre du système différentiel correspond `a l’ordre de dérivation le plus élevé parmi l’ensemble
des fonctions.
On appelle solution de l’équation différentielle (1.1) toute fonction y(x) de classe Cp qui vérifie
l’équation (1.1).
Attention : un problème bien posé ne signifie pas qu'il peut se résoudre numériquement !
Pour obtenir une approximation numérique de la solution y(x) sur l'intervalle [a; b], nous allons
estimer la valeur de cette fonction en un nombre fini de points xi, pour i = 0; 1; :::; n, constituants
les noeuds du maillage. La solution numérique discrète obtenue aux points xi est notée :
yi = y (xi).
L'écart entre deux abscisses, noté h, est appelé pas de discrétisation. Ce pas, dans les méthodes
les plus simples, est constant, mais il peut être judicieux de travailler avec un pas variable
hi = xi – xi-1.
A ces propriétés, il convient d'ajouter la notion de précision ainsi que des aspects informatiques
comme la facilité de mise en oeuvre, les coûts CPU et mémoire.
C'est la propriété qui assure que la différence entre la solution numérique obtenue et la solution
exacte des équations discrétisées reste bornée. Le stabilité indique si l'erreur augmente ou non au
cours du calcul.
Une méthode peut être stable sous condition (elle sera dite conditionnellement stable) ou toujours
stable (elle sera dite inconditionnellement stable).
Une méthode est convergente si, lorsque le pas de discrétisation tend vers 0, la solution
numérique tend vers la solution exacte de l'équation continue.
Les principales méthodes de résolution numérique des EDO sont séparées en deux grands
types :
Pour ces méthodes, le calcul de la valeur discrète yn+1 au noeud tn+1 fait intervenir la valeur yn
obtenue à l'abscisse précédente. Les principales méthodes sont :
Pour ces méthodes, le calcul de la valeur discrète yn+1 au noeud tn+1 fait intervenir plusieurs
valeurs yn; yn-1; yn-2;…. obtenues aux abscisses précédentes. Les principales méthodes sont :
Introduction
Le but de ce chapitre est de montrer comment programmer facilement et efficacement les
schémas classiques de résolution numérique des équations différentielles à l'aide de Matlab. On
met en évidence leurs ordres de convergence respectifs sur un exemple simple.
y 0 donné
y n 1 y n ( xn , yn , h)
y 0 donné
y n 1 y n (x n , yn , yn 1 , h)
L'obtention de la solution à chaque abscisse nécessite la résolution d'une équation.
Ces méthodes sont obtenues en intégrant l'équation différentielle et en utilisant des formules
d'intégration numérique pour le second membre. L'ordre du schéma est égal au degré du
polynôme pour lequel l'intégration est exacte + 1.
Résultats théoriques :
1) Si la fonction est lipchitzienne par rapport à la deuxième variable alors les méthodes
explicites sont stables.
2) Les méthodes implicites sont toujours stables.
3) Les méthodes sont consistantes si x [a; b]; (x; y; 0) = (x; y).
Le point suivant est le point E de coordonnées (XE, YE), tel que XE = XM +h et tel que le point
E est sur la droite passant par M de pente F (XM, YM),
On itère le procédé en partant du point (X0, Y0) et en reprenant à chaque étape le point E comme
nouveau point M, autant de fois qu’il le faut pour que X décrive l’intervalle demandé. Voir la
figure II.1.
Quoique sa basse exactitude la garde d'être employée couramment pour résoudre des
odes, elle nous donne un indice au concept de base de la solution numérique pour une équation
simplement et clairement.
r r
y (t ) ( y0 )e at II.1.2
a a
Ce qui peut être obtenu par l'utilisation d’une méthode conventionnelle ou la technique de
transformé de Laplace. Cependant, une solution analytique exacte n’exister pas pour chaque
équation ; même si elle existe, il n'est pas facile de trouver même en utilisant un ordinateur
équipé des possibilités du calcul symbolique. C'est pourquoi nous devrions étudier les solutions
numériques aux équations différentielles.
Comment traduisons-nous l'équation en forme qui peut facilement être manipulée par ordinateur?
Tout d'abord, nous devons remplacer la dérivée y’(t)= dy/dt dans l'équation par un dérivé
numérique, où le pas « h » est déterminé sur les conditions d’exactitude et les contraintes de
calcul.
y (t h) y (t )
ay (t ) r
h
y (t h) (1 ah) y (t ) hr avec y(0) y 0 (II.1.3)
ENSET ORAN - 10 -
CHAPITRE II Méthode de résolution des ODE a un pas
Et résoudre cette équation différentielle point par point avec l'augmentation de t par h chaque
fois, de t = 0.
.........................................................................................
C'est un ordre numérique {y (KH)}, que nous appelons une solution numérique de l’équation
(II.1.1).
Pour être spécifiques, on laisse les paramètres et la valeur initiale d'Eq. (II.1.1) soit a = 1, r = 1, et
y0 = 0. Puis, la solution analytique (II.1.2) devient :
y (t ) 1 e at (II.1.5)
Nous faisons un programme de MATLAB « comparaison1.m », qui emploie la méthode d'Euler
pour l'équation (II.1.1),
Et la solution numérique (II.1.4) avec le pas h = 0.5 et h = 0.25 sont énumérée dans le tableau II.1
et représentée dans fig. II.2.
Tableau II.1 une solution numérique de l'équation (II.1.1) obtenue par la méthode de
l'Euler
ENSET ORAN - 11 -
CHAPITRE II Méthode de résolution des ODE a un pas
Les graphiques semblent nous indiquer qu'un petit pas « h » aide réduire l'erreur afin trouver la
solution numérique la plus près de la solution analytique (vraie). En fait, un pas « h » trop petite
fait non seulement le temps de calcul plus longtemps (proportionnel en tant que 1/h), mais a
également comme conséquence des erreurs un peu plus grandes dues à l'effet approximatif
accumulé. C'est pourquoi nous devrions rechercher d'autres méthodes pour diminuer les erreurs
plutôt que réduisons simplement le pas « h ».
La méthode d'Euler peut également être appliquée pour résoudre une équation de vecteur de
premier ordre
y ' (t ) f (t , y ) avec y(t 0 ) y0 (II.1.6)
Ce qui est équivalent à une équation scalaire d'ordre élevé. L'algorithme peut être décrit près :
ENSET ORAN - 12 -
CHAPITRE II Méthode de résolution des ODE a un pas
y 0 donné
y n 1 y n h ( xn , yn ) (II.1.8)
La méthode peut s'interpréter de plusieurs manières :
ENSET ORAN - 13 -
CHAPITRE II Méthode de résolution des ODE a un pas
y 0 donné
y n 1 y n hf(x n 1 , y n 1 ) (II.1.9)
ENSET ORAN - 14 -
CHAPITRE II Méthode de résolution des ODE a un pas
y0 donné
h
y * n1 yn f ( xn , y n )
2
h
yn1 yn f ( xn , yn ) f ( xn1 , y * n1 ) (II.2.1)
2
Géométriquement, la méthode consiste à remplacer dans la méthode d'Euler la pente de la
tangente en (xn; yn) par la valeur corrigée au milieu de l'intervalle [xn; xn+1].
y0 donné
h
y * n1 yn f ( xn , y n )
2
h
yn1 yn hf ( xn , y * n1 ) (II.2.3)
2
ENSET ORAN - 15 -
CHAPITRE II Méthode de résolution des ODE a un pas
(t 0 h/2, y 0 h/2f (t 0 , y 0 ))
t1 t 0 h
y1 y 0 h * y 0 h * f (t 0 h/2, y 0 h/2 * f (t 0 , y 0 ))
qui réalise une seule étape de cette méthode et qui permet de passer d'un point d'abscisse t0 au
point d'abscisse t0 + h, ces points étant situés sur le graphe de la solution approchée par cette
méthode.
La méthode d’Euler est une méthode numérique peu coûteuse numériquement, mais peu précise
quand on intègre sur plusieurs pas de temps. Des améliorations sont possibles des que l’on
considère des points intermédiaires, ce que nous allons voir ci-dessous en considérant des
méthodes dites de Runge-Kutta.
ENSET ORAN - 16 -
CHAPITRE II Méthode de résolution des ODE a un pas
Dans la figure II.3 on remarque que seule la méthode d’Euler Cauchy s’approche de la solution
exacte avec un pas de h= 0.2
Et pour la figure II.4 qui se trouve ci-dessous on voit bien que l’erreur est petite pour la méthode
d’Euler modifier par contre la méthode d’Euler explicite prend une très grande erreur.
erreur_Euler_explecite = 0.0192
erreur_Euleur_Modifier = 0.0091
erreur_euler_cauchy = 0.0013 c’es la plus petite valeur si on compare les trois erreur relative
ENSET ORAN - 17 -
CHAPITRE II Méthode de résolution des ODE a un pas
y0 donné
h
y n1 yn f ( xn , yn ) f ( xn1 , yn1 ) (II.4.1)
2
Elle est obtenue en utilisant la formule d'intégration numérique des trapèzes.
ENSET ORAN - 18 -
CHAPITRE II Méthode de résolution des ODE a un pas
Dans cette méthode (encore appelée méthode de Newton modifiée), on évalue l'incrément en
deux étapes. La première étape consiste à écrire :
xn 1
h
yn1 yn ( f ( yn , xn ) f ( yn1 , xn1 )) (II.5.2) (A)
2
Cette formule est une formule implicite en yn+1 et elle n'est généralement pas inversible. De ce
fait, on ne connaît pas encore yn+1 à ce stade. On trouve une valeur approchée de f (yn+1; xn+1)
grâce à la méthode d'Euler. C'est la seconde étape. On a
pn1 yn hf ( yn , xn )
yn1 (II.5.3)
La méthode de Heun met en jeu ce que l'on appelle classiquement un schéma de type
prédicateur/correcteur. Le schéma prédicateur donne une estimation de yn+1 qui permet de prédire
la valeur de la fonction en xn+1. Le schéma correcteur associé est donné par la relation (II.5.2).
Globalement, on a donc :
h
yn1 yn f ( yn , xn ) f ( yn hf ( yn , xn ), xn1 ) (II.5.4)
2
ENSET ORAN - 19 -
CHAPITRE II Méthode de résolution des ODE a un pas
II.6.Méthode de Runge-Kutta
Les méthodes de Runge-Kutta sont couramment utilisées car elles allient précision,
stabilité et simplicité. Toutes nécessitent plusieurs itérations pour effectuer un pas.
La méthode de Runge-Kutta d’ordre 2 est la plus simple ; elle combine deux itérations
successives de la méthode d’Euler explicite. Dans un premier temps la dérivée en (xn , yn ) est
évaluée pour faire une première estimation du point suivant (noté « A » dans la figure ci II.5
dessous). L’estimation provisoire de yn+1 en ce point est ensuite utilisée pour affiner le calcul de
la dérivée. Une nouvelle approximation de celle-ci est obtenue en prenant sa valeur à mi-parcours
(prise au point B).
C’est cette valeur de la dérivée qui sera ensuite utilisée pour estimer le prochain pas yn+1 (point
C). La procédure d’intégration se résume à :
hf ( xn , yn )
h
hf ( xn , y n ) (II.6.1)
2 2
y n1 yn (h 3 )
Même si cette méthode demande deux fois plus opérations de calcul que la méthode d’Euler
explicite pour effectuer un seul pas, le résultat est plus précis et plus stable.
ENSET ORAN - 20 -
CHAPITRE II Méthode de résolution des ODE a un pas
Une méthode explicite, d'ordre 2, peut être obtenue par l'utilisation de la formule des
trapèzes. L'algorithme, noté RK2, s'écrit :
y0 donné
y * n1 yn hf ( xn , yn ) (II.6.2)
h
yn1 yn [ f ( xn , yn ) f ( xn1 , y * n1 )]
2
Elle est obtenue en utilisant la formule d'intégration numérique des trapèzes.
h
y n ,1 y n f ( xn , y n )
2
h
yn1 yn h(1 ) f ( xn , yn ) f ( xn , y n ,1 ) (II.6.3)
2
y0 : donné
Avec α un nombre réel compris entre 0 et 1. Les valeurs de α couramment utilisées sont α=1,
α=1/2 et α=3/4. Ces méthodes sont d’ordre 2.
ENSET ORAN - 21 -
CHAPITRE II Méthode de résolution des ODE a un pas
h
y n ,1 y n f ( xn , y n )
3
2h h
yn , 2 yn f ( xn , yn ,1 ) (II.6.5)
3 3
h 2h
yn1 yn ( f ( xn , yn ) 3 f ( xn , yn , 2 ))
4 3
Ou par
h
y n ,1 y n f ( xn , y n )
2
h
yn , 2 yn h( f ( xn , yn ) 2 f ( xn , yn ,1 )) (II.6.6)
2
h h
yn1 yn ( f ( xn , yn ) 4 f ( xn , yn ,1 ) f ( xn1 , yn , 2 ))
6 2
Ces deux méthodes sont d’ordre 3. La première est parfois appelée méthode de Heun.
ENSET ORAN - 22 -
CHAPITRE II Méthode de résolution des ODE a un pas
On itère le procédé en partant du point (X0, Y0) et en reprenant à chaque étape le point E comme
nouveau point M, autant de fois qu’il le faut pour que X décrive l’intervalle demandé.
La méthode suivante est de loin la plus connue et utilisée. Les relations de récurrence sont les
suivantes :
h
y n ,1 y n f ( xn , y n )
2
h h
yn , 2 yn f ( xn , yn ,1 ) (II.6.7)
2 2
h h
y n , 3 y n f ( xn , y n , 2 )
2 2
h h h
yn1 yn ( f ( xn , yn ) 2 f ( xn , yn ,1 ) 2 f ( xn , yn , 2 ) f ( xn1 , yn , 3 ))
6 2 2
ENSET ORAN - 23 -
CHAPITRE II Méthode de résolution des ODE a un pas
y0 donné
k1 hf xn , yn
h k
k 2 hf xn , yn 1
2 2
h k
k3 hf xn , yn 2 (II.6.8)
2 2
k 4 hf xn h, yn k3
1
yn1 yn k1 2k 2 2k3 k4
6
II.6.6 Formule générale des méthodes RK explicites :
Quand la matrice A est triangulaire inférieure stricte, αi,j = 0 pour j ≥ i, on dit que la méthode est
explicite.
Si seule la partie triangulaire supérieure est nulle, αi,j = 0 pour j > i, la méthode est dite implicite ;
sinon elle est totalement implicite.
ENSET ORAN - 24 -
CHAPITRE II Méthode de résolution des ODE a un pas
ENSET ORAN - 25 -
CHAPITRE II Méthode de résolution des ODE a un pas
Le second principe de la méthode consiste à extrapoler cette limite non pas sur la base de
développements polynomiaux mais de développements en fractions rationnelles. Le troisième
principe consiste à utiliser des fonctions d'erreur qui sont paires en pas d’intégration.
Fig. II.7 {Schéma illustrant le principe de la méthode de Burlish-Stoer. Les lignes en pointille
correspondent aux intégrations réalisées avec trois pas d'intégration différents. La courbe en trait
plein correspond à la solution exacte.
ENSET ORAN - 26 -
CHAPITRE II Méthode de résolution des ODE a un pas
time_Euler = 0.6880
time_Heun = 1.4380
time_RK4 = 2.7660
ENSET ORAN - 27 -
CHAPITRE II Méthode de résolution des ODE a un pas
On voit bien que la méthode d’Euler est la plus rapide parce que dans les autres méthodes y a
plus de calcul pour approché la solution exacte.
Pour l’allure des courbes on obtient la figure II.8 :
ENSET ORAN - 28 -
CHAPITRE II Méthode de résolution des ODE a un pas
Si on prend la comparaison de toutes les méthodes vue dans ce chapitre on obtient la figure II.8
suivi du programme sous Matlab ci-dessous enregistré sous le nom de « comparaison »
Programme
ENSET ORAN - 29 -
CHAPITRE II Méthode de résolution des ODE a un pas
Suite du programme
Sur la figure II.9 on voit bien que Euler Explicite s’éloigne de la vraie solution par contre les plus
précise sont RK4 et Heun donc c’est les méthodes les plus précises surtout pour RK4
erreur_Euler_explecite = 0.0070
erreur_Euler_Implecite = 0.0077
erreur_Euleur_Modifier = 0.0034
erreur_Heun = 2.3774e-004
erreur_euler_cauchy = 2.3774e-004
ENSET ORAN - 30 -
CHAPITRE II Méthode de résolution des ODE a un pas
Si on compare les résultats obtenu par la figure II.10 ainsi que les résultats de calcul affiché sur le
Works-pace du Matlab on voit bien que la méthode de Runge – Kutta a une erreur très faible et
que la solution s’approche du résultas exacte par contre pour les autres implicites on remarque
qu’il y a une très grande erreurs
La figure suivant II.10 nous montre les erreurs de chaque méthode par rapport à la solution exacte
ENSET ORAN - 31 -
CHAPITRE II Méthode de résolution des ODE a un pas
Une façon pour garantir l'exactitude dans la solution d'un système d’équation
différentielle est de résoudre le problème en employant deux fois les tailles du « pas » h et h/2 et
de comparer les réponses aux points de maille correspondant à la taille du « pas » le plus grand.
Mais ceci exige une quantité significative de calcul pour la taille du pas la plus petite et doit être
répété si on le détermine que l'accord n'est pas assez bon.
Si les deux réponses ne sont pas d'accord sur une exactitude spécifique, la taille du « pas »
est réduite.
Si les réponses sont d'accord sur des chiffres plus significatifs qu'exigés, la taille du pas
est augmentée.
ENSET ORAN - 32 -
CHAPITRE II Méthode de résolution des ODE a un pas
k1 hf ( xn , yn ),
1 1
k 2 hf ( xn h, yn k1),
4 4
3 3 9
k 3 hf ( xn h, yn k1 k 2 ),
8 32 32
1 8 3544 1859 11
k 6 hf ( xn h, yn k1 2k 2 k3 k 4 k 5).
2 27 2565 4104 40
Alors une approximation à la solution du système d’équation différentielle est faite pour suivre
une méthode de Runge-Kutta d'ordre 4 :
25 1408 2197 1
yn 1 yn k1 k3 k 4 k5 (B)
216 2565 4101 5
Là où les quatre valeurs de fonction f1, f3, f4, et f5 sont employées. Notez que le f2 n'est pas
employé dans la formule (B). Une meilleure valeur pour la solution est déterminée suivre une
méthode de Runge-Kutta d'ordre 5 :
16 6656 28,561 9 2
z n 1 yn k1 k3 k 4 k 5 k 6. (C)
135 12,825 56,430 50 55
ENSET ORAN - 33 -
CHAPITRE II Méthode de résolution des ODE a un pas
La taille du pas optimale SH peut être déterminée en multipliant les temps scalaires de s avec la
taille du pas courant H. Le s scalaire est :
14 14
tolh tolh
s 0.84
z y
(D)
2 z n 1 yn 1 n 1 n 1
Là où le tol est la tolérance spécifique de commande d'erreur.
La dérivation de la formule (D) peut être trouvée dans les livres avancés sur l'analyse numérique.
Il est important d'apprendre qu'une taille fixe du « pas » n'est pas la meilleure stratégie
quoiqu'elle donne une table gentille apparaissante des valeurs. Si les valeurs nécessaires ne sont
pas dans la table, l'interpolation polynôme devrait être employée.
ENSET ORAN - 34 -
CHAPITRE II Méthode de résolution des ODE a un pas
Un programme RKF45 a été employé avec le tol de valeur = 2 × 10-5 pour la tolérance de
commande d'erreur. Il a changé la taille du pas automatiquement et a produit les 10
approximations à la solution dans le tableau II.2.
Un programme RK4 a été employé avec la taille du pas a priori de h = 0.1, ce qui a exigé de
l'ordinateur de produire de 14 approximations aux points équidistants dans le tableau .II.3.
ENSET ORAN - 35 -
CHAPITRE II Méthode de résolution des ODE a un pas
ENSET ORAN - 36 -
CHAPITRE II Méthode de résolution des ODE a un pas
ENSET ORAN - 37 -
CHAPITRE II Méthode de résolution des ODE a un pas
Conclusion
Les intégrateurs implicites sont souvent moins précis, plus compliqués à utiliser. Mais ils sont
plus stables que les intégrateurs explicites : ils divergent moins rapidement. En d’autres termes :
moins précis à court terme, plus précis à long termes.
Pour les méthodes RKF45 et RK4, respectivement. La méthode RKF45 a une erreur très petite
• Runge-Kutta d’ordre 4 :
Souvent la réponse par défaut
Précision est généralement encore meilleure
Bon rapport qualité/prix
Mais pas une réponse universelle !
• Euler :
Beaucoup de défauts
Déconseillée pour presque tout
Mais tellement rapide à implémenter
• Heun :
Fait la moyenne entre 2 pentes ; les méthodes de Runge-Kutta font la moyenne de
m pentes …
ENSET ORAN - 38 -
Chapitre III
L’idée la plus simple pour estimer cette erreur consiste à calculer la solution donnée par un
algorithme (de Runge-Kutta d’ordre 4 par exemple) pour deux pas d´intégration différents, h et
2h. Soit y(x + 2h) la solution exacte à x + 2h et y(x + h) la solution exacte à x + h, on a
Où est une fonction qui reste constante sur l’intervalle x, x + 2h à l’ordre h5.
La première équation correspond à une intégration avec un pas égal à 2h tandis que la seconde
correspond à deux intégrations successives avec un pas de h. La différence = y2 − y1 fournit
une estimation de l’erreur commise avec un pas d’intégration h.
p
yk 1 yk h j f (t k j , y k j )
j 1
et substituez le polynôme dans la forme intégrale d'équation pour obtenir une évaluation prévue
de yk+1.
h
h
pk 1 yk l3 (t )dt yk (9 f k 3 37 f k 2 59 f k 1 55 f k ) (III.1.1a)
0 24
La deuxième étape est de répéter le même travail avec les quatre points mis à jour :
ENSET ORAN - 40 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
t k 2 , f k 2 , t k 1 , f k 1 , t k , f k , t k 1 , f k 1 (f k 1 f (t k 1 , pk 1 ))
h
h
ck 1 yk l '3 (t )dt yk ( f k 3 f n1 19 f k 9 f k 1 ) (III.1.1b)
0 24
Alternativement, nous écrivons à Taylor l'expansion de série de yk+1 au sujet de tk et de celui du
yk au sujet de tk+1 avec
ENSET ORAN - 41 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Nous ne pouvons pas encore employer ces formules pour estimer les erreurs de facteur
prédictif/correcteur, puisque K est inconnu. Mais, de la différence entre ces deux formules
Nous pouvons obtenir les formules pratiques pour estimer les erreurs avec
251
EP ,k 1 yk 1 p k 1 (ck 1 pk 1 ) (III.1.6a)
270
19
EC ,k 1 yk 1 c k 1 (ck 1 pk 1 ) (III.1.6b)
270
ENSET ORAN - 42 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Ces formules nous donnent de grandes évaluations de la façon dont valeurs prévues/corrigées
étroites sont à la valeur vraie et ainsi peuvent être employées pour les améliorer aussi bien que
pour ajuster l'étape-taille.
251
pk 1 pk 1 (ck pk ) mk 1 (III.1.7a)
270
19
c k 1 ck 1 (ck 1 pk 1 ) y k 1 (III.1.7b)
270
On s'attend à ce que ces formules de modification récompensent nos efforts que nous avons fait
pour les dériver.
Il est mis en application par la routine intégrée de MATLAB « ode113 () » avec beaucoup de
techniques sophistiquées additionnelles.
h
Prédicteur : p n 1 yn
(9 f n3 37 f n2 59 f n1 55 f n ) (III.1.8a)
24
251
Modificateur : m n 1 p n 1 (cn p n ) (III.1.8b)
270
h
Correcteur : c n 1 yn ( f n2 5 f n1 19 f n 9 f ( xn1 , mn1 )) (III.1.8c)
24
19
y n 1 cn1 (cn 1 pn1 ) (III.1.8d)
270
ENSET ORAN - 43 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Programme de ABM
III.2.Méthode de Hamming
Dans cette section, nous présentons juste l'algorithme de la méthode de Hamming [H-1]
récapitulée dans la boîte ci-dessus et le « ode_Ham courant correspondant () », qui est une autre
méthode multi pas de pré enregistreur/correcteur comme la méthode d'Adams-Bashforth Moulton
(ABM).
Cet arrangement a besoin également de seulement deux évaluations de fonction (appels) par
itération, tout en ayant l'erreur d'O (h5) et est ainsi comparable à la méthode d'ABM discutée
dans la section précédente.
ENSET ORAN - 44 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
4h
Prédicteur : p k 1 yk 3 (2 f k 2 f k 1 2 f k ) (III.1.9a)
3
112
Modificateur : m k 1 p k 1 (ck p k ) (III.1.9b)
121
1
Correcteur : c k 1 9 yk y k 2 3h( f k 1 2 f k f ( xk 1 , mk 1 )) (III.1.9c)
8
9
y k 1 ck 1 (ck 1 pk 1 ) (III.1.9d)
121
Programme de Hamming :
ENSET ORAN - 45 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Il est important de noter que l'évaluation/comparaison des méthodes numériques n'est pas aussi
simple parce que leurs exécutions peuvent dépendre de la caractéristique du problème actuel.
Il devrait également noter qu'il y a autre facteurs à considérer, comme la stabilité, polyvalence,
preuve contre l'erreur d'exécution, et ainsi de suite. Ces points sont considérés dans la plupart des
routines de fonction intégrée de MATLAB.
La première chose que nous allons faire est de valider l'efficacité des modificateurs (Eqs. (II.1.8b,
d) et (III.1.9b, d)) dans l'ABM (Adams-Bashforth-Moulton) méthode et la méthode de Hamming
et RK4.
Pour ce travail, nous écrivons et lançons le programme « nm643_1.m »
ENSET ORAN - 46 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Pour obtenir les résultats représentés dans fig. III.1 pour l'équation
y' (t) - y(t) 1 avec y(0) 0 (6.4.10) Solution exacte y (t ) 1 e t
La Fig. III.1 nous montre un fait intéressant ce, bien que la méthode d'ABM et la méthode de
Hamming, même sans modificateur, sont théoriquement prévus avoir une meilleure exactitude
que la méthode RK4, ils s'avèrent fonctionner mieux que RK4 seulement avec modificateurs.
On remarque que l’erreur relative est plus grande pour la méthode de RK4 par rapport aux autres
méthodes.
Tableau III-1 : Résultats d'appliquer plusieurs routines pour résoudre une équation simple
Figure III.1 Solutions numériques et leurs erreurs pour l'équation y’(t) = -y(t)+1
ENSET ORAN - 47 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Naturellement, ce n'est pas toujours le cas, comme illustré dans fig. III.2, ce que nous avons
obtenu en appliquant les mêmes routines pour résoudre une autre équation :
y(t) e t - 1 (6.4.12)
Il est remarquable que, sans modificateurs, la méthode d'ABM semble être meilleure que
Méthode de Hamming ;
Cependant, avec les modificateurs, c'est l'autre manière autour du mineurs ils courent un cou et
une course de cou.
N'importe qui verra que les méthodes de pré enregistreur/correcteur telles que la méthode d'ABM
(l'ode_ABM ()) et la méthode de Hamming (ode_Ham ()) nous donne une meilleure solution
numérique avec moins d'erreur et de temps plus court de calcul que les routines intégrées de
MATLAB « ode23 () », « ode45 () », et « ode113 () » aussi bien que la méthode RK4 (ode_RK4
()), comme énuméré dans le tableau III.2.
Mais, une conclusion générale ne devrait pas être déduite juste d'un exemple.
Tableau III-2 : Résultats d'appliquer plusieurs routines pour résoudre une équation simple
ENSET ORAN - 48 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Figure III.2 Solutions numériques et leurs erreurs pour l'équation y’(t) = y(t)+1
ENSET ORAN - 49 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
ENSET ORAN - 50 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
4h
Prédicteur : p k1 yk 3 (2 f k 2 f k 1 2 f k )
3
h
Correcteur : y k 1 yk 1 ( f k 1 4 f1 f k 1 )
3
ENSET ORAN - 51 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
y0 donné
y1 calculé avec une méthode à un pas
4 1 2h
yn1 y n yn1 f ( xn1 , yn1 )
3 3 3
y0 donné
y1 , y 2 calculé avec une méthode à un pas
18 9 2 2h
yn1 yn yn1 yn2 f ( xn1 , y n1 )
11 11 11 11
y0 donné
y1 , y 2 , y 3 calculé avec une méthode à un pas
48 36 16 3 12h
yn1 yn y n1 y n 2 y n 3 f ( xn1 , y n1 )
25 25 25 25 25
Un problème de la valeur marginale (BVP) est une équation de Nième-ordre avec certaines des
valeurs de la variable dépendante X (t) et son dérivé spécifiques au temps initial t0 et d'autres
spécifiques au temps final tf.
[BVP]N : x (N) (t) f (t, x(t), x' (t), x (2) (t), . . . , x (N -1) (t))
ENSET ORAN - 52 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Dans certains cas, quelques relations entre les valeurs initiales et les valeurs finales peuvent être
données comme état de frontière mélangé au lieu de valeurs initiales/finales spécifiques. Cette
section couvre la méthode de tir et la méthode de différence finie cela peut être employé pour
résoudre un BVP de second ordre :
L'idée de cette méthode est d'assumer la valeur de x’ (t0), résolvez alors le différentiel
d’équation (IVP) avec l'état initial [x (t0) x’ (t0)] et subsistance ajustant la valeur de x’ (t0) et de
résoudre l'IVP répétitivement jusqu'à la valeur finale X (tf) de la solution assortit, le xf donné de
valeur avec assez d'exactitude.
Il est semblable à l'ajustement de l'angle de mettre le feu à un canon de sorte que la coquille
frappe par la suite la cible et à cela est pourquoi cette méthode est appelée la méthode de tir.
Ceci peut être regardé comme problème non linéaire d'équation, si nous considérons x’ (t0) comme
variable indépendante et la différence entre la valeur finale en résultant X (tf) et un xf désiré
comme (non-adaptation) fonction de x’ (t0). Ainsi l'arrangement de solution peut être systématisé
en employant la méthode sécante et est présenté dans la routine « bvp2_shoot de MATLAB () ».
1 1
x" (t ) 2x 2 (t) 4tx(t)x' (t) avec x(0) , x(1) (III.6.3)
4 3
ENSET ORAN - 53 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
1 2t
x(t) et x' (t) 2tx 2 (t) (III.6.4)
4 - t2 (4 - t )
2
Notez que cette équation du second ordre peut être écrite sous forme d'équation d'état est :
x'1 (t ) x 2 (t ) x 1 ( 0) x 0 1 / 4
x' (t ) 2 x 2 (t ) 4tx (t ) x (t ) avec x ( 0) x 1 / 3 (III.6.5)
2 1 1 2 2 f
ENSET ORAN - 54 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Afin d'appliquer la méthode de tir, nous avons placé la conjecture initiale de x2(0)=x’ (0) avec :
x f x0
dx0[1] x 2 (0) (III.6.6)
t f t0
Puis, selon le signe de la différence « e (1) » entre la valeur finale « x1 (1) » de la solution et du
xf final de valeur de cible, nous rendons la prochaine conjecture « dx0 [2] » plus grande/plus
petite que la conjecture initiale dx0 [1] et résolvons l'équation d'état encore avec l'état initial [x1
(0) dx0 [2]].
Nous pouvons commencer vers le haut la méthode sécante avec les deux valeurs initiales dx0 [1]
et dx0 [2] et répétez l'itération jusqu'à la différence (l'erreur) « e(k) » devient suffisamment petit.
Pour ce travail, nous composons le programme de MATLAB “extir.m”, ce qui emploie la routine
“bvp2_shoot ()” pour obtenir la solution numérique et la compare à la véritable solution
analytique.
Programme de la fonction
La figure III.3 prouve que la solution numérique obtient plus près de la véritable solution
analytique après chaque rond de l'ajustement. Avec une erreur estimée a err = 3.5166e-012
ENSET ORAN - 55 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
L'idée de cette méthode est de diviser l'intervalle entier [t0, tf] en segments de N de largeur h=
(tf-t0)N, et rapprochez les premiers et deuxièmes dérivés dans l’équations pour chaque point de
grille par les formules de différence centrale. Ceci mène à un système de tri diagonal des
équations en ce qui concerne (n-1) variables [xi= x(t0+ih) = 1…………..N-1].
Cependant, afin que ce système d’équations soit résolu facilement, il devrait être linéaire, en
impliquant que ses coefficients peuvent ne pas contenir aucune limite de x
Selon la méthode de différence finie, nous divisons l'intervalle de solution [t0 tf] dans N, dans des
segments de N et convertir l'équation pour chaque point de grille ti = t0 + ih, dans une équation à
différences
ENSET ORAN - 56 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
xi 1 2 xi xi 1 xi 1 xi 1
a1i
a0 i xi ui
h2 2h
( 2 ha1i ) xi 1 (4 2h 2 a0 i ) xi (2 ha1i ) xi 1 2h 2ui
Puis, tenant compte de l'état de frontière cela x0 = x(t0) et xN = x(tf), nous rassemblons le tout les
(N-1) équations pour construire un système tri diagonal avec des équations
Ceci peut être résolu efficacement en employant « trid » courant de MATLAB le « () », qui est
consacré à un système de tri diagonal des équations linéaires.
Le procédé entier de la méthode de différence finie pour résoudre une équation linéaire de second
ordre avec des états de frontière est moulé dans la routine « bvp2_fdf de MATLAB () ». Cette
routine est conçue pour accepter les deux coefficients a1 et a0 et l'entrée u de côté droit de
l’équation AB, en tant que ses trois premiers entrés arguments, où n'importe lequel de ces trois
arguments entrés peut être indiqué comme nom de fonction au cas où la limite correspondante ne
serait pas une valeur numérique, mais une fonction du temps t.
Nous faisons le programme « dofdf » pour employer cette routine pour résoudre le BVP de
second ordre.
2 2
x" (t ) x' (t ) 2 x(t ) 0 avec x(1) 5, x(2) 3 (BB)
t t
ENSET ORAN - 57 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Programme
Pour obtenir le résultat représenté dans fig. III.4 et, en plus, pour employer la commande
symbolique de calcul « dsolve () » et « subs () » d'obtenir la solution analytique
4
x (t ) t
t2
et substituez le vecteur de temps dans la solution analytique pour obtenir ses valeurs numériques
pour le contrôle.
ENSET ORAN - 58 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
Figure III.4 solution d'un BVP obtenu en employant la méthode de différence finie.
ENSET ORAN - 59 -
CHAPITRE III Méthode de résolution des ODE à pas multiples
2- Les deux méthodes peuvent être modifiées pour résoudre BVP avec des états de
frontière mélangés
ENSET ORAN - 60 -
Bibliographie
Bibliographie
Bibliographie
Burden, Richard L., and Fairs, J. Douglas, Numerical Analysis, 7th ed., Brooks/
Cole Thomson, Pacific Grove, CA, 2001.
Canale, Raymond, and Chapra, Steven, Numerical Methods for Engineers: with
Software and Programming Applications, McGraw-Hill, New York, 2002.
Hamming, R. W., Numerical Methods for Scientists and Engineers, 2nd ed.,
McGraw-Hill, New York, 1973.
Kreyszig, Erwin, Advanced Engineering Mathematics, 8th ed., John Wiley & Sons,
New York, 1999.
Lindfield, G. R., and Peny, J. E. T., Numerical Methods Using MATLAB, 8th ed.,
Prentice-Hall, Upper Saddle River, NJ, 2000.
Mathews, J. H., and Fink, K. D., Numerical Methods Using MATLAB, Prentice-
Hall, Upper Saddle River, NJ, 1999.
Maron, Melvin J., Numerical Analysis, Macmillan, Inc., New York, 1982.
Oppenheim, Alan V., and Schafer, Ronald W., Discrete-Time Signal Processing,
Prentice-Hall, Englewood Cliffs, NJ, 1989.
Peaceman, D. W., and Rachford, H. H., The numerical solution of parabolic and
elliptic differential equations, J. Soc. Ind. Appl. Math. 3, 28–41 (1955).
Schilling, R. J., and Harris, S. L., Applied Numerical Methods for Engineers Using
MATLAB and C, Brooks/Cole, Pacific Grove, CA, 2000.
ENSET ORAN - 61 -
Bibliographie
ENSET ORAN - 62 -