Académique Documents
Professionnel Documents
Culture Documents
Notes de cours
Sup Galilée, Ingénieurs Energétique 1ère année
Francois Cuvelier
L.A.G.A./Département de Mathématiques
http://www.math.univ-paris13.fr/ „cuvelier
Table des matières
1 Langage Algorithmique 1
1.1 Pseudo-langage algorithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Données et constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.3 Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.4 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.5 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.6 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Méthodologie d'élaboration d'un algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Description du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 Recherche d'une méthode de résolution . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 Réalisation d'un algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Principes de bonne programmation pour attaquer de gros problèmes . . . . . . . . . 9
2 Dérivation numérique 11
3 Introduction à la résolution d'E.D.O. 21
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.1 Exemple en météorologie : modèle de Lorentz . . . . . . . . . . . . . . . . . . . . . 21
3.1.2 Exemple en biologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.3 Exemple en chimie : La réaction de Belousov-Zhabotinsky . . . . . . . . . . . . . . 23
3.1.4 Exemple en mécanique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Problème de Cauchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3 Diérences nies pour les E.D.O. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 Diérences nies pour le problème de Cauchy en dimension m “ 1 . . . . . . . . . 30
3.3.2 Diérences nies pour le problème de Cauchy en dimension m . . . . . . . . . . . 33
3.4 Méthodes à un pas ou à pas séparés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.5 Méthodes de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5.2 Formules explicites de Runge-Kutta d'ordre 2 . . . . . . . . . . . . . . . . . . . . . 37
3.5.3 Méthodes de Runge-Kutta d'ordre 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6 Méthodes à pas multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.6.1 Exemple : schéma de point milieu . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
iv TABLE DES MATIÈRES
3.6.2 Le principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.6.3 Méthodes explicites d'Adams-Bashforth . . . . . . . . . . . . . . . . . . . . . . . . 44
3.6.4 Méthodes implicites d'Adams-Moulton . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.6.5 Schéma prédicteur-correcteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.7 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.7.1 Modèle de Lorentz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4 Introduction à la résolution d'E.D.P. 51
4.1 Exemples d'EDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.1.1 Equation de Laplace et équation de Poisson . . . . . . . . . . . . . . . . . . . . . . 51
4.1.2 Equation de convection-diusion stationnaire . . . . . . . . . . . . . . . . . . . . . 54
4.1.3 Equation de la chaleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.1.4 Equation des ondes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.3 Méthodes de résolution numérique d'EDP . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.4 Opérateurs aux diérences nies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.4.1 Dimension 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.4.2 Dimension n ě 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.5 Méthode des diérences nies (dimension 1 en espace) . . . . . . . . . . . . . . . . . . . . 65
4.5.1 EDP stationnaire avec conditions aux limites de Dirichlet . . . . . . . . . . . . . . 65
4.5.2 EDP stationnaire avec conditions aux limites mixtes . . . . . . . . . . . . . . . . . 69
4.5.3 EDP modèle d'évolution : l'équation de la chaleur . . . . . . . . . . . . . . . . . . 73
0.0.0
0.TABLE DES MATIÈRES
0.0. TABLE DES MATIÈRES
‚ variables,
‚ expressions,
‚ fonctions.
1.1.2 Variables
Denition 1.1
Une variable est un objet dont la valeur est modiable, qui possède un nom et un type (entier,
charactère, réel, complexe, ...). Elle est rangée en mémoire à partir d'une certaine adresse.
2 Langage Algorithmique
1.1.3 Opérateurs
Opérateurs arithmétiques
Opérateurs relationnels
Opérateurs logiques
Opérateur d'aectation
1.1.4 Expressions
Denition 1.2
Une expression est un groupe d'opérandes (i.e. nombres, constantes, variables, ...) liées par certains
opérateurs pour former un terme algébrique qui représente une valeur (i.e. un élément de donnée
simple)
pb ˚ b ´ 4 ˚ a ˚ cq{p2 ˚ aq.
px ă 3.14q
Dans cette expression, x est une variable numérique et 3.14 est un nombre réel. Cette expression
prendra la valeur vrai (i.e. 1) si x est plus petit que 3.14. Sinon, elle prendra la valeur faux (i.e. 0)
1.1.5 Instructions
Denition 1.4
Une instruction est un ordre ou un groupe d'ordres qui déclenche l'exécution de certaines actions
par l'ordinateur. Il y a deux types d'instructions : simple et structuré.
Les instructions simples sont essentiellement des ordres seuls et inconditionnels réalisant l'une
des tâches suivantes :
1. aectation d'une valeur a une variable.
2. appel d'une fonction (procedure, subroutine, ... suivant les langages).
Les instructions structurées sont essentiellement :
1. les instructions composées, groupe de pulsieurs instructions simples,
1.1.5 Instructions
2. les instructions répétitives, permettant l'exécution répétée d'instructions simples, (i.e. boucles
pour, tant que)
3. les instructions conditionnelles, lesquels ne sont exécutées que si une certaine condition est
respectée (i.e. si)
1. Langage Algorithmique
Les exemples qui suivent sont écrits dans un pseudo langage algorithmique mais sont facilement
transposable dans la plupart des langages de programmation.
1.1.Pseudo-langage algorithmique
Instructions simples
Voici un exemple de l'instruction simple d'aectation :
1: a Ð 3.14 ˚ R
Instructions composées
Instructions répétitives, boucle pour
2:
6: ache('en devenir')
7: Fin Si
1.1.6 Fonctions
Les fonctions permettent
• d'automatiser certaines tâches répétitives au sein d'un même programme,
• ...
Fonctions prédénies
Pour faciliter leur usage, tous les langages de programmation possèdent des fonctions prédénies. On
pourra donc supposer que dans notre langage algorithmique un grand nombre de fonctions soient prédénies
: par exemple, les fonctions mathématiques sin, cos, exp, abs, ¨ ¨ ¨ (pour ne citer quelles)
Syntaxe
On utilise la syntaxe suivante pour la dénition d'une fonction
La fonction se nomme NomFonction . Elle admet comme paramètres d'entrée (données) les m argu-
ments arge1 , . . . , argem et comme paramètres de sortie (résultats) les n arguments args1 , . . . , argsn . Ces
derniers doivent être déterminés dans le corps de la fonction (partie instructions).
Dans le cas ou la fonction n'admet qu'un seul paramètre de sortie, l'écriture se simplie :
1.1.6 Fonctions
2. Que doit-on calculer ?
Et, ensuite il faut la commenter : expliquer son usage, type des paramètres, ....
1. Langage Algorithmique
ax ` b “ 0,
1.1.Pseudo-langage algorithmique
où nous supposons que a P R˚ et b P R. La solution de ce problème est donc
b
x“´ .
a
Remarque 1.5 Cette fonction est très simple, toutefois pour ne pas alourdir le code nous n'avons pas
vérié la validité des données fournies.
Exercice 1.1.1
Ecrire un algorithme permettant de valider cette fonction.
ax2 ` bx ` c “ 0, (1.1)
Exercice 1.1.2
1.2.3 Réalisation d'un algorithme
Exercice 1.1.3
Même question que précédemment dans le cas complexe (solution et coecients).
1. Langage Algorithmique
‚ Simplier le problème.
1.2.4 Exercices
Si l'on ne sait pas répondre à l'une de ces questions, l'écriture de l'algorithme est fortement comprise.
1.2.4 Exercices
1. Langage Algorithmique
ÿ
Spxq “ k sinp2 ˚ k ˚ xq
Correction Exercice 1.2.1 L'énoncé de cet exercice est imprécis. On choisi alors x P R et n P N pour
rendre possible le calcul. Le problème est donc de calculer
n
ÿ
k sinp2kxq.
k“1
Correction Exercice 1.2.2 L'énoncé de cet exercice est imprécis. On choisi alors z P R et k P N pour
rendre possible le calcul.
k
Algorithme 1.7 Calcul de P
ź
“ sinp2kz{nqk
n“1
Données : z : nombre réel,
k : nombre entier.
Résultat : P : un réel.
1: P Ð1
2: Pour n Ð 1 à k faire
1.2.4 Exercices
3: P Ð P ˚ sinp2 ˚ k ˚ z{nq^ k
4: Fin Pour
" *
4A 1 1 1
xptq “ cos ωt ´ cos 3ωt ` cos 5ωt ´ cos 7ωt ` ¨ ¨ ¨ .
π 3 5 7
Algorithme 1.8 En-tête de la fonction SFT retournant valeur de la série de Fourier en t tronquée au n
premiers termes de l'exercice 1.2.3.
Données : t : nombre réel,
n : nombre entier strictement positif
A, ω : deux nombres réels.
Résultat : x : un réel.
1: Fonction x Ð SFT( t, n, A, ω )
2: ...
3: Fin Fonction
Maintenant nous pouvons écrire progressivement l'algorithme pour aboutir au nal à une version ne
contenant que des opérations élémentaires.
n ˆ n
4A ÿ p´1qk`1 2k´1
1
ˆ
˙ ÿ 1
1: xÐ 1: S Ð p´1qk`1 cospp2k ´ 1qωtq
π k“1 cospp2k ´ 1qωtq k“1
2k ´ 1
4A
2: x Ð S
π
n
ÿ 1 1: S Ð 0
1: SÐ p´1qk`1 cospp2k ´ 1qωtq
2k ´ 1 2: Pour k “ 1 à n faire
k“1
3: S Ð S ` p´1qk`1 2k´1
1
˚ cospp2k ´ 1qωtq
4: Fin Pour
4A
2: xn ptq Ð S
π
4A
1.3.0 Exercices
5: xn ptq Ð S
π
1. Langage Algorithmique
5:
6: S Ð 4 ˚ A ˚ S{π
7: Fin Fonction
Exercice 1.2.4
Reprendre les trois exercices précédents en utilisant les boucles tant que.
P2 en P21 , P22 , etc. On poursuit cette analyse jusqu'à ce qu'on n'ait plus que des problèmes élémentaires
à résoudre. Chacun de ces problèmes élémentaires est donc traité séparément dans un module, c'est à
dire un morceau de programme relativement indépendant du reste. Chaque module sera testé et validé
séparément dans la mesure du possible et naturellement largement docummenté. Enn ces modules
élémentaires sont assemblés en modules de plus en plus complexes, jusqu'à remonter au problème initiale.
A chaque niveau, il sera important de bien réaliser les phases de test, validation et documentation des
modules.
l'occupation mémoire, ..
1.3.0 Exercices
1.3. Principes de bonne programmation pour attaquer de gros problèmes
1. Langage Algorithmique
Soit y : ra, bs ÝÑ R, de classe C 1 et t P ra, bs. La dérivée y 1 ptq est donnée par
ypt ` hq ´ yptq
y 1 ptq “ lim
hÑ0` h
yptq ´ ypt ´ hq
“ lim
hÑ0` h
ypt ` hq ´ ypt ´ hq
“ lim
hÑ0 2h
Denition 2.1
Soit N P N˚ . On appelle discrétisation régulière de ra, bs à N pas ou N ` 1 points l'ensemble
des points a ` nh, n P v0, N w où le pas h est donné par h “ pb ´ aq{N.
Soient ttn unPv0,N w une discrétisation régulière de ra, bs et pDyqn une approximation de y 1 ptn q. On
appelle
‚ diérence nie progressive l'approximation
yptn`1 q ´ yptn q
pDyqP
n “ , @n P v0, N ´ 1w (2.1)
h
Pour calculer l'erreur commise par ces approximations, on rappelle le developpement de Taylor-
Lagrange
12 Dérivation numérique
‚ @x P ra, bs, @h P R˚ vériant x ` h P ra, bs, il existe ξ Ps minpx, x ` hq, maxpx, x ` hqr tel quel
r
f pkq pxq k f pr`1q pξq r`1
(2.5)
ÿ
f px ` hq “ f pxq ` h ` h
k“1
k! pr ` 1q!
Denition 2.3
2.0.0 Exercices
Soit g une fonction. On dit que g se comporte comme un grand O de hq quand h tend vers 0
Dérivation numérique
f pkq pxq k
(2.6)
ÿ
f px ` hq “ f pxq ` h ` Ophr`1 q.
2.0.
k“1
k!
Exercice 2.0.1
Q. 1 Soit y P C 2 pra, bsq.
1. Montrer qu'il existe ηPn Pstn , tn`1 r et ηRn Pstn´1 , tn r tels que
h p2q n
pDyqP
n “
y p1q ptn q ` y pηP q
2
et
h p2q n
pDyqR
n “
y p1q ptn q ´ y pηR q
2
2. En déduire que
1
| y p1q ptn q ´ pDyqP
n | ď C1 h, avec C1 “ max | y p2q ptq|
2 tPrtn ,tn`1 s
et
1
|y 1 ptn q ´ pDyqR
n | ď C2 h, avec C2 “ max | y p2q ptq|
2 tPrtn´1 ,tn s
2. En déduire que
1
| y p1q ptn q ´ pDyqC 2
n | ď Eh , avec E “ max | y p3q ptq|
6 tPrtn´1 ,tn`1 s
2.0.0 Exercices
Soit n P v1, N w, on a tn´1 “ tn ´ h et
Dérivation numérique
yptn q ´ yptn´1 q
pDyqR
n “ .
h
D'après la formule de Taylor (2.5), il existe ηR
n
P rtn´1 , tn s tels que
p´hq2 p2q n
yptn´1 q “ yptn q ´ h y p1q ptn q ` y pηR q (2.9)
2!
d'où
2.
yptn q ´ yptn´1 q h
pDyqR “ y p1q ptn q ´ y p2q pηR
n
(2.10)
2.0.
n “ q
h 2
2. Soit n P v0, N ´ 1w, comme ηPn P rtn , tn`1 s on a
De même, comme ηR
n
P rtn´1 , tn s on a
n
| y p2q pηR q| ď max | y p2q ptq|
tPrtn´1 ,tnn s
˛
2.0.0 Exercices
Denition 2.4
Dérivation numérique
La diérence |y 1 ptn q ´ pDyqn | est appelée erreur de troncature au point tn . On dira que
|y 1 ptn q ´ pDyqn | est d'ordre p ą 0 si il existe une constance C ą 0 telle que
Les erreurs de troncature des diérences nies progressive et rétrograde sont d'ordre 1 et l'erreur de
2.
Lemme 2.5
Si y P C 2 pra, bsq alors
ˇ n`1
ˇ
ˇy pt q ´ ypt q ´ yptn q ˇˇ
(2.13)
ˇ 1 n
ˇ h ˇ “ Ophq, @n P v0, N ´ 1w,
ˇ n n´1 ˇ
ˇ
ˇy pt q ´ ypt q ´ ypt qˇ
(2.14)
ˇ 1 n
ˇ h ˇ “ Ophq, @n P v1, N w.
Exercice 2.0.2
Soit f P C 3 pra, bs; Rq. On note tn , n P v0, N w, une discrétisation régulière de ra, bs de pas h. On
note F P RN `1 le vecteur déni par Fn`1 “ f ptn q, @n P v0, N w.
Q. 1 1. Déterminer en fonction de h et F , un vecteur V P RN `1 vériant
Vn`1 “ f 1 ptn q ` Ophq, @n P v0, N w
f pt ` hq ´ f ptq f ptq ´ f pt ´ hq
“ f 1 ptq ` Ophq et “ f 1 ptq ` Ophq.
h h
On va utiliser ces formules en t “ tn . On note que la formule progressive n'est pas utilisable en
t “ tN (car tN ` h “ b ` h R ra, bs!) et que la formule régressive n'est pas utilisable en t “ t0 (car
t0 ´ h “ a ´ h R ra, bs!). Plus précisement, on a
2.0.0 Exercices
f ptn`1 q ´ f ptn q
“ f 1 ptn q ` Ophq, @n P v0, N v, (2.16)
Dérivation numérique
h
f ptn q ´ f ptn´1 q
“ f 1 ptn q ` Ophq, @n Pw0, N w (2.17)
h
On peut alors construire le vecteur V en prenant
2.
VN `1 “ “ f 1 ptN q ` Ophq,
2.0.
h
et pour les points strictement intérieurs les deux formules sont possible :
En choisissant par exemple la formule progressive pour les points intérieurs, on obtient en fonction
de F et h
F2 ´ F1
def
V1 “ “ f 1 pt0 q ` Ophq
h
def Fn`1 ´ Fn
@n Pw0, N v, Vn “ “ f 1 ptn q ` Ophq
h
def FN `1 ´ FN
VN `1 “ “ f 1 ptN q ` Ophq.
h
D'autres façons de présenter le problème sont possibles mais les données peuvent dièrer de celles de
l'énoncé. Par exemple une autre fonction algorithmique pourrait être
1: Fonction V Ð DeriveOrdre1 ( f, a, b, N )
2: t Ð DisRegpa, b, N q Ź fonction retournant la discrétisation régulière...
3: h Ð pb ´ aq{N
V p1q Ð pf ptp2qq ´ f ptp1qq{h
2.0.0 Exercices
4:
5: Pour i “ 2 à N faire
Dérivation numérique
2h
2.0.
Il reste donc à établir une formule progressive en t0 d'ordre 2 (i.e. une formule utilisant les points
t0 , t1 , t2 , ...) et une formule régressive en tN d'ordre 2 (i.e. une formule utilisant les points tN ,
tN ´1 , tN ´2 , ...).
De manière générique pour établir une formule progressive en t d'ordre 2 approchant f 1 ptq, on écrit
les deux formules de Taylor aux points t ` h et t ` 2h :
‚ il existe ξ1 Pst, t ` hr tel que
h2 p2q h3 p3q
f pt ` hq “ f ptq ` hf 1 ptq ` f ptq ` f pξ1 q, (2.19)
2! 3!
‚ il existe ξ2 Pst, t ` 2hr tel que
p2hq2 p2q p2hq3 p3q
f pt ` 2hq “ f ptq ` p2hqf 1 ptq ` f ptq ` f pξ2 q. (2.20)
2! 3!
L'objectif étant d'obtenir une formule d'ordre 2 en t pour approcher f 1 ptq, on va éliminer les
termes en f p2q ptq en eectuant la combinaison 4 ˆ (2.19) ´ (2.20). On obtient alors
h3 p3q p2hq3 p3q
4f pt ` hq ´ f pt ` 2hq “ 3f ptq ` 2hf 1 ptq ` 4 f pξ1 q ´ f pξ2 q
3! 3!
et donc
´3f ptq ` 4f pt ` hq ´ f pt ` 2hq h2 23 h2 p3q
f 1 ptq “ ´ 4 f p3q pξ1 q ` f pξ2 q
2h 3! 3!
´3f ptq ` 4f pt ` hq ´ f pt ` 2hq
“ ` Oph2 q
2h
De la même manière pour établir une formule régressive en t d'ordre 2 approchant f 1 ptq, on écrit
les deux formules de Taylor aux points t ´ h et t ´ 2h :
‚ il existe ξ1 Pst ´ h, tr tel que
2.0.0 Exercices
termes en f p2q ptq en eectuant la combinaison 4 ˆ (2.22) ´ (2.23). On obtient alors
Dérivation numérique
h3 p3q p2hq3 p3q
4f pt ´ hq ´ f pt ´ 2hq “ 3f ptq ´ 2hf 1 ptq ´ 4 f pξ1 q ` f pξ2 q
3! 3!
et donc
3f ptq ´ 4f pt ´ hq ` f pt ´ 2hq h2 23 h2 p3q
f 1 ptq “ ´ 4 f p3q pξ1 q ` f pξ2 q
2h 3! 3!
3f ptq ´ 4f pt ´ hq ` f pt ´ 2hq
2.
“ ` Oph2 q
2.0.
2h
On peut alors construire le vecteur W en utilisant les formules (2.18), (2.21) et (2.24) :
´3F1 ` 4F2 ´ F3
def
W1 “ “ f 1 pt0 q ` Oph2 q
2h
def Fn`1 ´ Fn´1
@n Pw0, N v, Wn “ “ f 1 ptn q ` Oph2 q
2h
def 3FN `1 ´ 4FN ` FN ´1
WN `1 “ “ f 1 ptN q ` Ophq.
2h
D'autres façons de présenter le problème sont possibles mais les données peuvent diérer de celles de
Dérivation numérique
avec ptn qN
n“0 discrétisation régulière de ra, bs.
2.0.
1: Fonction W Ð DeriveOrdre2 ( f, a, b, N )
2: t Ð DisRegpa, b, N q Ź fonction retournant la discrétisation régulière...
3: h Ð pb ´ aq{N
4: W p1q Ð p´3 ˚ f ptp1qq ` 4 ˚ f ptp2qq ´ f ptp3qqq{p2 ˚ hq
5: Pour i “ 2 à N faire
6: W piq Ð pf ptpi ` 1qq ´ f ptpi ´ 1qqq{p2 ˚ hq
7: Fin Pour
8: W pN ` 1q Ð p3 ˚ f ptpN ` 1qq ´ 4 ˚ f ptpN qq ` f ptpN ´ 1qqq{p2 ˚ hq
9: Fin Fonction
Pour illustrer l'intéret de monter en ordre, on représente en Figure 2.2 les dérivées numériques calculées
avec les fonctions DeriveOrdre1 et DeriveOrdre2 . On peut noter visuellement la meilleur concordance
de la dérivée numérique d'ordre 2 sur la gure de gauche. Sur celle de droite, c'est moins clair car les
diérentes courbes sont presque confondues.
1
h=2 π/100
1.5
y=f'(x)
DeriveOrdre1
DeriveOrdre2
0.5
1
y
0.5
0
y
0
-0.5
-0.5
-1 -1
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
x x
Figure 2.2: Représentation des dérivées numériques avec f pxq :“ sinpxq, a “ 0, b “ 2π. A gauche h “ 2π
10 ,
à droite h “ 100
2π
.
Pour une meilleur interprétation et connaissant la dérivée de la fonction, on représente en Figure 2.3
les erreurs entre les dérivées numériques et la dérivée exacte.
0.03 : le pas h a été divisé par 10 et comme la méthode est d'odre 1 l'erreur, qui est en Ophq, est
aussi divisée par 10.
2.0.0 Exercices
‚ Pour la dérivée d'ordre 2, l'erreur maximale pour h “ 2π
10 est d'environ 0.1 et pour h “ 100 d'environ
2π
Dérivation numérique
0.001 : le pas h a été divisé par 10 et comme la méthode est d'ordre 2 l'erreur, qui est en Oph2 q,
est divisée par 100!
0.3
0.03
0.25
2.
error
error
2.0.
0.2 0.02
0.15
0.01
0.1
0.05 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
x x
0.1
0.08 1
error
error
0.06
0.04 0.5
0.02
0 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
x x
Figure 2.3: Erreur des dérivées numériques numériques avec f pxq :“ sinpxq, a “ 0, b “ 2π. A gauche
10 , à droite h “ 100 .
2π 2π
h“
10 -2
Erreur
10 -3
10 -4
10 -5
10 -3 10 -2 10 -1
h
3.1 Introduction
Les équations diérentielles ordinaires ou E.D.O.˚ sont utilisées pour modéliser un grand nombre de
phénomènes mécaniques, physiques, chimiques, biologiques, ...
Denition 3.1
On appelle équation diérentielle ordinaire (E.D.O.) d'ordre p une équation de la forme :
Fpt, y ptq, y p1q ptq, y p2q ptq, . . . , y ppq ptqq “ 0.
Denition 3.2
On appelle forme canonique d'une E.D.O. une expression du type :
y ppq ptq “ G pt, y ptq, y p1q ptq, y p2q ptq, . . . , y pp´1q ptqq. (3.1)
Proposition 3.3
Toute équation diérentielle d'ordre p sous forme canonique peut s'écrire comme un système de p
équations diérentielles d'ordre 1.
de Lorenz. Celui-ci eut donc l'idée de chercher un modèle très simplié de ces équations pour étudier
une situation physique particulière : le phénomène de convection de Rayleigh-Bénard. Il aboutit alors à
un système dynamique diérentiel possédant seulement trois degrés de liberté, beaucoup plus simple à
intégrer numériquement que les équations de départ.
$ 1
& x ptq “ ´σxptq ` σyptq
y 1 ptq “ ´xptqzptq ` ρxptq ´ yptq (3.2)
% 1
z ptq “ xptqyptq ´ βzptq
xptq est proportionnel à l'intensité du mouvement de convection, yptq est proportionnel à la diérence
de température entre les courants ascendants et descendants, et zptq est proportionnel à l'écart du prol
3.1.1 Exemple en météorologie : modèle de Lorentz
Modele de Lorentz
20
15
10
5
x(t)
−5
−10
−15
−20
0 10 20 30 40 50 60 70 80 90 100
t
30
20
10
y(t)
−10
−20
−30
0 10 20 30 40 50 60 70 80 90 100
3.
50
40
3.1. Introduction
30
z(t)
20
10
0
0 10 20 30 40 50 60 70 80 90 100
t
Figure 3.2: Illustration du caractère chaotique du modèle de Lorenz : donnée initiale courbe bleue
xp0q “ ´8, yp0q “ 8, zp0q “ 27, courbe rouge xp0q “ ´8 ` 1e ´ 4, yp0q “ 8, zp0q “ 27.
En représentant, en Figure 3.3, la courbe paramétré pxptq, yptq, zptqq dans l'espace, on obtient l'attracteur
étrange de Lorenz en forme d'aile de papillon.
50
45
40
35
30
z(t)
25
20
15
50
10
5 0
0
−50
−20 −15 −10 −5 0 5 10 15 20 y(t)
x(t)
où C1 et C2 sont les facteurs de croissance des deux populations, d1 et d2 tiennent compte de l'interaction
entre les deux populations, tandis que b1 est lié à la quantité de nourriture disponible pour la population
des proies y1 . Ce système de deux équations diérentielles d'odre 1 est connu comme modèle de Lotka-
Volterra.
(a) Boris Pavlovich Belousov (b) Anatol Zhabotinsky 1938-2008, (c) Ilya Prigogine 1917-2003,
en 1977
Un modéle dérivé est nommé modèle du brusselator proposé par I. Prigogine (Université libre de
Bruxelle) basé sur les équations chimiques :
A ÝÑ X pM1 q
2X ` Y ÝÑ 3X pM2 q
B`X ÝÑ Y `C pM3 q
X ÝÑ D pM4 q
On note ki , i P v1, 4w les vitesses de réactions des équations pMi q. On obtient alors le système diérentiel
suivant : $
’
’ A1 ptq “ ´k1 Aptq
& 1
B ptq “ ´k3 BptqXptq
’
’ X 1 ptq “ k1 Aptq ` k2 X 2 ptqY ptq ´ k3 BptqXptq ´ k4 Xptq
Y ptq “ ´k2 X 2 ptqY ptq ` k3 BptqXptq
% 1
Exemple 3.4 Dans cet exemple, on étudie le problème simplié du Bruxelator. Lorsque les réactions
de (??) ont des constantes de réactions k1 , . . . , k4 égales respectivement à 1, α ą 0, 1 et 1, et que les
concentrations de A et B sont constantes, repectivement égales à 1 et β ą 0, on est alors amené à résoudre
l'E.D.O. @t Ps0, T s, "
X 1 ptq “ 1 ` αX 2 ptqY ptq ´ pβ ` 1qXptq
(3.5)
Y 1 ptq “ ´αX 2 ptqY ptq ` βXptq
C'est un système de deux E.D.O. d'ordre 1.
Par exemple, avec le jeu de données α “ 1, β “ 3.5 et les contitions initiales Xp0q “ 3 et Y p0q “ 2 on
obtient des oscillations :
Brusselator simplifie − Concentrations Brusselator simplifie
4.5 4.5
3.1.4 Exemple en mécanique
X(t)
Y(t)
4 4
3.5 3.5
3. Introduction à la résolution d'E.D.O.
3 Y(0) 3
2.5 2.5
Y(t)
2 2
1.5 1.5
1 1
0.5 0.5
0 0
0 10 20 30 40 50 60 0 0.5 1 1.5 2 2.5 3 3.5
t X(0) X(t)
Brusselator simplifie
8
3.1. Introduction
5
Y(t)
0
0 1 2 3 4 5 6 7 8
X(t)
Le pendule pesant le plus simple est constitué d'un petit objet pesant accroché à une tige de masse
négligeable devant celle de l'objet. L'autre extrémité de la tige est l'axe de rotation du pendule. On note
θptq l'angle que fait le pendule par rapport à l'axe vertical, à un instant t, L la longueur de la tige, M sa
masse et g l'accélération de la pesanteur. Ce pendule est représenté en Figure 3.5.
θ L
M
3.1.Introduction
L
6 et θ0 “ 0 on obtient
θ0 “ 5π 1
2
3
1
θ(t)
0
2
−1
−2
1
−3
0 2 4 6 8 10 12 14 16 18 20
t
θ’(t)
0
Pendule pesant − vitesse angulaire
4
−1
−2
θ’(t)
−3
−2
−4 −4
0 2 4 6 8 10 12 14 16 18 20 −3 −2 −1 0 1 2 3
t θ(t)
2
B
A
θ’
0
C
−2
−4
−6
−8
0 5 10 15 20
θ
Pour résoudre numériquement une E.D.O., nous allons la réécrire sous une forme plus générique : le
problème de Cauchy. De très nombreux résultats mathématiques existent sur les problèmes de Cauchy.
Nous ne ferons que rappeler le théorème de Cauchy-Lipschitz (19ème siècle). L'ensemble des méthodes
3. Introduction à la résolution d'E.D.O.
numériques que nous allons étudier auront pour but la résolution d'un problème de Cauchy quelconque.
Elles pourront donc être utilisées (sans eorts) pour la résolution d'une très grande variété d'E.D.O.
avec T Ps0, `8r. Le problème de Cauchy revient à chercher une fonction y dénie par
y : rt0 , t0 ` T s ÝÑ Rm ¨ ˛
y1 ptq
.. ‹
t ÞÝÑ y ptq ˝ . ‚
˚
ym ptq
Exercice 3.2.1
Quelles sont les données du problème de Cauchy (3.8)-(3.9)?
Dans de nombreux cas, la variable t représente le temps et les composantes du vecteur y , une
famille de paramètres décrivant l'état d'un système matériel donné. L'équation diérentielle (3.8) traduit
physiquement la loi d'évolution du système considéré.
En général, il est impossible de trouver analytiquement des solutions à ces problèmes. Il faut alors
construire des méthodes numériques pour obtenir des solutions approchées. Toutefois, il serait bon de
vérier l'existence et l'unicité d'une solution.
Par exemple, le problème suivant
“ 3 yptq, si t ě 0
" a
y 1 ptq
yp0q “ 0
3.2.Problème de Cauchy
Sous ces hypothèses le problème de Cauchy (3.8)-(3.9) admet une unique solution.
Proposition 3.7
Bff
Si pt, y q est continue et bornée, alors f satisfait la condition de Lipschitz (3.10) en y .
Byy
Exercice 3.2.2
"
x2 ptq “ µp1 ´ x2 ptqqx1 ptq ´ xptq, t Ps0, 10s
pcq
xp0q “ 1, x1 p0q “ 1.
"
y p3q ptq ´ cosptqy p2q ptq ` 2 sinptqy p1q ptq ´ yptq “ 0, t Ps0, T s
pdq
yp0q “ u0 , y p1q p0q “ v0 , y p2q p0q “ w0 .
Correction Exercice
paq C'est une E.D.O. d'ordre 2. Pour écrire le problème de Cauchy assosicé, on écrit l'E.D.O. sous la
forme d'un système de 2 E.D.O. d'ordre 1 (voir Proposition 3.3) en prenant m “ 2 et en posant
ˆ ˙ ˆ ˙
def y1 ptq xptq
y ptq “ “ .
y2 ptq x1 ptq
3.2.0 Exemple en mécanique
On a alors
ˆ ˙ ˆ ˙
x1 ptq x1 ptq
y 1 ptq “ “
x2 ptq ´αx1 ptq ´ β cospxptqq ` sinptq
3. Introduction à la résolution d'E.D.O.
ˆ ˙
y2 ptq
“ “ f pt, y ptqq
´αy2 ptq ´ β cospy1 ptqq ` sinptq
avec
f : r0, 2πs ˆ R2 ÝÑ R
ˆ
2
˙
z2
pt, z q ÞÝÑ
´αz2 ´ β cospz1 q ` sinptq
pbq Pour cette E.D.O. on suppose les paramètres physiques L, C, R1 et R2 donnés. C'est une E.D.O.
d'ordre 2. Pour écrire le problème de Cauchy assosicé, on écrit l'E.D.O. sous la forme d'un système
de 2 E.D.O. d'ordre 1 (voir Proposition 3.3) en prenant m “ 2 et en posant
ˆ ˙ ˆ ˙
def y1 ptq vptq
y ptq “ “ .
y2 ptq v 1 ptq
On a alors
˜ ¸
v 1 ptq
ˆ ˙
v 1 ptq
y 1 ptq
´ ¯
“ “ 1 R1
v 2 ptq LC e ´ p RL2 ` R1 Cqv 1 ptq ´ p R2
` 1qvptq
ˆ ˙
y2 ptq
“ “ f pt, y ptqq
e
LC
1
´ p CR 2
` RL1 qy2 ptq ´ LC
1 R1
p R2 ` 1qy1 ptq
pcq Pour cette E.D.O. on suppose le paramètre µ donné. C'est une E.D.O. d'ordre 2. Pour écrire le
problème de Cauchy assosicé, on écrit l'E.D.O. sous la forme d'un système de 2 E.D.O. d'ordre 1
(voir Proposition 3.3) en prenant m “ 2 et en posant
ˆ ˙ ˆ ˙
def y1 ptq xptq
y ptq “ “ .
y2 ptq x1 ptq
On a alors
ˆ ˙ ˆ ˙
1 x1 ptq x1 ptq
y ptq “ “
µp1 ´ x2 ptqqx1 ptq ´ xptq
3.2.Problème de Cauchy
pdq Pour cette E.D.O. on suppose les paramètres T, u0 , v0 et w0 donnés. C'est une E.D.O. d'ordre
3. Pour écrire le problème de Cauchy assosicé, on écrit l'E.D.O. sous la forme d'un système de 3
E.D.O. d'ordre 1 (voir Proposition 3.3) en prenant m “ 3 et en posant
¨ ˛ ¨ ˛
Y1 ptq yptq
def
Y ptq “ ˝Y2 ptq‚ “ ˝ y 1 ptq ‚.
Y3 ptq y 2 ptq
En utilisant la formule des diérences nies progressive, on a @n P v0, N ´ 1w, Dηn P rt , t n n`1
s tels que
yptn`1 q ´ yptn q h
“ f ptn , yptn qq ` y 2 pηn q
h 2
ou encore
h2 2
yptn`1 q “ yptn q ` hf ptn , yptn qq ` y pηn q.
2
On note y rns une approximation de yptn q pour n P v0, N w.
La méthode d'Euler progressive est donnée par le schéma
"
y rn`1s “ y rns ` hf ptn , y rns q, @n P v0, N ´ 1w
(3.12)
y r0s “ ypt0 q
Ce schéma est explicite, car il permet le calcul direct de y rn`1s en fonction de y rns .
3.
"
y rn`1s “ y rns ` hf ptn`1 , y rn`1s q, @n P v0, N ´ 1w
(3.13)
y r0s “ ypt0 q
Ce schéma est implicite, car y rn`1s est dénit implicitement en fonction de y rns . Il faut donc résoudre à
chaque pas de temps une équation non-linéaire en utilisant des méthodes de point xe par exemple.
Exercice 3.3.1
On veut résoudre numériquement le problème pPq suivant : trouver y telle que
"
y 1 ptq “ cosptq ` 1, @t P r0, 4πs
pPq
yp0q “ 0.
avec t0 “ 0, T “ 4π, y0 “ 0 et
f : rt0 , t0 ` T s ˆ R ÝÑ R
.
pt, zq Þ Ñ cosptq ` 1
Ý
Les données du problème de Cauchy sont donc les réels t0 , T, y0 et la fonction f. L'inconnue est la fonction
y : rt0 , t0 ` T s ÝÑ R.
T
tn “ t0 ` nh, @n P v0, N w, avec h “ .
N
Q. 2 Une discrétisation régulière de l'intervalle ra, bs avec N pas (constant) de discrétisation est donnée
par
b´a 3.
tn “ a ` nh, @n P v0, N w, avec h “ .
N 3.3.Diérences nies pour les E.D.O.
Algorithme 3.1 Fonction DisReg retournant une discrétisation régulière de l'intervalle ra, bs
Données : a, b : deux réels, a ă b
N : un entier non nul (nombre de pas de discrétisation).
Résultat : t : vecteur de RN `1
1: Fonction t Ð DisReg ( a, b, N )
2: h Ð pb ´ aq{N
3: Pour n Ð 0 à N faire
4: t pn ` 1q Ð a ` n ˚ h
5: Fin Pour
6: Fin Fonction
Algorithme 3.2 Fonction REDEP : résolution d'un problème de Cauchy scalaire par le schéma d'Euler
progressif
Données : f : f : rt0 , t0 ` T s ˆ R ÝÑ R fonction d'un
problème de Cauchy (scalaire)
t0 : réel, temps initial
T : réel ą 0
y0 : réel, donnée initiale
N : un entier non nul (nombre de pas de discrétisation).
Résultat : t : vecteur de RN `1 , t pnq “ tn´1 , @n P v1, N ` 1w
Y : vecteur de RN `1 , Y pnq “ y pn´1q , @n P v1, N ` 1w
3.3.1 Diérences nies pour le problème de Cauchy en dimension m “ 1
z : un réel
Résultat : w : un réel
1: Fonction w Ð fCauchy ( t, y )
2: w Ð cosptq ` 1
3: Fin Fonction
3: y0 Ð 0
4: rtt, Y s Ð REDEPpf Cauchy, t0 , T, y 0 , 500q
3.3. Diérences nies pour les E.D.O.
Exemple
Soit l'E.D.O. suivante
“ yptq ` t2 y 2 ptq, pour t P r0, 5s,
"
y 1 ptq
yp0q “ ´1
de solution exacte
yptq “ 1{pe´t ´ t2 ` 2t ´ 2q.
Les résolutions numériques avec les schémas d'Euler progressif et rétrograde sont représentés en gure
3.7.
f : rt0 , t0 ` T s ˆ Rm ÝÑ Rm ¨ ˛
f 1 pt, z q
pt, z q Þ Ñ w “ f pt, z q “ ˝ ... ‚
˚ ‹
Ý
f d pt, z q
En notant
¨ ˛ ¨ ˛
y1 ptq f1 pt, y ptqq
.. ‹ P Rm et f pt, y ptqq “ ˚ ..
3.
y ptq “ ˝ . ‚ . ‚ P Rm
˚ ‹
˝
ym ptq fm pt, y ptqq
3.3.Diérences nies pour les E.D.O.
le problème de Cauchy peut aussi s'écrire sous la forme
$ 1
’ y1 ptq “ f1 pt, y ptqq,
& ..
’
’
.
’ y 1 ptq “ fd pt, y ptqq, @t P rt0 , t0 ` T s
% d
’
avec
’
y pt0 q “ y 0 P Rm .
rns
yd
On obtient alors la méthode d'Euler progressive sous forme vectorielle :
"
y rn`1s “ y rns ` hff ptn , y rns q, @n P v0, N ´ 1w
(3.14)
y r0s “ y pt0 q
Ce schéma est explicite, car il permet le calcul direct de y rn`1s en fonction de y rns .
De la même manière, la méthode d'Euler régressive sous forme vectorielle est donnée par le schéma
"
y rn`1s “ y rns ` hff ptn`1 , y rn`1s q, @n P v0, N ´ 1w
(3.15)
3.4.0 Diérences nies pour le problème de Cauchy en dimension m
y r0s “ y pt0 q
Ce schéma est implicite, car y rn`1s est dénit implicitement en fonction de y rns .
une discrétisation où le pas n'est pas constant et vériant t “ a ă t1 ă . . . ă tN “ b mais cette possibilité
0
Cela signie que le schéma doit être une approximation vraisemblable, bien construite.
Souvent , lorsque la méthode n'est pas stable, l'amplication des erreurs est exponentielle et, au bout
de quelques calculs, les résultats entraînent des dépassements de capacité.
3.
Il est possible de vérier/retrouver numériquement l'ordre du schéma d'Euler progressif. Pour celà
on choisi un problème de Cauchy dont la solution exacte est connue et on calcule pour diérentes valeurs
de h (et donc diérentes valeurs de N ) le maximum de l'erreur commise entre la solution exacte et la
solution numérique donnée par le schéma d'Euler progressif :
› ›
Ephq “ max ›yy ptn q ´ y rns ›
› ›
nPv0,N w
On représente ensuite la fonction h ÞÑ Ephq. La méthode d'Euler progressive étant d'ordre 1, on a alors
Ephq “ Ophq « Ch quand h est susament petit : la courbe obtenue doit donc être une droite.
0.6
0.12
Error
0.4
0.1
0.2
0 0.08
0 2 4 6 8 10 12 14
E(h)
t
0.06
0.04
Error
0.04
0.02
0.02
0 0
0 2 4 6 8 10 12 14 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14
t h
Dans la section suivante on étudie une classe de méthodes à un pas très usitées.
(3.8)-(3.9).
3. Introduction à la résolution d'E.D.O.
3.5.1 Principe
Pour simplier, on suppose hn “ h. L'idée fondamentale des méthodes de Runge-Kutta est d'intégrer
l'équation (3.8)) sur rtn , tn`1 s et de calculer:
ż tn`1
y ptn`1 q “ y ptn q ` f pt, y ptqqdt,
tn
en utilisant une formule d'intégration numérique à q points intermédiaires pour évaluer l'intégrale.
La fonction Φ associée à une méthode de Runge-Kutta à q évaluations de f peut s'écrire sous la forme
: q ÿ
Φ pt, y , hq “ cik ris pt, y , hq
i“1
avec ˜ ¸
q
ÿ
ris rjs
k pt, y , hq “ f t ` hai , y ` h bi,j k pt, y , hq , 1 ď i ď q
j“1
que l'on peut représenter sous la forme d'un tableau dit tableau de Butcher :
a B
(3.18)
ct
avec B “ pbi,j qi,jPv1,qw P Mq, qpRq, a “ pai qiPv1,qw P Rq et c “ pci qiPv1,qw P Rq
3. Une méthode de Runge-Kutta est d'ordre 1 (et donc consistante) si elle est d'ordre 0 et si
q
ÿ
ci “ 1.
i“1
5. Une méthode de Runge-Kutta est explicite si la matrice B est triangulaire inférieure à diagonale
nulle :
@pi, jq P v1, qw, j ě i, bij “ 0.
Pour la méthode de Runge-Kutta d'ordre 2, la fonction Φ associée au schéma général (3.16) est donnée
par
h h
Φ pt, y , hq “ p1 ´ αqff pt, y q ` αff pt ` ,y ` f pt, y qq.
2α 2α
‚ Avec α “ 12 , on obtient la méthode de Heun :
h h ´ ¯
y rn`1s “ y rns ` f ptn , y rns q ` f tn`1 , y rns ` hff ptn , y rns q .
2 2
3.5.Méthodes de Runge-Kutta
‚ Avec α “ 1, on obtient la méthode d'Euler modiée ou méthode du point milieu:
ˆ ˙
rn`1s rns n h rns h n rns
y “y ` hff t ` , y ` f pt , y q .
2 2
Exercice 3.5.1
la méthode de Heun est donnée par
h h ´ ¯
y rn`1s “ y rns ` f ptn , y rns q ` f tn`1 , y rns ` hff ptn , y rns q .
2 2
Q. 1 Ecrire la fonction algorithmique REDHeunVec permettant de résoudre un problème de Cauchy
(vectoriel par la méthode de Heun en utilisant au plus 2N évaluation de f .
Q. 2 Ecrire un programme algorithmique permettant de retrouver numériquement l'ordre de cette
méthode.
h n
y rn`1s “ y rns ` pkk ` k n2 q
2 1
avec
k n1 “ f ptn , y rns q
k n2 “ f ptn`1 , y rns ` hkk 1 q
Algorithme 3.5 Fonction REDHeunVec : résolution d'un problème de Cauchy par le schéma de Heun
3.5.2 Formules explicites de Runge-Kutta d'ordre 2
2:
3: h Ð pb ´ aq{N
4: Y p:, 1q Ð y 0
5: Pour n Ð 1 à N faire
6: k 1 Ð f pttpnq, Y p:, nqq
7: k 2 Ð f pttpn ` 1q, Y p:, nq ` hkk 1 q
8: Y p:, n ` 1q Ð Y p:, nq ` ph{2q ˚ pkk 1 ` k 2 q
9: Fin Pour
10: Fin Fonction
Q. 2 Il est possible de vérier/retrouver numériquement l'ordre du schéma de Heun. Pour celà on choisi
un problème de Cauchy dont la solution exacte est connue et on calcule pour diérentes valeurs de h (et
3.5. Méthodes de Runge-Kutta
donc diérentes valeurs de N ) le maximum de l'erreur commise entre la solution exacte et la solution
numérique donnée par le schéma de Heun :
› ›
Ephq “ max ›yy ptn q ´ y rns ›
› ›
nPv0,N w
On représente ensuite la fonction h ÞÑ Ephq. La méthode de Heun étant d'ordre 2, on a alors Ephq “
Oph2 q « Ch2 quand h est susament petit. On utilise alors une échelle logarithmique pour représenter
la courbe. En eet, on a
log Ephq « logpCh2 q “ logpCq ` 2 logphq
Y « logpCq ` 2X
qui est l'équation d'une droite. La pente de cette droite est donc l'ordre de la méthode.
1: t0 Ð 0, T Ð 4π,
2: f : t, z ÝÑ cosptq ` 1, yex : t ÝÑ sinptq ` t
3: y 0 Ð yex pt0 q
4: LN Ð 100 : 50 : 1000
5: nLN Ð lengthpLN q
6: H Ð 0nLN , Ź pour stocker les h
7: E Ð 0nLN , Ź pour stocker les erreurs
8: Pour k Ð 1 à nLN faire
9: N Ð LN pkq
10: rt, ys Ð REDHeunVecpf, t0 , T, y 0 , N q
11: Epkq Ð maxpabspy ´ yex ptqqq
12: Hpkq Ð T {N
13: Fin Pour
14: ... Ź Representation graphique
1e+0
Erreur avec h=2/(20imes T), N=20
Euler (ordre 1.000)
0.04
0.02 O(h^2)
0.015
0.01 1e-2
0.005
0
0 2 4 6 8 10 12 14
E(h)
t
1e-3
0.00015 1e-5
0.0001
5e-05
0 1e-6
0 2 4 6 8 10 12 14 1e-2 1e-1 1e+0
t h
Figure 3.10: Méthode de Heun : vérication numérique de l'ordre et comparaison avec la méthode d'Euler
progressive
Les méthodes d'ordre p ą 1 sont plus précises que la méthode d'Euler, et d'autant plus que p augmente.
On se limite dans la pratique à p “ 4. Cette méthode est connue sous le nom de Runge-Kutta 4. On peut
noter que pour ces méthodes le pas peut être adapté à chaque itération.
3.5.Méthodes de Runge-Kutta
3.5.3 Méthodes de Runge-Kutta d'ordre 4
La méthode explicite la plus utilisée est donnée par le tableau de Buchler suivant
0 0 0 0 0
1{2 1{2 0 0 0
1{2 0 1{2 0 0 (3.20)
1 0 0 1 0
1{6 2{6 2{6 1{6
Ce qui donne le schéma explicite de Runge-Kutta d'ordre 4 :
rns
k1 “ f ptn , y rns q
rns rns
k2 “ f ptn ` h2 , y rns ` h2 k 1 q
k3
rns
“
rns
f ptn ` h2 , y rns ` h2 k 2 q (3.21)
rns rns
k4 “ f ptn ` h, y rns ` hkk 3 q
rns rns rns rns
y rn`1s “ y rns ` h6 pkk 1 ` 2kk 2 ` 2kk 3 ` k 4 q.
Exercice 3.5.2
la méthode de Runge-Kutta d'ordre 4 est donnée par
rns
k1 “ f ptn , y rns q
rns rns
k2 “ f ptn ` h2 , y rns ` h2 k 1 q
rns rns
k3 “ f ptn ` h2 , y rns ` h2 k 2 q
rns n rns rns
k4 “ f pt ` h, y ` hkk 3 q
rns rns rns rns
y rn`1s “ y rns ` h6 pkk 1 ` 2kk 2 ` 2kk 3 ` k 4 q.
Pour minimiser l'occupation mémoire de l'ordinateur, à chaque itération, on calcule k 1 Ð k rns n rns
1 pt , y q,
... k 4 Ð k 4 pt , y q. L'algorithme de la fonction REDRK4Vec s'écrit alors :
rns n rns
Algorithme 3.6 Fonction REDRK4Vec : résolution d'un problème de Cauchy par le schéma de RK4
Données : f : f : rt0 , t0 ` T s ˆ Rd ÝÑ Rd fonction d'un
problème de Cauchy (scalaire)
t0 : réel, temps initial
T : réel ą 0
y 0 : un vecteur de Rd , donnée initiale
3. Introduction à la résolution d'E.D.O.
8:
Q. 2 voir aussi correction Exercice 3.5.1-Q2 : l'ordre 2 étant remplacé par 4 ici! Il est possible de
vérier/retrouver numériquement l'ordre du schéma de Runge-Kutta 4. Pour celà on choisi un problème
de Cauchy dont la solution exacte est connue et on calcule pour diérentes valeurs de h (et donc diérentes
valeurs de N ) le maximum de l'erreur commise entre la solution exacte et la solution numérique donnée
par le schéma de Runge-Kutta 4 :
› ›
Ephq “ max ›yy ptn q ´ y rns ›
› ›
nPv0,N w
Y « logpCq ` 4X
qui est l'équation d'une droite. La pente de cette droite est donc l'ordre de la méthode.
1: t0 Ð 0, T Ð 4π,
2: f : t, z ÝÑ cosptq ` 1, yex : t ÝÑ sinptq ` t
3: y 0 Ð yex pt0 q
4: LN Ð 100 : 50 : 1000
5: nLN Ð lengthpLN q
6: H Ð 0nLN , Ź pour stocker les h
Ź pour stocker les erreurs
1e-4
3e-05 O(h^3)
2e-05 O(h^4)
3.5.Méthodes de Runge-Kutta
1e-5
1e-05
0 1e-6
0 2 4 6 8 10 12 14
t
E(h)
1e-7
5e-09 1e-9
4e-09
Error
3e-09 1e-10
2e-09
1e-11
1e-09
0 1e-12
0 2 4 6 8 10 12 14 1e-2 1e-1 1e+0
t h
Lorsque l'on diminue encore le pas on obtient la Figure 3.12. L'erreur engendrée par la méthode de
Runge-Kutta 4 se stabilise autour de la valeur 1e ´ 14 : la précision machine est atteinte!
O(h^2)
1e-5
O(h^3)
1e-6 O(h^4)
1e-7
1e-8
E(h)
1e-9
1e-10
1e-11
1e-12
1e-13
1e-14
1e-3 1e-2 1e-1
h
Figure 3.12: Méthode de Runge-Kutta 4 : vérication numérique de l'ordre avec précision machine
atteinte
De manière évidente, ces méthodes à pas multiples posent des problèmes de démarrage: ici, on ne
peut calculer directement y r1s . Les premières valeurs doivent être calculées par un autre schéma.
3.6.2 Le principe
Dans tous les schémas présentés, la valeur de y rn`1s était déterminée à chaque pas de façon explicite en
fonction uniquement du point y rns . On peut tenir compte de plusieurs valeurs y ris précédemment calculées
3.6. Méthodes à pas multiples
3.6.2 Le principe
La méthode à pas multiples est stable, si
1. toutes les racines de P sont de module inférieur ou égal à 1,
Remarque 3.24 Pour obtenir, à partir d'un schéma à k pas, un schéma d'ordre p il faut obligatoirement
initialiser les k premièrs termes pyy rns qk´1
n“0 à l'aide d'un schéma d'ordre p au moins pour conserver l'ordre.
Nous allons maintenant donner quelques schémas explicites et implicites à pas multiples développer
par :
John Couch Adams 1819-1892, Francis Bashforth 1819-1912, (a) Forest Ray Moulton 1872-
Exercice 3.6.1
La méthode de Adam-Bashforth d'ordre 4 explicite est donnée par
´ ¯
y rn`1s “ y rns ` h
24 55ff rns ´ 59ff rn´1s ` 37ff rn´2s ´ 9ff rn´3s . (3.27)
1: Y p:, 1q Ð y 0
2: Pour n Ð 1 à 3 faire
3: k 1 Ð f pttpnq, Y p:, nqq
4: k 2 Ð f pttpnq ` h{2, Y p:, nq ` ph{2qkk 1 q
5: k 3 Ð f pttpnq ` h{2, Y p:, nq ` ph{2qkk 2 q
6: k 4 Ð f pttpnq ` h, Y p:, nq ` hkk 3 q
7: Y p:, n ` 1q Ð Y p:, nq ` ph{6q ˚ pkk 1 ` 2kk 2 ` 2kk 3 ` k 4 q
8: Fin Pour
Algorithme 3.7 Fonction REDAB4Vec : résolution d'un problème de Cauchy par le schéma explicite
d'Adams-Bashforth d'ordre 4
Données : f : f : rt0 , t0 ` T s ˆ Rd ÝÑ Rd fonction d'un
problème de Cauchy (scalaire)
t0 : réel, temps initial
T : réel ą 0
y 0 : un vecteur de Rd , donnée initiale
N : un entier non nul (nombre de pas de discrétisation).
Résultat : t : vecteur de RN `1 , tpnq “ tn´1 , @n P v1, N ` 1w
Y : matrice réelle de dimension d ˆ pN ` 1q, Y p:, nq “ y pn´1q , @n P v1, N ` 1w
2: t Ð DisRegpt0 , t0 ` T, N q
3: h Ð pb ´ aq{N
4: rttini , Y ini s Ð REDRK4Vecpf, t0 , t0 ` 3 ˚ h, y 0 , 3q
5: Pour n Ð 1 à 4 faire
6: Y p:, nq Ð Y ini p:, nq
7: Fin Pour
Ces schémas sont implicites et leur ordre correspond au nombre de pas plus un.
‚ Prédiction : on calcule une approximation de y ptn`1 q notée y rn`1s à l'aide du schéma explicite
‚ Correction : on utilise le schéma implicite dans lequel les fonctions f utilisant y rn`1s sont rem-
placées par les fonctions f utilisant y rn`1s .
1: Pour n Ð 0 à N faire
2: y rn`1s Ð donné par un schéma explicite
3: y rn`1s Ð donné par un schéma implicite, inconnue y rn`1s remplacée par y rn`1s
4: Fin Pour
Exemple
3.6.5 Schéma prédicteur-correcteur
Choisissons la méthode d'Euler explicite pour prédicteur et la méthode implicite des trapèzes comme
correcteur.
Euler explicite : y rn`1s “ y rns ` hff ptn , y rns q
Trapèze implicite : y rn`1s “ y rns ` h2 pff ptn , y rns q ` f ptn`1 , y rn`1s qq
On obtient :
Prédiction
"
y rn`1s “ y rns ` hff ptn , y rns q
y rn`1s “ y rns ` h2 pff ptn`1 , y rn`1s q ` f ptn , y rns qq Correction
3. Introduction à la résolution d'E.D.O.
Remarque 3.25 On retrouve ici, pour ce cas simple, une formule de Runge-Kutta 2.
En pratique, on peut utiliser un schéma d'Adams explicite (voir section 3.6.3) pour la prédiction et
un autre implicite (voir section 3.6.4) pour la correction.
Exercice 3.6.2
On pose f rns “ f ptn , y rns q. La méthode de Adams-Bashforth d'ordre 4 explicite est donnée
par
h ´ ¯
3.6. Méthodes à pas multiples
y rn`1s “ y rns ` 55ff rns ´ 59ff rn´1s ` 37ff rn´2s ´ 9ff rn´3s
24
et la méthode de Adams-Moulton d'ordre 4 implicite par
h ´ rn`1s ¯
y rn`1s “ y rns ` 9ff ` 19ff rns ´ 5ff rn´1s ` f rn´2s
24
h ´ ¯
ŷ rn`1s “ y rns ` 55ff rns ´ 59ff rn´1s ` 37ff rn´2s ´ 9ff rn´3s
24
Algorithme 3.8 Fonction REDPreCor4Vec : résolution d'un problème de Cauchy par prédiction-
correction (Adams-Bashforth/Adams-Moulton) d'ordre 4
Données : f : f : rt0 , t0 ` T s ˆ Rd ÝÑ Rd fonction d'un
problème de Cauchy (scalaire)
t0 : réel, temps initial
T : réel ą 0
y 0 : un vecteur de Rd , donnée initiale
N : un entier non nul (nombre de pas de discrétisation).
Résultat : t : vecteur de RN `1 , t pnq “ tn´1 , @n P v1, N ` 1w
Y : matrice réelle de dimension d ˆ pN ` 1q, Y p:, nq “ y pn´1q , @n P v1, N ` 1w
• son coût pour obtenir une précision donnée (c'est à dire le nombre d'évaluations de fonctions par
étapes).
• sa stabilité.
La caractéristique des méthodes de Runge-Kutta est que le pas est assez facile à adapter, la mise en
oeuvre informatique plus aisée. Mais pour des méthodes du même ordre de consistance, les méthodes de
Runge-Kutta exigent plus d'évaluations de fonctions. Quand on sait que la solution de l'équation n'est
pas sujette à de brusques variations de la dérivée, on prendra une méthode de type prédicteur-correcteur
mais, si le pas doit être adapté plus précisément, on préfèrera une méthode de Runge-Kutta.
3.7 Applications
3.7.1 Modèle de Lorentz
On rappelle le modèle de Lorentz (3.7.1) ( voir section 3.1.1)
$ 1
& x ptq “ ´σxptq ` σyptq
y 1 ptq “ ´xptqzptq ` ρxptq ´ yptq
% 1
z ptq “ xptqyptq ´ βzptq
avec σ “ 10, ρ “ 28, β “ 8{3 et les données initales xp0q “ ´8, yp0q “ 8 et zp0q “ ρ ´ 1. On souhaite
représenter l'attracteur étrange de Lorentz pour t P r0, 100s (Papillon, Figure 3.3) où la résolution du
système d'EDO se fera à l'aide d'une des fonctions que nous avons écrite et résolvant un problème de
Cauchy vectoriel (par exemple la fonction REDRK4Vec donnée par l'Algorithme 3.6, page 40)
La première chose est d'écrire (sur le papier) le problème de Cauchy correspondant à notre problème.
Ici on a un système de 3 EDO d'ordre 1 et donc m “ 3 dans la Dénition 3.5. On prend t0 “ 0 et
T “ 100. Soit y la fonction vectorielle
y : r0, 100s ÝÑ R3 ¨ ˛
y1 ptq
t Þ Ñ y ptq “ ˝y2 ptq‚
Ý
y3 ptq
¨ ˛
xptq
y ptq “ ˝yptq‚
zptq
3. Introduction à la résolution d'E.D.O.
1 function w=f L o r e n t z ( t , z , b e t a , r h o , s i g m a )
5 end
1 clear all
2 close all
4
5 sigma =10; r h o =28; b e t a =8/3;
7
8 y0 = [ ´8;8; rho ´ 1 ] ;
9 [ t , Y]= redRK4Vec ( f C a u c h y , 0 , 1 0 0 , y0 , 1 0 0 0 0 ) ;
10
11 figure (1)
12 p l o t 3 (Y ( 1 , : ) ,Y ( 2 , : ) ,Y ( 3 , : ) )
17 subplot (3 ,1 ,1)
18 p l o t ( t ,Y( 1 , : ) ) ;
21 p l o t ( t ,Y( 2 , : ) ) ;
24 p l o t ( t ,Y( 3 , : ) ) ;
10
-10
50
-20
0 20 40 60 80 100
t
40
30
20
30
10
y(t)
z(t)
0
20 -10
-20
-30
10 0 20 40 60 80 100
t
0 50
30 40
20 30
z(t)
20
10 20
0 10
10
3.7.Applications
y(t) -10 0
x(t) 0
-20 -10 0 20 40 60 80 100
-30 -20 t
Figure 3.14: Attracteur étrange de Lorentz (gauche) et les trois courbes xptq, yptq et pzptq (droite)
Pierre-Simon Laplace 1749-1827, Siméon Denis Poisson 1781-1840, Jean-Baptiste Joseph Fourier
mathématicien, astronome, physi- mathématicien, géomètre et 1768-1830, mathématicien et
Jean-Baptiste le Rond d'Alembert Leonhard Euler 1707-1783, math- Daniel Bernoulli 1700-1783,
français
´∆u “ f, (4.1)
52 Introduction à la résolution d'E.D.P.
Bu
“ g, sur ΓN Ă BΩ. (4.3)
Bn
où Bu
Bn
grad u, n y avec n normale exterieure unitaire à Ω
“ xgrad
Introduction à la résolution d'E.D.P.
Bu
` αu “ g, sur ΓR Ă BΩ. (4.4)
Bn
Comme première application, on cherche à déterminer le potentiel u (exprimé en volt) dans un "con-
densateur" 2D décrit par le problème suivant :
4.
4.1. Exemples d'EDP
Problème de condensateur en 2D
Find u : Ω ÝÑ R such that
´∆u “ 0 in Ω Ă R2 ,
u “ 0 on Γ10 ,
u “ ´1 on Γ2 Y Γ3,
u “ 1 on Γ1 Y Γ4,
où Ω et ses frontières sont représentés en Figure 4.2 (haut). Une solution numérique de ce problème
utilisant un schéma aux diérences nies d'ordre 2 est représentée en Figure 4.2 (bas).
B2 u B2 u
˚ Dans Rn , on a ∆u “ Bx2
` ... ` Bx2
.
1 n
!1 !2
!10
!3 !4
Frontières du domaine Ω
0.8
0.4
0.2
-0.2
-0.6
-0.8
Comme second problème, on cherche à construire un champ de vitesses V obtenu à partir d'un
potentiel u, c'est à dire tel que V “ ∇ u: avec u solution du problème suivant
Champ de vitesses en 2D 4.
Trouver u : Ω ÝÑ R tel que 4.1.Exemples d'EDP
´∆u “ 0 dans Ω Ă R2 ,
u “ ´1 sur Γ2 Y Γ3,
u “ 1 sur Γ1 Y Γ4,
Bu
“ 0 sur Γ10 .
Bn
Le champ de vitesses V associé est donné par V “ ∇ u
où Ω et ses frontières sont identiques à l'exemple précédant (voir Figure 4.2 haut). Une solution numérique
de ce problème utilisant un schéma aux diérences nies d'ordre 2 est représentée en Figure 4.3. Le champ
de vecteurs qui en découle est visible en Figure 4.4.
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
0.8
6
0.6
4.1.3 Equation de la chaleur
5
0.4
0.2
4
4. Introduction à la résolution d'E.D.P.
3
-0.2
-0.4
2
-0.6
1
-0.8
L'équation de la chaleur est une équation aux dérivées partielles décrivant le phénomène physique de
conduction thermique. Elle a été initialement introduite par Jean Baptiste Joseph Fourier (voir son livre
Théorie analytique de la chaleur paru en 1822).
Soit Ω un domaine de Rd de frontière BΩ et upt, x q un champ de température sur ce domaine. En
présence d'une source thermique dans le domaine, et en l'absence de transport de chaleur (convection),
l'équation de la chaleur s'écrit :
Bu f pt, x q
x P Ω, @t P r0, T s,
@x pt, x q ´ D∆upt, x q “ (4.5)
Bt ρc
Pour que le problème soit mathématiquement bien posé, il faut en général spécier :
‚ des conditions aux limites sur le bord du domaine, par exemple de type
Neumann :
Bu
x P ΓN Ă BΩ, @t P r0, T s D
@x pt, x q “ gN pt, x q
Bn
Robin :
Bu
x P ΓR Ă BΩ, @t P r0, T s D
@x pt, x q ` αupt, x q “ gN pt, x q
Bn
4.1.Exemples d'EDP
Problème de chaleur en 2D
Find u : Ω Ă R2 ÝÑ R such that
Bu
´ D∆u “ 0 in r0, T s ˆ Ω,
Bt
up0, x q “ x P Ω,
20 @x
Bu
“ 0 on Γ10 ,
Bn
u “ g1 on Γ2 Y Γ3,
u “ g2 on Γ1 Y Γ4,
Deux solutions numériques de ce problème utilisant un schéma aux diérences nies d'ordre 2 est
représentée en Figure 4.5 l'une pour l'aluminium (gures de gauche) et l'autre pour le plomb (gure de
droite).
4.1.4 Equation des ondes
4. Introduction à la résolution d'E.D.P.
4.1. Exemples d'EDP
Figure 4.5: Equation de la chaleur : solutions aux temps t “ 10psq (haut), t “ 40psq (milieux), t “ 40psq
(bas), pour l'aluminium (gauche) et le plomb (droite)
ondes tridimensionnelles.
L'équaton des ondes s'écrit Soit Ω un domaine de Rd de frontière BΩ et upx, tq une onde solution de
l'équation des ondes suivante
B2 u
x P Rn , @t P r0, T s,
@x pt, x q ´ c2 ∆upt, x q “ 0 (4.7)
Bt2
où c ą 0 correspond à la vitesse de propagation de l'onde dans le milieu considéré (par exemple, dans le
cas d'une onde sonore c est la célérité du son : 343m{s dans l'air à 20o )
Pour que le problème soit mathématiquement bien posé, il faut imposer des conditions initiales :
‚ position initiale
x P Ω,
@x xq
up0, x q “ u0 px (4.8)
‚ vitesse initiale
Bu
x P Ω,
@x xq
p0, x q “ v0 px (4.9)
Bt
Dans le cas d'un domaine borné Ω Ă Rn , il faut imposer des conditions aux limites, par exemple de
type
‚ Dirichlet :
x P ΓD Ă BΩ, @t P r0, T s upt, xq “ gD pt, xq
@x
‚ Neumann :
Bu
x P ΓN Ă BΩ, @t P r0, T s c2
@x pt, x q “ gN pt, x q
Bn
‚ Robin :
4.3.Dénitions
Par exemple, l'équation de convection (appelée aussi advection) est régie par
BC BC
`α “0 (4.10)
Bt Bx
La fonction recherchée est C et les variables indépendantes sont le temps t et l'espace x. La grandeur α
(homogène à une vitesse) peut être fonction de t, x et C.
L'ordre d'une EDP est l'ordre le plus élevé parmi toutes les dérivées partielles de l'EDP. Dans
l'exemple précédant, l'EDP (4.10) est d'ordre 1. Par contre, l'EDP suivante
BC BC B2 C
`α ´β 2 “0 (4.11)
Bt Bx Bx
est une EDP d'ordre 2.
On dit qu'une EDP est lineaire si elle ne fait intervenir que des combinaisons linéaires des dérivées
partielles de la variable dépendante. On dit qu'une EDP est quasi-linéaire si elle est linéaire par rapport
aux dérivées d'ordre le plus élevé. Par exemple, l'EDP :
B2 u B2 u B2 u
a 2
`b `c 2 “d
Bx BxBy By
1
pDh` ϕqpxq “ pϕpx ` hq ´ ϕpxqq (4.12)
h
1
pDh´ ϕqpxq “ pϕpxq ´ ϕpx ´ hqq (4.13)
h
1
pDh0 ϕqpxq “ pϕpx ` hq ´ ϕpx ´ hqq (4.14)
2h
4. Introduction à la résolution d'E.D.P.
Les opérateurs Dh0 , Dh` et Dh´ s'appellent respectivement opérateur (aux diérences nies)
centré, opérateur (aux diérences nies) progressif/décentré avancé et opérateur (aux dif-
férences nies) rétrograde/décentré retardé.
4.4. Méthodes de résolution numérique d'EDP
Denition 4.1
Soit h ą 0. On dit qu'un opérateur aux diérences nies Dh est une approximation consistante
k
d'ordre p de ddxϕk si pour tout ϕ : ra, bs ÝÑ R susament régulière on a
ˇ ˇ
dk ϕ ˇˇ
(4.15)
ˇ
max pDh ϕqpxq ´ k pxqˇ ď Chp ,
ˇ
xPra,bs ˇ dx
Exercice 4.4.1
Soient h ą et les trois opérateurs aux diérences nies suivant
1
pDh` ϕqpxq “ pϕpx ` hq ´ ϕpxqq
h
1
pDh´ ϕqpxq “ pϕpxq ´ ϕpx ´ hqq
h
1
pDh0 ϕqpxq “ pϕpx ` hq ´ ϕpx ´ hqq
2h
Q. 1 Monter que ces trois opérateurs sont linéaires (i.e. @pλ, µq P R2 , @ϕ : R ÝÑ R, @ψ : R ÝÑ R,
Dh pλϕ ` µψq “ λDh ϕ ` µDh ψ.)
Q. 2 On suppose que ϕ P C k pra, bs; Rq avec k ě 2. Montrer que les opérateurs Dh` et Dh´ sont des
approximations consistantes d'ordre 1 de dϕ
dx .
Q. 3 On suppose que ϕ P C k pra, bs; Rq avec k ě 3. Montrer que l'opérateur Dh0 est une approximation
consistante d'ordre 2 de dϕ
dx .
4.4.1 Dimension 1
pλϕ ` µψqpxq ´ pλϕ ` µψqpx ´ hq
pDh´ pλϕ ` µψqqpxq “
h
pλϕpxq ` µψpx ` hqq ´ pλϕpx ´ hq ` µψpx ´ hqq
“
h
ϕpxq ´ ϕpx ´ hq ψpxq ´ ψpx ´ hq
Q. 2 • A l'aide d'un développement de Taylor à l'ordre 2, il existe ξi` Psx, x ` hr tel que
dϕ h2 d2 ϕ `
ϕpx ` hq “ ϕpxq ` h pxq ` pξ q
dx 2! dx2
On en déduit alors
dϕ ϕpx ` hq ´ ϕpxq h d2 ϕ `
pxq “ ´ pξ q
dx h 2 dx2
Ce qui donne
dϕ h d2 ϕ `
pxq ´ pDh` pϕqqpxq “ ´ pξ q
dx 2 dx2
On obtient donc
ˇ ˇ
ˇ dϕ ˇ h d2 ϕ
max ˇˇ pxq ´ pDh` pϕqqpxqˇˇ ď max | 2 pξq|
xPra,bs dx 2 ξPsx,x`hr dx
h d2 ϕ
ď max | 2 pxq| “ Ch.
2 xPra,bs dx
D'après la Dénition 4.1, l'opérateur Dh` est une approximation consistante d'ordre 1 de ϕ1 .
• A l'aide d'un développement de Taylor à l'ordre 2, il existe ξi´ Psx ´ h, xr tel que
dϕ p´hq2 d2 ϕ ´
ϕpx ´ hq “ ϕpxq ´ h pxq ` pξ q
dx 2! dx2
On en déduit alors
dϕ ϕpxq ´ ϕpx ´ hq h d2 ϕ ´
pxq “ ` pξ q
dx h 2 dx2
Ce qui donne
dϕ h d2 ϕ ´
pxq ´ pDh´ pϕqqpxq “ pξ q
dx 2 dx2
On obtient donc
ˇ ˇ
ˇ dϕ ´
ˇ h d2 ϕ
max ˇ pxq ´ pDh pϕqqpxqˇˇ ď
ˇ max | 2 pξq|
xPra,bs dx 2 ξPsx´h,xr dx
h d2 ϕ
ď max | 2 pxq| “ Ch.
2 xPra,bs dx
D'après la Dénition 4.1, l'opérateur Dh´ est une approximation consistante d'ordre 1 de ϕ1 .
Q. 3 A l'aide de deux développements de Taylor à l'ordre 3, il existe ξ ` Psx, x ` hr tel que
dϕ h2 d2 ϕ h3 d3 ϕ `
ϕpx ` hq “ ϕpxq ` h pxq ` pxq ` pξ q
4.4.1 Dimension 1
dx 2! dx2 3! dx3
et il existe ξ ´ Psx, x ` hr tel que
dϕ p´hq2 d2 ϕ p´hq3 d3 ϕ ´
ϕpx ´ hq “ ϕpxq ` p´hq pxq ` 2
pxq ` pξ q
dx 2! dx 3! dx3
4. Introduction à la résolution d'E.D.P.
dϕ ϕpx ` hq ´ ϕpx ´ hq h2 d3 ϕ ` d3 ϕ
pxq “ ´ p 3 pξ q ` 3 pξ ´ qq
dx 2h 24 dx dx
Ce qui donne
dϕ h2 d3 ϕ d3 ϕ
pxq ´ pDh0 pϕqqpxq “ ´ p 3 pξ ` q ` 3 pξ ´ qq.
dx 24 dx dx
On obtient donc
ˇ ˇ
ˇ dϕ ˇ h2 d3 ϕ
max ˇˇ pxq ´ pDh0 pϕqqpxqˇˇ ď max | 3 pξq|
xPra,bs dx 12 ξPsx´h,x`hr dx
h2 d3 ϕ
ď max | 3 pxq| “ Ch2 .
12 xPra,bs dx
D'après la Dénition 4.1, l'opérateur Dh0 est une approximation consistante d'ordre 2 de ϕ1 .
˛
On a donc démontré la proposition suivante
Proposition 4.2
Si ϕ : R ÝÑ R est susament régulière, les opérateurs Dh` et Dh´ sont des approximations consis-
tantes d'ordre 1 de dϕ
dx et l'opérateur Dh est une approximation consistante d'ordre 2 de dx .
0 dϕ
Proposition 4.3
Soient ϕ P C 4 pra, bs; Rq. On note Dh2 l'opérateur déni, pour tout x Psa, br et h ą 0 tels que
x ˘ h P ra, bs, par
def 1
pDh2 ϕqpxq “ rϕpx ` hq ´ 2ϕpxq ` ϕpx ´ hqs . (4.16)
h2
d2 ϕ
Alors Dh2 ϕ est une approximation consistante d'ordre 2 de dx2 .
De plus on a
Dh2 ϕ “ D0h pD0h ϕq “ Dh` pDh´ ϕq “ Dh´ pDh` ϕq (4.17)
2 2
d2 ϕ
est une approximation consistante d'ordre 2 de dx2 .
4.4.1 Dimension 1
En les additionnant on a
d2 ϕ h4 d4 ϕ d4 ϕ
ϕpx ` hq ` ϕpx ´ hq “ 2ϕpxq ` h2 2
pxq ` p 4 pξ ` q ` 4 pξ ´ qq
dx 4! dx dx
c'est à dire
d2 ϕ h2 d4 ϕ d4 ϕ
ˆ ˙
1 h h
gpxq “ D0h ϕpxq “ ϕpx ` q ´ ϕpx ´ q .
2 h 2 2
On a alors
ˆ ˙
0 0 0 1 h h
pD h D h ϕqpxq “ pD h gqpxq “ gpx ` q ´ gpx ´ q
2 2 2 h 2 2
ˆ ˙
1 0 h 0 h
“ pD h ϕqpx ` q ´ pD h ϕqpx ´ q
h 2 2 2 2
ˆ ˙
1 ϕpx` hq ´ ϕpxq ϕpxq ´ ϕpx ´ hq
“ ´
h h h
1
“ pϕpx ` hq ´ 2ϕpxq ` ϕpx ´ hqq.
h2
De la même manière, en notant g “ Dh´ ϕ on obtient
gpx ` hq ´ gpxq 1
Dh` Dh´ ϕpxq “ Dh` gpxq “ “ pDh´ ϕpx ` hq ´ Dh´ ϕpxqq
ˆ h h ˙
1 ϕpx ` hq ´ ϕpxq ϕpxq ´ ϕpx ´ hq
“ ´
h h h
1
“ pϕpx ` hq ´ 2ϕpxq ` ϕpx ´ hqq.
h2
4.4.2 Dimension n ě 1
On commence par rappeler une extension du théorème de Taylor-Lagrange :
k“1 i i
Soit ϕ : U Ă Rn ÝÑ R une fonction susament régulière. On note e ris P Rn , i P v1, nw, le i-ème
vecteur de la base canonique de Rn (e ris
j “ 0 si i ‰ j et e i “ 1). Soit x “ px1 , . . . , xn q P R
ris m
et h ą 0 on
déni les opérateurs aux diérences nies suivant
4. Introduction à la résolution d'E.D.P.
1´ ¯
`
pDh,i xq
ϕqpx “ x ` heeris q ´ ϕpx
ϕpx xq (4.19)
h
1´ ¯
´
pDh,i xq
ϕqpx “ xq ´ ϕpx
ϕpx x ´ heeris q (4.20)
h
1 ´ ¯
0
pDh,i xq
ϕqpx “ x ` heeris q ´ ϕpx
ϕpx x ´ heeris q (4.21)
2h
4.4. Opérateurs aux diérences nies
Exercice 4.4.2
Soient ϕ : U Ă R2 ÝÑ R une fonction susament régulière, h ą 0 et les trois opérateurs aux
diérences nies suivant dénis pour i P v1, 2w
` 1´ ¯
pDh,i xq
ϕqpx “ x ` heeris q ´ ϕpx
ϕpx xq
h
´ 1´ ¯
pDh,i xq
ϕqpx “ xq ´ ϕpx
ϕpx x ´ heeris q
h
0 1 ´ ¯
pDh,i xq
ϕqpx “ x ` heeris q ´ ϕpx
ϕpx x ´ heeris q
2h
ˆ ˙ ˆ ˙
1 0
avec e r1s “ et e r2s “ .
0 1
Q. 1 Monter que ces trois opérateurs sont linéaires (i.e. @pλ, µq P R2 , @ϕ : U Ă R2 ÝÑ R,
@ψ : U Ă R ÝÑ R, Dh,i pλϕ ` µψq “ λDh,i ϕ ` µDh,i ψ.)
2
4.4.2 Dimension n ě 1
‚ Montrons que Dh,i
´
est linéaire. On a @xx P R2
Q. 2 Soit h ą 0.
• A l'aide d'un développement de Taylor à l'ordre 2 (voir (4.18)), il existe θ` Ps0, 1r tel que
Bϕ h2 B 2 ϕ
x ` heeris q “ ϕpx
ϕpx xq ` h xq `
px x ` θ` heeris q
px
Bxi 2! Bx2i
On en déduit alors
Bϕ ϕpx xq h B 2 ϕ
x ` heeris q ´ ϕpx
xq “
px ´ x ` θ` heeris q
px
Bxi h 2 Bx2i
Ce qui donne
Bϕ ` h B2 ϕ
xq ´ pDh,i
px xq “ ´
pϕqqpx x ` θ` heeris q
px
Bxi 2 Bx2i
On obtient donc
ˇ ˇ
ˇ Bϕ `
ˇ h B2 ϕ
max ˇˇ xq ´ pDh,i pϕqqpx
px xqˇˇ ď max | 2 pxxq| “ Ch.
x PU Bxi 2 xPU Bxi
D'après la Dénition 4.1, l'opérateur Dh,i
`
est une approximation consistante d'ordre 1 de Bϕ
Bxi .
• A l'aide d'un développement de Taylor à l'ordre 2 (voir (4.18)), il existe θ´ Ps0, 1r tel que
Bϕ p´hq2 B 2 ϕ
x ´ heeris q “ ϕpx
ϕpx xq ´ h xq `
px x ´ θ´ heeris q
px
Bxi 2! Bx2i
On en déduit alors
Bϕ ϕpx x ´ heeris q h B 2 ϕ
xq ´ ϕpx
xq “
px ` x ´ θ´ heeris q
px
Bxi h 2 Bx2i
Ce qui donne
Bϕ ´ h B2 ϕ
xq ´ pDh,i
px xq “
pϕqqpx x ´ θ´ heeris q
px
Bxi 2 Bx2i
On obtient donc
ˇ ˇ
ˇ Bϕ ´
ˇ h B2 ϕ
max ˇˇ xq ´ pDh,i
px xqˇˇ ď
pϕqqpx max | 2 pxxq| “ Ch.
x PU Bxi 2 xPU Bxi
Bϕ h3 B 3 ϕ B3 ϕ
x ` heeris q ´ ϕpx
ϕpx x ´ heeris q “ 2h xq ` p 3 px
px x ` θ` heeris q ` 3 pxx ´ θ´ heeris qq.
Bxi 3! Bxi Bxi
On en déduit alors
Bϕ x ´ heeris q h2 B 3 ϕ
x ` heeris q ´ ϕpx
ϕpx B3 ϕ
xq “ x ` θ` heeris q ` 3 pxx ´ θ´ heeris qq
4.4. Opérateurs aux diérences nies
px ´ p 3 px
Bxi 2h 24 Bxi Bxi
Ce qui donne
Bϕ 0 h2 B 3 ϕ B3 ϕ
xq ´ pDh,i
px xq “ ´ p 3 px
pϕqqpx x ` θ` heeris q ` 3 pxx ´ θ´ heeris qq.
Bxi 24 Bxi Bxi
On obtient donc
ˇ ˇ
ˇ Bϕ 0
ˇ h2 B3 ϕ
max ˇ
ˇ xq ´ pDh,i pϕqqpx
px xqˇˇ ď max | 3 pxxq| “ Ch2 .
xPU Bxi 12 xPU Bxi
Proposition 4.5
Si ϕ : U Ă Rn ÝÑ R est susament régulière, les opérateurs Dh,i
`
et Dh,i
´
sont des approximations
consistantes d'ordre 1 de Bxi et l'opérateur Dh,i est une approximation consistante d'ordre 2 de
Bϕ 0
Bϕ
Bxi .
Proposition 4.6
Soient i P v1, nw, ϕ P C 4 pU Ă Rn ; Rq. On note Dh,i
2
l'opérateur déni, pour tout x P U et h ą 0
vériant x ˘ hee P U, par
ris
def 1 ” ı
2
pDh,i xq “
ϕqpx x
ϕpx ` e
he ris
q ´ x
2ϕpx q ` x
ϕpx ´ e
he ris
q (4.22)
h2
B2 ϕ
Alors Dh,i
2
ϕ est approximation consistante d'ordre 2 de Bx2i
.
De plus, on a
Proof.
Le problème est identique : au lieu de chercher une fonction, on cherche une innité de valeurs! Sur
ordinateur, une innité de valeurs celà fait un peu trop! On va donc se limiter à la recherche de quelques
valeurs en choisissant, par exemple, de calculer la fonction uniquement aux points d'une discrétisation
régulière de l'intervalle ra, bs.
Soit pxi qN
i“0 la discrétisation régulière de l'intervalle ra, bs en N ` 1 points :
b´a
xi “ a ` ih, @i P v0, N w, avec h “ .
N
Du problème (4.27)-(4.29) on en déduit le problème suivant (la réciproque étant fausse) :
Le schéma aux diérences nies associé à ce problème est obtenu en oubliant le Oph2 q et en posant
ui « upxi q. Il est alors donné par :
Il faut noter que l'on aboutit à un système linéaire de N ` 1 équations à N ` 1 inconnues : on peut
donc l'écrire sous forme matricielle chacune des équations correspondant à une ligne du système. On
choisit d'écrire en ligne l du système l'équation portée par le point xl´1 . Pour alléger les écritures on
note que (4.36) peut se récrire
4.5. Méthode des diérences nies (dimension 1 en espace)
h2 α
¨ ˛¨ ˛ ¨ ˛
0 ... ... ... ... 0 0 u0
˚
˚ ´1 µ ´1 0 ... ... 0 0 ‹˚ u
‹˚ 1
‹
‹
˚
˚ f px1 q ‹
‹
˚ 0 ´1 µ ´1 0 ... 0 0 ‹˚ u2
‹˚ ‹ ˚ f px2 q ‹
.. .. .. .. .. ..
˚ ‹ ˚ ‹
. . . . .. ..
˚ ‹˚ ‹ ˚ ‹
˚ 0
def ˚
0 . . ‹˚
.
‹ ˚
.
‹
‹ def
(4.39)
‹˚ ‹ ˚
‹ “ h2 ˚
U “˚
AU ˚ .. .. .. .. .. .. .. ‹“B
.. ..
‹˚
˚ . . . . . . 0 .
‹˚ ‹ ˚
.
‹
‹˚
. ‹ ˚ ‹
˚ ..
˚ ‹˚ ‹ ˚ ‹
˚ .
˚ f px
‹˚ uN ´2
‹˚ ‹ ‹
0 ... 0 1 µ ´1 0 ‹ ˚ N ´2 q ‹
˚ ‹˚ ‹ ˚ ‹
˝ 0 0 ... ... 0 ´1 µ ´1 ‚˝ uN ´1 ‚ ˝ f pxN ´1 q ‚
0 ... ... ... ... ... 0 h2 uN β
on a
max |upxi q ´ ui | “ Oph2 q. (4.40)
iPv0,N w
Exercice 4.5.1
Q. 1 Ecrire la fonction AssembleMat1D retournant la matrice M P Md pRq dénie par
2: M Ð 0d,d
3: Mp1, 1q Ð γ, Mpd, dq Ð γ,
4: Pour i “ 2 à d ´ 1 faire Ź Initialisation de la ligne i
5: Mpi, iq Ð α, Mpi, i ´ 1q Ð β, Mpi, i ` 1q Ð β
6: Fin Pour
7: Fin Fonction
Q. 2 Il nous faut résoudre le système (4.5.2) avec le jeu de données. On peut par exemple écrire la
fonction SolveEDP1 qui a partir du jeu de données et du nombre de discrétisation N va nous retourner
le vecteur solution de (4.5.2).
Algorithme 4.2 Fonction SolveEDP1 : résolution de l'EDP (4.24)-(4.26) par le schéma aux diérences
nies (4.36)-(4.38)
Données : a, b : a ă b,
c : c ą 0,
α, β : deux réels,
f : fonction de ra, bs à valeurs réelles,
N : nombre de discrétisation
Résultat : x : vecteur de RN `1 , discrétisation régulière de l'intervalle ra, bs,
avec N ` 1 points. x pi ` 1q “ xi .
U : vecteur de RN `1 tel que U pi ` 1q « upxi q
4.5.1 EDP stationnaire avec conditions aux limites de Dirichlet
Le code Matlab/Octave correspondant est donné en Listing 4.2. Ensuite on peut utiliser directement
cette fonction avec le jeu de données :
1 function [ x , U]= s o l v e E D P 1 ( a , b , c , a l p h a , b e t a , f , N)
2 h=(b ´a ) /N ;
1 function M=AssembleMat1D ( d , a l p h a , b e t a , gamma ) 3 x=a : h : b ;
5 M( i , i )=a l p h a ; 7 for i = 2 :N
4.5. Méthode des diérences nies (dimension 1 en espace)
7 end 9 end
8 end 10 B=h ∗ h ∗B ;
11 U=A\B ;
Listing 4.1: fonction Matlab/Octave AssembleMat1D 12 end
Q. 3 Nous allons calculer pour diérentes valeurs de N (nombre de discrétisations avec h “ pb ´ aq{N )
l'erreur Ephq commise
Il nous faut donc choisir les données pour avoir une solution analytique. En fait, pour cela, on choisit
une fonction u susament régulière, par exemple upxq “ sinpx2 q, puis on détermine la fonction f par
f pxq “ ´u2 pxq ` cupxq. Avec l'exemple pour u, on obtient ainsi f pxq “ 4x2 sinpx2 q ´ 2 cospx2 q ` sinpx2 q.
Les conditions aux limites sont alors upaq “ sinpa2 q et upbq “ sinpb2 q. Avec c “ 1, l'EDP admettant une
unique solution celle-ci est nécessairement la fonction sinpx2 q!
Comme pour les EDO, la Figure 4.6 permet grâce à une représentation en echelle logarithmique de
retrouver l'ordre 2 du schéma.
1e-3
1e-5
1e-6
1e-3 1e-2 1e-1
h
3 % I n i t i a l i s a t i o n des donnees
4 u e x=@( x ) sin (x.^2) ;
5 c =1;
10 k =1;
11 for N=LN
13 H( k ) =(b ´a ) /N ;
14 E ( k )=max ( a b s ( u e x ( x ) ' ´U) ) ;
15 k=k + 1 ;
16 end
17 % Representation graphique
18 l o g l o g (H , E , 'r <- ' , ' LineWidth ' , 2 )
19 hold on
23 x l a b e l ( 'h ' )
Le démarche à suivre est identique à ce qui a été fait en section précédente. Seul changement, la
condition de Neumann au point xN “ b et donc il nous faut juste modier la dernière ligne du système
linéaire pour prendre en compte cette condition au limite.
On ne peut intégrer directement l'équation u1 pxN q “ β dans le système linéaire. La première idée
consiste à approcher u1 en xN à l'aide de l'opérateur Dh´ denit en (4.16) ( On ne peut utiliser l'opérateur
Dh` car xN ` h est en dehors de l'intervalle d'étude). On a alors
upxN q ´ upxN ´1 q
u1 pxN q “ pDh` uqpxN q ` Ophq “ ` Ophq.
h
Dans le schéma aux diérences nies (4.36)-(4.38), on remplace alors (4.38) par
uN ´ uN ´1
“ β. (4.45)
h
Le système linéaire s'écrit alors en multipliant (4.45) par h2
α
¨ ˛¨ ˛ ¨ ˛
h2 0 ... ... ... ... 0 0 u0
˚ ´1 µ ´1 0 ... ... 0 0 ‹˚ u
1
‹ ˚ f px1 q ‹
4. Introduction à la résolution d'E.D.P.
˚ ‹˚ ‹ ˚ ‹
˚ 0 ´1 µ ´1 0 ... 0 0 ‹˚ u2
‹˚ ‹ ˚ f px2 q ‹
.. ..
˚ ‹ ˚ ‹
˚ .. .. .. .. ‹˚
..
‹ ˚
..
‹
˚
def ˚
0 0 . . . . . . ‹˚
.
‹ ˚
.
‹
‹ def
(4.46)
‹˚ ‹ ˚
‹ “ h2 ˚
U “˚
AU .. .. .. .. .. .. .. ‹˚
.. ..
‹“B
. . . . . . .
˚ ‹˚ ‹ ˚ ‹
˚ 0 ‹˚
. ‹ ˚ . ‹
..
˚ ‹˚ ‹ ˚ ‹
˚ f px
. ‹˚ uN ´2
˚ ‹˚ ‹ ‹
˚ 0 ... 0 1 µ ´1 0 ‹ ˚ N ´2 q ‹
˚ ‹˚ ‹ ˚ ‹
˝ 0 0 ... ... 0 ´1 µ ´1 ‚˝ uN ´1 ‚ ˝ f pxN ´1 q ‚
0 ... ... ... ... 0 ´h h uN β
1e-1
0.25
1e-2
0.2
error(x)
1e-3
0.15
1e-4
0.1
1e-5
0.05
1e-6
1e-7 0
1e-4 1e-3 1e-2 1e-1 0 1 2 3 4 5 6 7
h x
On peut toujours espérer être en ordre 1 au point xN “ b (puisque l'on a approché à l'ordre 1) et être
d'ordre 2 sur les autres points mais ce n'est pas le cas. Il est clair d'après la Figure 4.7b que l'erreur sur
le schéma en xN s'est propagée aux autres points.
Pour retrouver un schéma d'ordre 2, il faut aussi écrire un nouveau schéma d'ordre 2 pour la condition
de Neumann en xN .
Exercice 4.5.2
Soit ϕ une fonction susament régulière et h ą 0
Q. 1 Montrer que
dϕ ´3ϕpxq ` 4ϕpx ` hq ´ ϕpx ` 2hq
pxq “ ` Oph2 q (4.47)
dx 2h
Q. 2 Montrer que
dϕ 3ϕpxq ´ 4ϕpx ´ hq ` ϕpx ´ 2hq
(4.48)
‚ ‚
0 ... ... ... 0 h ´4h 3h uN β
0.0015
1e-3
error(x)
1e-4
0.001
1e-5
0.0005
1e-6
1e-7 0
1e-4 1e-3 1e-2 1e-1 0 1 2 3 4 5 6 7
h x
4. Introduction à la résolution d'E.D.P.
Exercice 4.5.3
Soit le problème suivant
4.5. Méthode des diérences nies (dimension 1 en espace)