Académique Documents
Professionnel Documents
Culture Documents
Méthodes numériques II
Notes de cours
Sup Galilée, Ingénieurs Energétique 1ère année
Francois Cuvelier 3
L.A.G.A./Département de Mathématiques 5
http://www.math.univ-paris13.fr/ „cuvelier 6
7
1
1 Langage Algorithmique 1 2
1.1 Pseudo-langage algorithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3
1.1.1 Données et constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4
1.1.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5
1.1.3 Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6
1.1.4 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7
1.1.5 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8
1.1.6 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 9
1.2 Méthodologie d'élaboration d'un algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . 6 10
1.2.1 Description du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 11
1.2.2 Recherche d'une méthode de résolution . . . . . . . . . . . . . . . . . . . . . . . . 6 12
1.2.3 Réalisation d'un algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 13
1.2.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 14
1.3 Principes de bonne programmation pour attaquer de gros problèmes . . . . . . . . . 9 15
2 Dérivation numérique 11 16
1 3.6.2 Le principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2 3.6.3 Méthodes explicites d'Adams-Bashforth . . . . . . . . . . . . . . . . . . . . . . . . 44
3 3.6.4 Méthodes implicites d'Adams-Moulton . . . . . . . . . . . . . . . . . . . . . . . . . 45
4 3.6.5 Schéma prédicteur-correcteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5 3.7 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6 3.7.1 Modèle de Lorentz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7 4 Introduction à la résolution d'E.D.P. 51
8 4.1 Exemples d'EDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
9 4.1.1 Equation de Laplace et équation de Poisson . . . . . . . . . . . . . . . . . . . . . . 51
10 4.1.2 Equation de convection-diusion stationnaire . . . . . . . . . . . . . . . . . . . . . 54
11 4.1.3 Equation de la chaleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
12 4.1.4 Equation des ondes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
13 4.2 Dénitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
14 4.3 Méthodes de résolution numérique d'EDP . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
15 4.4 Opérateurs aux diérences nies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
16 4.4.1 Dimension 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
17 4.4.2 Dimension n ě 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
18 4.5 Méthode des diérences nies (dimension 1 en espace) . . . . . . . . . . . . . . . . . . . . 65
19 4.5.1 EDP stationnaire avec conditions aux limites de Dirichlet . . . . . . . . . . . . . . 65
20 4.5.2 EDP stationnaire avec conditions aux limites mixtes . . . . . . . . . . . . . . . . . 70
21 4.6 Problème modèle évolutif 1D : équation de la chaleur . . . . . . . . . . . . . . . . . . . . . 76
22 4.6.1 Schéma explicite en temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
23 4.6.2 Schéma implicite en temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
0.0.0
0.TABLE DES MATIÈRES
0.0. TABLE DES MATIÈRES
Chapitre 1
Langage Algorithmique
Pour uniformiser l'écriture des algorithmes nous employons, un pseudo-langage contenant l'indispensable : 3
4
‚ variables, 5
‚ expressions, 7
‚ fonctions. 9
Une donnée est une valeur introduite par l'utilisateur (par ex. une température, une vitesse, ... Une 12
constante est un symbole ou un identicateur non modiable (par ex. π , la constante de gravitation,...) 13
1.1.2 Variables 14
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. 15
2 Langage Algorithmique
1 1.1.3 Opérateurs
2 Opérateurs arithmétiques
3 Opérateurs relationnels
4 Opérateurs logiques
5 Opérateur d'aectation
6 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
7 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 1
prendra la valeur vrai (i.e. 1) si x est plus petit que 3.14. Sinon, elle prendra la valeur faux (i.e. 0) 2
1.1.5 Instructions 3
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) 4
1. Langage Algorithmique
Les exemples qui suivent sont écrits dans un pseudo langage algorithmique mais sont facilement 5
transposable dans la plupart des langages de programmation. 6
1.1.Pseudo-langage algorithmique
Instructions simples 7
1: a Ð 3.14 ˚ R 9
Instructions composées 14
2:
6: ache('en devenir')
7: Fin Si
4 1.1.6 Fonctions
5 Les fonctions permettent
6 • d'automatiser certaines tâches répétitives au sein d'un même programme,
9 • ...
10 Fonctions prédénies
11 Pour faciliter leur usage, tous les langages de programmation possèdent des fonctions prédénies. On
12 pourra donc supposer que dans notre langage algorithmique un grand nombre de fonctions soient prédénies
13 : par exemple, les fonctions mathématiques sin, cos, exp, abs, ¨ ¨ ¨ (pour ne citer quelles)
14 Syntaxe
15 On utilise la syntaxe suivante pour la dénition d'une fonction
16
La fonction se nomme NomFonction . Elle admet comme paramètres d'entrée (données) les m argu- 2
ments arge1 , . . . , argem et comme paramètres de sortie (résultats) les n arguments args1 , . . . , argsn . Ces 3
derniers doivent être déterminés dans le corps de la fonction (partie instructions). 4
Dans le cas ou la fonction n'admet qu'un seul paramètre de sortie, l'écriture se simplie : 5
6
Pour écrire une fonction propre, il faut tout d'abord déterminer exactement ce que devra faire cette 9
fonction. 10
1.1.6 Fonctions
2. Que doit-on calculer ? 13
Et, ensuite il faut la commenter : expliquer son usage, type des paramètres, .... 14
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 17
vérié la validité des données fournies. 18
Exercice 1.1.1
Ecrire un algorithme permettant de valider cette fonction. 19
ax2 ` bx ` c “ 0, (1.1)
Exercice 1.1.2
1.2.3 Réalisation d'un algorithme
Exercice 1.1.3
10 Même question que précédemment dans le cas complexe (solution et coecients).
1. Langage Algorithmique
20 ‚ Simplier le problème.
Il doit être conçu indépendamment du langage de programmation et du système informatique (sauf cas 2
très particulier) 3
‚ L'algorithme doit être eectif : toutes les opérations doivent pouvoir être simulées par un homme 8
en temps ni. 9
Pour écrire un algorithme détaillé, il faut tout d'abord savoir répondre a quelques questions : 10
11
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. 15
1.2.4 Exercices 16
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
˛ 19
20
2 Correction Exercice 1.2.2 L'énoncé de cet exercice est imprécis. On choisi alors z P R et k P N pour
3 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
4 ˛
5
" *
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
9 Maintenant nous pouvons écrire progressivement l'algorithme pour aboutir au nal à une version ne
10 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
π
1
2
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
π
3
Finalement la fonction est 4
Algorithme 1.9 Fonction SFT retournant la valeur de la série de Fourier en t tronquée au n premiers
termes de l'exercice ??.
Données : t : nombre réel,
n : nombre entier strictement positif
A, ω : deux nombres réels.
Résultat : x : un réel.
1. Langage Algorithmique
5:
6: S Ð 4 ˚ A ˚ S{π
7: Fin Fonction
˛ 5
6
Exercice 1.2.4
Reprendre les trois exercices précédents en utilisant les boucles tant que. 7
de gros problèmes 9
Tous les exemples vus sont assez courts. Cependant, il peut arriver que l'on ait des programmes plus 10
longs à écrire (milliers de lignes, voir des dizaines de milliers de lignes). Dans l'industrie, il arrive que des 11
équipes produisent des codes de millions de lignes, dont certains mettent en jeux des vies humaines (con- 12
trôler un avion de ligne, une centrale nucléaire, ...). Le problème est évidemment d'écrire des programmes 13
sûrs. Or, un programme à 100% sûr, cela n'existe pas! Cependant, plus un programme est simple, moins 14
le risque d'erreur est grand : c'est sur cette remarque de bon sens que se basent les bonnes méthodes. 15
Ainsi : 16
17
Tout problème compliqué doit être découpé en sous-problèmes plus simples
1 P2 en P21 , P22 , etc. On poursuit cette analyse jusqu'à ce qu'on n'ait plus que des problèmes élémentaires
2 à résoudre. Chacun de ces problèmes élémentaires est donc traité séparément dans un module, c'est à
3 dire un morceau de programme relativement indépendant du reste. Chaque module sera testé et validé
4 séparément dans la mesure du possible et naturellement largement docummenté. Enn ces modules
5 élémentaires sont assemblés en modules de plus en plus complexes, jusqu'à remonter au problème initiale.
6 A chaque niveau, il sera important de bien réaliser les phases de test, validation et documentation des
7 modules.
l'occupation mémoire, ..
8
1.3.0 Exercices
1.3. Principes de bonne programmation pour attaquer de gros problèmes
1. Langage Algorithmique
Chapitre 2
Dérivation numérique
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 2
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. 3
Soient ttn unPv0,N w une discrétisation régulière de ra, bs et pDyqn une approximation de y 1 ptn q. On 4
appelle 5
yptn`1 q ´ yptn q
pDyqP
n “ , @n P v0, N ´ 1w (2.1)
h
yptn q ´ yptn´1 q
pDyqR
n “ , @n P v1, N w (2.2)
h
yptn`1 q ´ yptn´1 q
pDyqC
n “ , @n P v1, N ´ 1w (2.3)
2h
Pour calculer l'erreur commise par ces approximations, on rappelle le developpement de Taylor- 9
Lagrange 10
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! pr ` 1q!
1 k“1
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
r
f pkq pxq k
(2.6)
ÿ
2.0.
f px ` hq “ f pxq ` h ` Ophr`1 q.
k“1
k!
4 Exercice 2.0.1
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
1
Dérivation numérique
Correction Exercice 3.2.1 2
yptn`1 q ´ yptn q
pDyqP
n “ .
h
D'après la formule de Taylor (2.5), il existe ηPn P rtn , tn`1 s tel que 3
2.
h2 p2q n
yptn`1 q “ yptn q ` h y p1q ptn q ` y pηP q (2.7)
2.0.
2!
d'où 4
yptn`1 q ´ yptn q h
pDyqP
n “ “ y p1q ptn q ` y p2q pηPn q. (2.8)
h 2!
Soit n P v1, N w, on a tn´1 “ tn ´ h et
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 5
p´hq2 p2q n
yptn´1 q “ yptn q ´ h y p1q ptn q ` y pηR q (2.9)
2!
d'où 6
yptn q ´ yptn´1 q h
pDyqR
n “ “ y p1q ptn q ´ y p2q pηR
n
q (2.10)
h 2
2. Soit n P v0, N ´ 1w, comme ηPn P rtn , tn`1 s on a
| y p2q pηPn q| ď max | y p2q ptq|
tPrtn ,tn`1 s
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
2h 12
2. Comme η1n P rtn , tn`1 s Ă rtn´1 , tn`1 s, on en déduit que
| y p3q pη1n q| ď max | y p3q ptq|.
tPrtn´1 ,tn`1 s
tPrtn´1 ,tn`1 s
2.0.
3 ˛
4
Denition 2.4
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
6 Les erreurs de troncature des diérences nies progressive et rétrograde sont d'ordre 1 et l'erreur de
7 troncature de la diérence nie centrée est d'ordre 2.
8 On a démontré le lemme suivant
9 Lemme 2.5
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
2.0.0 Exercices
Dérivation numérique
2. Ecrire une fonction algorithmique permettant, à partir du vecteur F et de la discrétisation
régulière, de calculer le vecteur W précédant.
2
2.
f pt ` hq ´ f ptq f ptq ´ f pt ´ hq
2.0.
“ 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 4
t “ tN (car tN ` h “ b ` h R ra, bs!) et que la formule régressive n'est pas utilisable en t “ t0 (car 5
t0 ´ h “ a ´ h R ra, bs!). Plus précisement, on a 6
f ptn`1 q ´ f ptn q
“ f 1 ptn q ` Ophq, @n P v0, N v, (2.16)
h
f ptn q ´ f ptn´1 q
“ f 1 ptn q ` Ophq, @n Pw0, N w (2.17)
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
def F2 ´ F1
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
5: Fin Pour
Dérivation numérique
6: V pN ` 1q Ð pF pN ` 1q ´ F pN qq{h
7: Fin Fonction
2 D'autres façons de présenter le problème sont possibles mais les données peuvent dièrer de celles de
3 l'énoncé. Par exemple une autre fonction algorithmique pourrait être
a, b : deux réels, a ă b,
N : nombre de pas de discrétisation
Résultat : V : vecteur de RN `1 tel que Vn`1 “ f 1 ptn q ` Ophq
avec ptn qN
n“0 discrétisation régulière de ra, bs.
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
4: V p1q Ð pf ptp2qq ´ f ptp1qq{h
5: Pour i “ 2 à N faire
6: V piq Ð pf ptpi ` 1qq ´ f ptpiqqq{h
7: Fin Pour
8: V pN ` 1q Ð pf ptpN ` 1qq ´ f ptpN qq{h
9: Fin Fonction
f pt ` hq ´ f pt ´ hq
“ f 1 ptq ` Oph2 q.
2h
n`1 n´1
f pt q ´ f pt q
f 1 ptn q “ ` Oph2 q, @nw0, N v. (2.18)
2h
Il reste donc à établir une formule progressive en t0 d'ordre 2 (i.e. une formule utilisant les points 3
t0 , t1 , t2 , ...) et une formule régressive en tN d'ordre 2 (i.e. une formule utilisant les points tN , 4
tN ´1 , tN ´2 , ...). 5
De manière générique pour établir une formule progressive en t d'ordre 2 approchant f 1 ptq, on écrit 6
les deux formules de Taylor aux points t ` h et t ` 2h : 7
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 9
2.0.0 Exercices
´3f ptq ` 4f pt ` hq ´ f pt ` 2hq
“ ` Oph2 q
Dérivation numérique
2h
De la même manière pour établir une formule régressive en t d'ordre 2 approchant f 1 ptq, on écrit 14
les deux formules de Taylor aux points t ´ h et t ´ 2h : 15
2.
‚ il existe ξ1 Pst ´ h, tr tel que
2.0.
16
W : vecteur de RN `1 .
Dérivation numérique
1: Fonction W Ð DeriveOrdre2 ( h, F )
2: W p1q Ð p´3 ˚ F p1q ` 4 ˚ F p2q ´ F p3qq{p2 ˚ hq
3: Pour i “ 2 à N faire
4: W piq Ð pF pi ` 1q ´ F pi ´ 1qq{p2 ˚ hq
5: Fin Pour
6: W pN ` 1q Ð p3 ˚ F pN ` 1q ´ 4 ˚ F pN q ` F pN ´ 1qq{p2 ˚ hq
7: Fin Fonction
2.
D'autres façons de présenter le problème sont possibles mais les données peuvent diérer de celles de
2.0.
3
4 l'énoncé. Par exemple une autre fonction algorithmique pourrait être
˛ 1
2
Pour illustrer l'intéret de monter en ordre, on représente en Figure 2.2 les dérivées numériques calculées 3
avec les fonctions DeriveOrdre1 et DeriveOrdre2 . On peut noter visuellement la meilleur concordance 4
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 5
diérentes courbes sont presque confondues. 6
h=2 π/10
1.5
y=f'(x)
DeriveOrdre1
DeriveOrdre2
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 7
les erreurs entre les dérivées numériques et la dérivée exacte. 8
2.0.0 Exercices
‚ Pour la dérivée d'ordre 1, l'erreur maximale pour h “ est d'environ 0.3 et pour h “ d'environ 2π
10
2π
100 9
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
Dérivation numérique
10
aussi divisée par 10. 11
2.
0.3
0.03
2.0.
0.25
error
error
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
Chapitre 3
Introduction à la résolution d'E.D.O.
3.1 Introduction 2
Les équations diérentielles ordinaires ou E.D.O.˚ sont utilisées pour modéliser un grand nombre de 3
phénomènes mécaniques, physiques, chimiques, biologiques, ... 4
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) 6
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. 7
Mathématiquement, le couplage de l'atmosphère avec l'océan est décrit par le système d'équations aux 9
dérivées partielles couplées de Navier-Stokes de la mécanique des uides. Ce système d'équations était 10
beaucoup trop compliqué à résoudre numériquement pour les premiers ordinateurs existant au temps 11
1 de Lorenz. Celui-ci eut donc l'idée de chercher un modèle très simplié de ces équations pour étudier
2 une situation physique particulière : le phénomène de convection de Rayleigh-Bénard. Il aboutit alors à
3 un système dynamique diérentiel possédant seulement trois degrés de liberté, beaucoup plus simple à
4 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
5
avec σ “ 10, ρ “ 28, β “ 8{3 et les données initales
xp0q “ ´8, yp0q “ 8 et zp0q “ ρ´1. C'est un système
de trois E.D.O. d'ordre 1.
(a) Edward Norton Lorenz 1917-2008, Dans ces équations, σ ,ρ et β sont trois paramètres
Mathématicien et météorologiste améri-
réels.
cain
6 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
7
8 de température vertical par rapport à un prol linéaire (Lorenz 1963 p.135).
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.
13 En représentant, en Figure 3.3, la courbe paramétré pxptq, yptq, zptqq dans l'espace, on obtient l'attracteur
14 é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)
Considérons une population y d'animaux dans un milieu ambient où au plus B animaux peuvent coexister. 2
On suppose que initialement la population soit y0 ăă B et que le facteur de croissance des animaux soit 3
égal à une constante C. Dans ce cas, l'évolution de la population au cours du temps sera proportionnelle 4
au nombre d'animaux existants, sans toutefois que ce nombre ne dépasse la limite B. Cela peut s'exprimer 5
à travers l'équation 6
ˆ ˙
yptq
y 1 ptq “ Cyptq 1 ´ , t ą 0, yp0q “ y0. (3.3)
B
On considère maintenant deux populations, y1 et y2 , où y1 sont les proies et y2 sont les prédateurs. 8
L'évolution des deux populations est alors décrite par le système d'équations diérentielles 9
"
y11 ptq “ C1 y1 ptqr1 ´ b1 y1 ptq ´ d2 y2 ptqs,
(3.4)
y21 ptq “ ´C2 y2 ptqr1 ´ d1 y1 ptqs,
où C1 et C2 sont les facteurs de croissance des deux populations, d1 et d2 tiennent compte de l'interaction 10
entre les deux populations, tandis que b1 est lié à la quantité de nourriture disponible pour la population 11
des proies y1 . Ce système de deux équations diérentielles d'odre 1 est connu comme modèle de Lotka- 12
Volterra. 13
Sous certaines conditions, des réactions chimiques peuvent être oscillantes. Par exemple, le mélange d'une 15 3.
solution de bromate de potassium et d'acide sulfurique avec une solution d'acide manolique et de bromure 16
de sodium peut entrainer une oscillation de la couleur de la solution mélange du rouge au bleue avec une 17
période de 7 secondes. 18
3.1.Introduction
(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
1 Exemple 3.4 Dans cet exemple, on étudie le problème simplié du Bruxelator. Lorsque les réactions
2 de (??) ont des constantes de réactions k1 , . . . , k4 égales respectivement à 1, α ą 0, 1 et 1, et que les
3 concentrations de A et B sont constantes, repectivement égales à 1 et β ą 0, on est alors amené à résoudre
4 l'E.D.O. @t Ps0, T s, "
X 1 ptq “ 1 ` αX 2 ptqY ptq ´ pβ ` 1qXptq
3.1.4 Exemple en chimie : La réaction de Belousov-Zhabotinsky
(3.5)
Y 1 ptq “ ´αX 2 ptqY ptq ` βXptq
5 C'est un système de deux E.D.O. d'ordre 1.
6 Par exemple, avec le jeu de données α “ 1, β “ 3.5 et les contitions initiales Xp0q “ 3 et Y p0q “ 2 on
7 obtient des oscillations :
8
Brusselator simplifie − Concentrations Brusselator simplifie
4.5 4.5
X(t)
Y(t)
4 4
3.5 3.5
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
9 t X(0) X(t)
Brusselator simplifie
8
3.
5
3.1. Introduction
Y(t)
0
0 1 2 3 4 5 6 7 8
10 X(t)
Le pendule pesant le plus simple est constitué d'un petit objet pesant accroché à une tige de masse 2
négligeable devant celle de l'objet. L'autre extrémité de la tige est l'axe de rotation du pendule. On note 3
θptq l'angle que fait le pendule par rapport à l'axe vertical, à un instant t, L la longueur de la tige, M sa 4
masse et g l'accélération de la pesanteur. Ce pendule est représenté en Figure 3.5. 5
θ L
M
g ν
θ2 ptq ` sinpθptqq ` θ1 ptq “ 0, @t Ps0, T s, (3.6)
L M L2
3.1.Introduction
10
L
6 et θ0 “ 0 on obtient
θ0 “ 5π 1
11
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
θ
1
3 Pour résoudre numériquement une E.D.O., nous allons la réécrire sous une forme plus générique : le
4 problème de Cauchy. De très nombreux résultats mathématiques existent sur les problèmes de Cauchy.
5 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.
6 numériques que nous allons étudier auront pour but la résolution d'un problème de Cauchy quelconque.
7 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
Dans de nombreux cas, la variable t représente le temps et les composantes du vecteur y , une 3
famille de paramètres décrivant l'état d'un système matériel donné. L'équation diérentielle (3.8) traduit 4
peut s'écrire sous la forme d'un problème de Cauchy avec t0 “ 0, T “ `8, m “ 1, y r0s “ 0 et
3.2.Problème de Cauchy
f : rt0 , t0 ` T s ˆ R ÝÑ R
? .
pt, vq ÞÝÑ 3
v
Ce problème admet les trois solutions suivantes : yptq “ 0, yptq “ 8t3 {27 et yptq “ ´ 8t3 {27.
a a
9
Le théorème suivant assure l'existence et l'unicité sous certaines conditions. 10
Proposition 3.7 12
Bff
Si pt, y q est continue et bornée, alors f satisfait la condition de Lipschitz (3.10) en y .
1 Byy
Exercice 3.2.2
Pour chacune des E.D.O. suivantes écrire le problème de Cauchy associé
"
x2 ptq ` αx1 ptq ` β cospxptqq “ sinptq, t Ps0, 2πs
paq
xp0q “ 0, x1 p0q “ 1.
$ ˆ
˙ ˆ ˙
L R1
LCv 2 ptq `` R1 C v 1 ptq ` ` 1 vptq “ e, t Ps0, 100s
&
pbq R2 R2
vp0q “ 0, v 1 p0q “ 0.
%
"
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
2
yp0q “ u0 , y p1q p0q “ v0 , y p2q p0q “ w0 .
Correction Exercice
3.2.0 Exemple en mécanique
4 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
5 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 “ .
3. Introduction à la résolution d'E.D.O.
“
y2 ptq x1 ptq
6 On a alors
ˆ ˙ ˆ ˙
1 x1 ptq x1 ptq
y ptq “ “
x2 ptq ´αx1 ptq ´ β cospxptqq ` sinptq
ˆ ˙
y2 ptq
“ “ f pt, y ptqq
´αy2 ptq ´ β cospy1 ptqq ` sinptq
7 Le problème de Cauchy associé est donc
trouver la fonction y : r0, 2πs ÝÑ R2 vériant
3.2. Problème de Cauchy
9 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.
10 d'ordre 2. Pour écrire le problème de Cauchy assosicé, on écrit l'E.D.O. sous la forme d'un système
11 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
12 On a alors
˜ ¸
v 1 ptq
ˆ ˙
1 v 1 ptq
y 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 3
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 4
(voir Proposition 3.3) en prenant m “ 2 et en posant 5
ˆ ˙ ˆ ˙
def y1 ptq xptq
y ptq “ “ .
y2 ptq x1 ptq
On a alors 6
ˆ ˙ ˆ ˙
avec
f : r0, 10s ˆ R2 ÝÑ R
ˆ
2
˙
z2
pt, z q ÞÝÑ
3.2.Problème de Cauchy
µp1 ´ z12 qz2 ´ z1
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 9
3. Pour écrire le problème de Cauchy assosicé, on écrit l'E.D.O. sous la forme d'un système de 3 10
E.D.O. d'ordre 1 (voir Proposition 3.3) en prenant m “ 3 et en posant 11
¨ ˛ ¨ ˛
Y1 ptq yptq
def
Y ptq “ ˝Y2 ptq‚ “ ˝ y 1 ptq ‚.
Y3 ptq y 2 ptq
¨ ˛ ¨ ˛
y 1 ptq y 1 ptq
Y 1 ptq “ ˝y p2q ptq‚ “ ˝ y p2q ptq ‚
p3q p2q p1q
y ptq cosptqy ptq ´ 2 sinptqy ptq ` yptqq
¨ ˛
Y2 ptq
“ ˝ Y3 ptq ‚ “ f pt, Y ptqq
cosptqY3 ptq ´ 2 sinptqY2 ptq ` Y1 ptqq
2 ˛
3
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
9 On note y rns une approximation de yptn q pour n P v0, N w.
10 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.
11
12 De la même manière, la méthode d'Euler régressive est donnée par le schéma
3.3. Diérences nies pour les E.D.O.
"
y rn`1s “ y rns ` hf ptn`1 , y rn`1s q, @n P v0, N ´ 1w
(3.13)
y r0s “ ypt0 q
13 Ce schéma est implicite, car y rn`1s est dénit implicitement en fonction de y rns . Il faut donc résoudre à
14 chaque pas de temps une équation non-linéaire en utilisant des méthodes de point xe par exemple.
15 Exercice 3.3.1
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 3
y : rt0 , t0 ` T s ÝÑ R. 4
Pour résoudre numériquement le problème de Cauchy, on utilise le schéma pSq où les données sont celles 5
du problème de Cauchy plus le nombre de discrétisations N P N˚ On peux alors calculer 6
3.
‚ tn , n P v0, N w qui sont les points de la discrétisation régulière à N intervalles :
3.3.Diérences nies pour les E.D.O.
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
tn “ a ` nh, @n P v0, N w, avec h “ .
N
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
3.3.1 Diérences nies pour le problème de Cauchy en dimension m “ 1
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
1: Fonction rtt, Y s Ð REDEP ( f, t0 , T, y0 , N )
Introduction à la résolution d'E.D.O.
2: t Ð DisRegpt0 , t0 ` T, N q
3: h Ð pb ´ aq{N
4: Y p1q Ð y 0
5: Pour n Ð 1 à N faire
6: Y pn ` 1q Ð Y pnq ` h ˚ f pttpnq, Y pnqq
7: Fin Pour
8: Fin Fonction
z : un réel
Résultat : w : un réel
3.3. Diérences nies pour les E.D.O.
1: Fonction w Ð fCauchy ( t, y )
2: w Ð cosptq ` 1
3: Fin Fonction
˛ 1
2
Exemple 3
3.
La fonction f étant dénie par
f : rt0 , t0 ` T s ˆ Rm ÝÑ Rm ¨ ˛
3.3.Diérences nies pour les E.D.O.
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 “ ˚ ..
y ptq “ ˝ . ‚ . ‚ P Rm
˚ ‹
˝
ym ptq fm pt, y ptqq
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
2 On obtient alors la méthode d'Euler progressive sous forme vectorielle :
3.4.0 Diérences nies pour le problème de Cauchy en dimension m
"
y rn`1s “ y rns ` hff ptn , y rns q, @n P v0, N ´ 1w
(3.14)
y r0s “ y pt0 q
3 Ce schéma est explicite, car il permet le calcul direct de y rn`1s en fonction de y rns .
4 De la même manière, la méthode d'Euler régressive sous forme vectorielle est donnée par le schéma
5 "
y rn`1s “ y rns ` hff ptn`1 , y rn`1s q, @n P v0, N ´ 1w
(3.15)
y r0s “ y pt0 q
6 Ce schéma est implicite, car y rn`1s est dénit implicitement en fonction de y rns .
9
10 On note ptn qN
n“0 la discrétisation régulière de l'intervalle rt , t `T s. Il est toutefois possible de prendre
0 0
11 une discrétisation où le pas n'est pas constant et vériant t “ a ă t1 ă . . . ă tN “ b mais cette possibilité
0
› ›
›yy ´ y ptn q› “ 0
› rns
lim max
›
T
h“ N Ñ0 nPt0,...,N u
16
18 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 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 10
Ephq “ Ophq « Ch quand h est susament petit : la courbe obtenue doit donc être une droite. 11
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
1 Dans la section suivante on étudie une classe de méthodes à un pas très usitées.
4 (3.8)-(3.9).
3. Introduction à la résolution d'E.D.O.
5 3.5.1 Principe
6 Pour simplier, on suppose hn “ h. L'idée fondamentale des méthodes de Runge-Kutta est d'intégrer
7 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
8 en utilisant une formule d'intégration numérique à q points intermédiaires pour évaluer l'intégrale.
9 La fonction Φ associée à une méthode de Runge-Kutta à q évaluations de f peut s'écrire sous la forme
10 : q ÿ
Φ pt, y , hq “ cik ris pt, y , hq
i“1
11 avec ˜ ¸
q
ÿ
ris rjs
k pt, y , hq “ f t ` hai , y ` h bi,j k pt, y , hq , 1 ď i ď q
j“1
12 que l'on peut représenter sous la forme d'un tableau dit tableau de Butcher :
a B
(3.18)
ct
13 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. 1
0 0 0
1
2α
1
2α 0 (3.19)
1´α α
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 4
par 5
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:
ˆ ˙
h rns h n rns
y rn`1s “ y rns ` hff tn ` , y ` f pt , y q .
2 2
Exercice 3.5.1 6
k n1 “ f ptn , y rns q
k n2 “ f ptn`1 , y rns ` hkk 1 q
3 L'algorithme de la fonction REDHeunVec s'écrit alors :
Algorithme 3.5 Fonction REDHeunVec : résolution d'un problème de Cauchy par le schéma de Heun
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.
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
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
4 On représente ensuite la fonction h ÞÑ Ephq. La méthode de Heun étant d'ordre 2, on a alors Ephq “
5 Oph2 q « Ch2 quand h est susament petit. On utilise alors une échelle logarithmique pour représenter
6 la courbe. En eet, on a
log Ephq « logpCh2 q “ logpCq ` 2 logphq
7 En posant X “ logphq et Y “ log Ephq, coordonnées en échelle logarithmique, on a
Y « logpCq ` 2X
8 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 1
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
˛ 2
3
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. 4
On se limite dans la pratique à p “ 4. Cette méthode est connue sous le nom de Runge-Kutta 4. On peut 5
noter que pour ces méthodes le pas peut être adapté à chaque itération. 6
3.5.Méthodes de Runge-Kutta
3.5.3 Méthodes de Runge-Kutta d'ordre 4 7
La méthode explicite la plus utilisée est donnée par le tableau de Buchler suivant 8
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 : 9
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.
4 Pour minimiser l'occupation mémoire de l'ordinateur, à chaque itération, on calcule k 1 Ð k rns n rns
1 pt , y q,
5 ... 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. 2
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
9: N Ð LN pkq
10: rt, ys Ð REDRK4Vecpf, t0 , T, y 0 , N q
11: Epkq Ð maxpabspy ´ yex ptqqq
12: Hpkq Ð T {N
13: Fin Pour
14: ... Ź Representation graphique
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 6
Runge-Kutta 4 se stabilise autour de la valeur 1e ´ 14 : la précision machine est atteinte! 7
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
4
5 De manière évidente, ces méthodes à pas multiples posent des problèmes de démarrage: ici, on ne
6 peut calculer directement y r1s . Les premières valeurs doivent être calculées par un autre schéma.
7 3.6.2 Le principe
8 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
9
10 et ainsi travailler sur un nombre de pas multiples.
Soit y la solution d'un problème de Cauchy (3.8)-3.9 et y rn`ks le terme obtenu par le schéma (3.23)
en prenant y rn`is “ y ptn`i q, @i P v0, k ´ 1w. Alors, l'erreur locale est
› ›
τ pn ` kq “ ›yy ptn`k q ´ y rn`ks › .
› ›
8
3.6.2 Le principe
Propriété 3.22: stabilité schémas à pas multiples (admis)
1 Remarque 3.24 Pour obtenir, à partir d'un schéma à k pas, un schéma d'ordre p il faut obligatoirement
2 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.
3 Nous allons maintenant donner quelques schémas explicites et implicites à pas multiples développer
4 par :
John Couch Adams 1819-1892, Francis Bashforth 1819-1912, (a) Forest Ray Moulton 1872-
h ´ rns ¯
y rn`1s “ y rns ` 3ff ´ f rn´1s . (3.24)
2
h ´ ¯
y rn`1s “ y rns ` 23ff rns ´ 16ff rn´1s ` 5ff rn´2s . (3.25)
12
h ´ ¯
y rn`1s “ y rns ` 55ff rns ´ 59ff rn´1s ` 37ff rn´2s ´ 9ff rn´3s . (3.26)
24
Exercice 3.6.1
3.6. Méthodes à pas multiples
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
1
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
˛ 5
6
h ´ rn`1s ¯
y rn`1s “ y rns ` f ` f rns . (3.28)
2
3 Ces schémas sont implicites et leur ordre correspond au nombre de pas plus un.
9 ‚ 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-
3.6.5 Schéma prédicteur-correcteur
10 ‚
11 placées par les fonctions f utilisant y rn`1s .
12 1: Pour n Ð 0 à N faire
13 2: y rn`1s Ð donné par un schéma explicite
14 3: y rn`1s Ð donné par un schéma implicite, inconnue y rn`1s remplacée par y rn`1s
15 4: Fin Pour
3. Introduction à la résolution d'E.D.O.
16 Exemple
17 Choisissons la méthode d'Euler explicite pour prédicteur et la méthode implicite des trapèzes comme
18 correcteur.
19
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.6. Méthodes à pas multiples
20 Remarque 3.25 On retrouve ici, pour ce cas simple, une formule de Runge-Kutta 2.
21 En pratique, on peut utiliser un schéma d'Adams explicite (voir section 3.6.3) pour la prédiction et
22 un autre implicite (voir section 3.6.4) pour la correction.
23 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 ´ ¯
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
rn`1s
fˆ “ f ptn`1 , ŷ rn`1s
ˆ q ˙
rn`1s
y rn`1s
y “ y y rns ` h
24 9fˆ ` 19ff rns ´ 5ff rn´1s ` f rn´2s
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 , 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
17: k2 Ð k1
18: k1 Ð k0
19: Fin Pour
20: Fin Fonction
1 ˛
2
3.7. Applications
6 • son coût pour obtenir une précision donnée (c'est à dire le nombre d'évaluations de fonctions par
7 étapes).
8 • sa stabilité.
9 La caractéristique des méthodes de Runge-Kutta est que le pas est assez facile à adapter, la mise en
10 oeuvre informatique plus aisée. Mais pour des méthodes du même ordre de consistance, les méthodes de
11 Runge-Kutta exigent plus d'évaluations de fonctions. Quand on sait que la solution de l'équation n'est
12 pas sujette à de brusques variations de la dérivée, on prendra une méthode de type prédicteur-correcteur
13 mais, si le pas doit être adapté plus précisément, on préfèrera une méthode de Runge-Kutta.
3.7 Applications 1
avec σ “ 10, ρ “ 28, β “ 8{3 et les données initales xp0q “ ´8, yp0q “ 8 et zp0q “ ρ ´ 1. On souhaite 3
représenter l'attracteur étrange de Lorentz pour t P r0, 100s (Papillon, Figure 3.3) où la résolution du 4
système d'EDO se fera à l'aide d'une des fonctions que nous avons écrite et résolvant un problème de 5
Cauchy vectoriel (par exemple la fonction REDRK4Vec donnée par l'Algorithme 3.6, page 40) 6
La première chose est d'écrire (sur le papier) le problème de Cauchy correspondant à notre problème. 7
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 8
T “ 100. Soit y la fonction vectorielle 9
y : r0, 100s ÝÑ R3 ¨ ˛
y1 ptq
t Þ Ñ y ptq “ ˝y2 ptq‚
Ý
y3 ptq
f : r0, 100s ˆ R3 ÝÑ R3 ¨ ˛
´σl1 ` σl2
pt, l q Þ Ñ f pt, l q “ ˝´l1 l3 ` ρl1 ´ l2 ‚
Ý
l1 l2 ´ βl3
f : r0, 100s ˆ R3 ÝÑ R3 ¨ ˛
´σz1 ` σz2
3.7.Applications
pt, z q Þ Ñ f pt, z q “ ˝´z1 z3 ` ρz1 ´ z2 ‚
Ý
z1 z2 ´ βz3
41
52 sigma =10; r h o =28; b e t a =8/3;
74
85 y0 = [ ´8;8; rho ´ 1 ] ;
96 [ t , Y]= redRK4Vec ( f C a u c h y , 0 , 1 0 0 , y0 , 1 0 0 0 0 ) ;
107
118 figure (1)
129 p l o t 3 (Y ( 1 , : ) ,Y ( 2 , : ) ,Y ( 3 , : ) )
13
10 xlabel ( 'x(t) ' ) , y l a b e l ( 'y(t) ' ) , zlabel ( 'z(t) ' )
14
11 print ´ d p d f f i g 0 1 ´L o r e n t z . p d f
15
12
16
13 figure (2)
17
14 subplot (3 ,1 ,1)
18
15 p l o t ( t ,Y( 1 , : ) ) ;
19
16 xlabel ( 't ' ) , ylabel ( 'x(t) ' )
20
17 subplot (3 ,1 ,2)
21
18 p l o t ( t ,Y( 2 , : ) ) ;
22
19 xlabel ( 't ' ) , ylabel ( 'y(t) ' )
23
20 subplot (3 ,1 ,3)
24
21 p l o t ( t ,Y( 3 , : ) ) ;
25
22 xlabel ( 't ' ) , ylabel ( 'z(t) ' )
26
23
24
print ´d p d f fig02 ´L o r e n t z . p d f
20
10
3. Introduction à la résolution d'E.D.O.
x(t)
-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
3.7. Applications
10
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)
Chapitre 4
Introduction à la résolution d'E.D.P.
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.
9 ‚
Bu
“ g, sur ΓN Ă BΩ. (4.3)
Bn
10 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
12 Comme première application, on cherche à déterminer le potentiel u (exprimé en volt) dans un "con-
13 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,
14
15 où Ω et ses frontières sont représentés en Figure 4.2 (haut). Une solution numérique de ce problème
16 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 1
potentiel u, c'est à dire tel que V “ ∇ u: avec u solution du problème suivant 2
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
3
où Ω et ses frontières sont identiques à l'exemple précédant (voir Figure 4.2 haut). Une solution numérique 4
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 5
de vecteurs qui en découle est visible en Figure 4.4. 6
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
0.8
6
0.6
5
0.4
0.2
4
Introduction à la résolution d'E.D.P.
3
-0.2
-0.4
2
-0.6
1
-0.8
Problème en dimension n
4.1. Exemples d'EDP
;
2
L'équation de la chaleur est une équation aux dérivées partielles décrivant le phénomène physique de 3
conduction thermique. Elle a été initialement introduite par Jean Baptiste Joseph Fourier (voir son livre 4
Théorie analytique de la chaleur paru en 1822). 5
Soit Ω un domaine de Rd de frontière BΩ et upt, x q un champ de température sur ce domaine. En 6
présence d'une source thermique dans le domaine, et en l'absence de transport de chaleur (convection), 7
l'équation de la chaleur s'écrit : 8
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 : 14
x P Ω,
@x xq
up0, x q “ u0 px (4.6)
‚ des conditions aux limites sur le bord du domaine, par exemple de type
Dirichlet :
x P ΓD Ă BΩ, @t P r0, T s upt, x q “ gD pt, x q
@x
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,
17
1 Deux solutions numériques de ce problème utilisant un schéma aux diérences nies d'ordre 2 est
2 représentée en Figure 4.5 l'une pour l'aluminium (gures de gauche) et l'autre pour le plomb (gure de
3 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. 1
L'équaton des ondes s'écrit Soit Ω un domaine de Rd de frontière BΩ et upx, tq une onde solution de 2
l'équation des ondes suivante 3
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 4
cas d'une onde sonore c est la célérité du son : 343m{s dans l'air à 20o ) 5
Pour que le problème soit mathématiquement bien posé, il faut imposer des conditions initiales : 6
‚ position initiale 7
x P Ω,
@x xq
up0, x q “ u0 px (4.8)
‚ vitesse initiale 8
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 9
type 10
‚ 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 :
Une équation eux dérivées partielles, notée EDP, ( partial dierential equation ou PDE en anglais) 12
fait intervenir plusieurs variables indépendantes (souvent en temps et espace), ainsi que les dérivées 13
partielles de la fonction recherchée. 14
Une équation aux dérivées partielles pour la fonction upx1 , . . . , xn q peut s'écrire sous la forme 15
Bu Bu B 2 u B2 u
Fpx1 , . . . , xn , u, ,..., , 2,..., , . . .q
Bx1 Bxn Bx1 Bx1 Bxn
Si F est une fonction linéaire en u et ses dérivées, alors l'EDP est dites linéaire. 16
4.3.Dénitions
Par exemple, l'équation de convection (appelée aussi advection) est régie par 17
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 α 18
(homogène à une vitesse) peut être fonction de t, x et C. 19
L'ordre d'une EDP est l'ordre le plus élevé parmi toutes les dérivées partielles de l'EDP. Dans 20
l'exemple précédant, l'EDP (4.10) est d'ordre 1. Par contre, l'EDP suivante 21
BC BC B2 C
`α ´β 2 “0 (4.11)
Bt Bx Bx
est une EDP d'ordre 2. 22
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.
14 Les opérateurs Dh0 , Dh` et Dh´ s'appellent respectivement opérateur (aux diérences nies)
15 centré, opérateur (aux diérences nies) progressif/décentré avancé et opérateur (aux dif-
16 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
18 Exercice 4.4.1
4.4.1 Dimension 1
Dh pλϕ ` µψq “ λDh ϕ ` µDh ψ
or ceci est équivalent à montrer que 5
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
1 On en déduit alors
dϕ ϕpx ` hq ´ ϕpxq h d2 ϕ `
pxq “ ´ pξ q
dx h 2 dx2
2 Ce qui donne
dϕ h d2 ϕ `
pxq ´ pDh` pϕqqpxq “ ´ pξ q
dx 2 dx2
3 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
4 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
4.4.1 Dimension 1
dx 2! dx2
5 On en déduit alors
dϕ ϕpxq ´ ϕpx ´ hq h d2 ϕ ´
pxq “ ` pξ q
dx h 2 dx2
6 Ce qui donne
4. Introduction à la résolution d'E.D.P.
dϕ h d2 ϕ ´
pxq ´ pDh´ pϕqqpxq “ pξ q
dx 2 dx2
7 On obtient donc
ˇ ˇ
ˇ dϕ ´
ˇ h d2 ϕ
max ˇ pxq ´ pDh pϕqqpxqˇˇ ď
ˇ max | 2 pξq|
xPra,bs dx 2 ξPsx´h,xr dx
4.4. Opérateurs aux diérences nies
h d2 ϕ
ď max | 2 pxq| “ Ch.
2 xPra,bs dx
8 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
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
9 qui soutraits donnent
dϕ h3 d3 ϕ d3 ϕ
ϕpx ` hq ´ ϕpx ´ hq “ 2h pxq ` p 3 pξ ` q ` 3 pξ ´ qq.
dx 3! dx dx
10 On en déduit alors
dϕ ϕpx ` hq ´ ϕpx ´ hq h2 d3 ϕ ` d3 ϕ
pxq “ ´ p 3 pξ q ` 3 pξ ´ qq
dx 2h 24 dx dx
11 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 1
ˇ ˇ 2 3
ˇ dϕ 0
ˇ h d ϕ
max ˇ pxq ´ pDh 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 . 2
˛ 3
On a donc démontré la proposition suivante 4
Proposition 4.2
Si ϕ : R ÝÑ R est susament régulière, les opérateurs Dh` et Dh´ appliqués à ϕ sont des approxima-
dx et l'opérateur Dh appliqué à ϕ est une approximation consistante
tions consistantes d'ordre 1 de dϕ 0
d'ordre 2 de dx .
dϕ
5
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
4.4.1 Dimension 1
x ˘ h P ra, bs, par
def 1
pDh2 ϕqpxq “ rϕpx ` hq ´ 2ϕpxq ` ϕpx ´ hqs . (4.16)
h2
d2 ϕ
Alors Dh2 ϕ appliqué à ϕ est une approximation consistante d'ordre 2 de dx2 .
De plus on a
d2 ϕ
est une approximation consistante d'ordre 2 de dx2 . 6
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 8
d2 ϕ h2 d4 ϕ d4 ϕ
Dh2 ϕpxq “ 2
pxq ` p 4 pξ ` q ` 4 pξ ´ qq.
dx 4! dx dx
On obtient alors 9
ˇ 2
ˇ 2
ˇDh ϕpxq ´ d ϕ pxqˇ ď h
ˇ 2 ˇ d4 ϕ h2 d4 ϕ
sup | pξq| ď sup | pξq|.
ˇ dx2 ˇ 12
ξPrx´h,x`hs dx
4 12 ξPra,bs dx4
2
On a donc montré que Dh2 ϕ est une approximation consistante d'ordre 2 de ddxϕ2 . 10
Pour démontrer (4.17), on calcule tout d'abord D0h D0h ϕ. On note g def
“ D0h ϕ c'est à dire 11
2 2 2
ˆ ˙
1 h h
gpxq “ D0h ϕpxq “ ϕpx ` q ´ ϕpx ´ q .
2 h 2 2
1 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
2 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
3 Enn avec g “ Dh` ϕ on a
4.4.2 Dimension n ě 1
gpxq ´ gpx ´ hq 1
Dh´ Dh` ϕpxq “ Dh´ gpxq “ “ pDh` ϕpxq ´ Dh` ϕpx ´ hqq
ˆ h h ˙
1 ϕpx ` hq ´ ϕpxq ϕpxq ´ ϕpx ´ hq
“ ´
h h h
1
“ pϕpx ` hq ´ 2ϕpxq ` ϕpx ´ hqq.
h2
4. Introduction à la résolution d'E.D.P.
5 4.4.2 Dimension n ě 1
6 On commence par rappeler une extension du théorème de Taylor-Lagrange :
4.4. Opérateurs aux diérences nies
8 Soit ϕ : U Ă Rn ÝÑ R une fonction susament régulière. On note e ris P Rn , i P v1, nw, le i-ème
9 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
10 déni les opérateurs aux diérences nies suivant
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
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 “ ϕpxx ` heeris q ´ ϕpx
xq
h
´ 1´ ¯
pDh,i xq
ϕqpx “ ϕpxxq ´ ϕpxx ´ heeris q
h
0 1 ´ ¯
pDh,i xq
ϕqpx “ x ` heeris q ´ ϕpx
ϕpx x ´ heeris q
2h
ˆ ˙ ˆ ˙
1 0
avec e
er1s “ 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
Correction Exercice 4.4.2 2
xq ` µpDh,i ψqpx
pDh,i pλϕ ` µψqqpxq “ λpDh,i ϕqpx xq, @x P R
2 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
3 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
4 Ce qui donne
Bϕ h B2 ϕ
4.4.2 Dimension n ě 1
`
xq ´ pDh,i
px xq “ ´
pϕqqpx x ` θ` heeris q
px
Bxi 2 Bx2i
5 On obtient donc
ˇ ˇ
ˇ Bϕ `
ˇ h B2 ϕ
max ˇˇ xq ´ pDh,i pϕqqpx
px xqˇˇ ď max | 2 pxxq| “ Ch.
x PU Bxi 2 xPU Bxi
4. Introduction à la résolution d'E.D.P.
• 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
7 On en déduit alors
4.4. Opérateurs aux diérences nies
Bϕ ϕpx x ´ heeris q h B 2 ϕ
xq ´ ϕpx
xq “
px ` x ´ θ´ heeris q
px
Bxi h 2 Bx2i
8 Ce qui donne
Bϕ ´ h B2 ϕ
xq ´ pDh,i
px xq “
pϕqqpx x ´ θ´ heeris q
px
Bxi 2 Bx2i
9 On obtient donc
ˇ ˇ
ˇ Bϕ ´
ˇ h B2 ϕ
max ˇ
ˇ xq ´ pDh,i pϕqqpx
px xqˇˇ ď max | 2 pxxq| “ Ch.
xPU Bxi 2 xPU Bxi
On en déduit alors 1
eris
x ` hee q ´ ϕpx eris
x ´ hee q h B ϕ 2 3 3
Bϕ ϕpx B ϕ
xq “
px ´ p 3 pxx ` θ` heeris q ` 3 px
x ´ θ´ heeris qq
Bxi 2h 24 Bxi Bxi
Ce qui donne 2
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 3
˛ 5
6
Proposition 4.5
Si ϕ : U Ă Rn ÝÑ R est susament régulière, les opérateurs Dh,i `
et Dh,i
´
appliqués à ϕ sont des
approximations consistantes d'ordre 1 de Bxi et l'opérateur Dh,i appliqué à ϕ est une approximation
Bϕ 0
consistante d'ordre 2 de Bx
Bϕ
i
. 7
Proposition 4.6
Soient i P v1, nw, ϕ P C 4 pU Ă Rn ; Rq. On note Dh,i l'opérateur déni, pour tout x P U et h ą 0
vériant ˘ he P U, par
x e 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
2
Dh,i ϕ “ D0h ,i pD0h ,i ϕq “ Dh,i
` ´
pDh,i ´
ϕq “ Dh,i `
pDh,i ϕq. (4.23)
2 2 8
Dans cette partie, nous allons étudier des schémas aux diérences nies pour la résolution d'EDP 1D en 11
espace. La première partie sera consacrée à une EDP modèle stationnaire et la seconde à l'équation de 12
la chaleur dans une barre. 13
Le problème modèle que nous allons résoudre numériquement par un schéma aux diérences nies est le 15
suivant 16
8 Le problème est identique : au lieu de chercher une fonction, on cherche une innité de valeurs! Sur
9 ordinateur, une innité de valeurs celà fait un peu trop! On va donc se limiter à la recherche de quelques
10 valeurs en choisissant, par exemple, de calculer la fonction uniquement aux points d'une discrétisation
11 régulière de l'intervalle ra, bs.
12 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
13 Du problème (4.27)-(4.29) on en déduit le problème suivant (la réciproque étant fausse) :
EDP modèle stationnaire en dimension 1 : formulation aux points de
discrétisation
Trouver upxi q P R, @i P v0, N w tels que
(4.30)
4. Introduction à la résolution d'E.D.P.
discrétisation (bis)
Trouver upxi q P R, @i P v0, N w tels que
upxi`1 q ´ 2upxi q ` upxi´1 q
´ ` Oph2 q ` cupxi q “ f pxi q @i Pw0, N v, (4.33)
h2
upx0 q “ α, (4.34)
upxN q “ β. (4.35)
17
18 Le schéma aux diérences nies associé à ce problème est obtenu en oubliant le Oph2 q et en posant
19 ui « upxi q. Il est alors donné par :
21 Il faut noter que l'on aboutit à un système linéaire de N ` 1 équations à N ` 1 inconnues : on peut
22 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 1
note que (4.36) peut se récrire 2
2
´ui`1 ` µui ´ ui´1 “ h f pxi q
h2 α
¨ ˛¨ ˛ ¨ ˛
0 ... ... ... ... 0 0 u0
˚
˚ ´1 µ ´1 0 ... ... 0 0 ‹˚ u
‹˚ 1
‹
‹
˚
˚ f px1 q ‹
‹
0 ´1 µ ´1 0 ... 0 0
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 Ð β
4.5.1 EDP stationnaire avec conditions aux limites de Dirichlet
6: Fin Pour
7: Fin Fonction
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,
4. Introduction à la résolution d'E.D.P.
avec N ` 1 points. x pi ` 1q “ xi .
U : vecteur de RN `1 tel que U pi ` 1q « upxi q
9: U Ð SolvepA, B q
10: Fin Fonction
5 Le code Matlab/Octave correspondant est donné en Listing 4.2. Ensuite on peut utiliser directement
6 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
76 M( i , i ´ 1)=b e t a ;M( i , i +1)=b e t a ; 8 B( i )= f ( x ( i ) ) ;
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 ) 1
l'erreur Ephq commise 2
Ephq “ max |upxi q ´ ui |.
iPv0,N w
Il nous faut donc choisir les données pour avoir une solution analytique. En fait, pour cela, on choisit 3
une fonction u susament régulière, par exemple upxq “ sinpx2 q, puis on détermine la fonction f par 4
f pxq “ ´u2 pxq ` cupxq. Avec l'exemple pour u, on obtient ainsi f pxq “ 4x2 sinpx2 q ´ 2 cospx2 q ` sinpx2 q. 5
Les conditions aux limites sont alors upaq “ sinpa2 q et upbq “ sinpb2 q. Avec c “ 1, l'EDP admettant une 6
unique solution celle-ci est nécessairement la fonction sinpx2 q! 7
Comme pour les EDO, la Figure 4.6 permet grâce à une représentation en echelle logarithmique de 8
1e-1
Error(h)
O(h)
O(h^2)
1e-2
1e-3
1e-4
1e-5
2 ˛
3
5 Le problème modèle que nous allons résoudre numériquement par un schéma aux diérences nies est le
6 suivant
11
12 linéaire pour prendre en compte cette condition au limite.
13 On ne peut intégrer directement l'équation u1 pxN q “ β dans le système linéaire. La première idée
14 consiste à approcher u1 en xN à l'aide de l'opérateur Dh´ denit en (4.16) ( On ne peut utiliser l'opérateur
15 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
4.5. Méthode des diérences nies (dimension 1 en espace)
16 Dans le schéma aux diérences nies (4.36)-(4.38), on remplace alors (4.38) par
uN ´ uN ´1
“ β. (4.45)
h
α
¨ ˛¨ ˛ ¨ ˛
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.46)
‹˚ ‹ ˚
‹ “ h2 ˚
U “˚
AU ˚ .. .. .. .. .. .. .. ‹“B
.. ..
‹˚
˚ . . . . . . .
‹˚ ‹ ˚ ‹
0 ‹˚
. ‹ ˚ . ‹
˚ .
˚ ‹˚ ‹ ˚ ‹
˚ ..
˚ f px
u
‹˚ ‹ ‹
0 ... 0 ´1 µ ´1 0 ‹˚ N ´2 ‹ ˚ 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
On peut toujours espérer être en ordre 1 au point xN “ b (puisque l'on a approché à l'ordre 1) et être 1
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 2
le schéma en xN s'est propagée aux autres points. 3
Pour retrouver un schéma d'ordre 2, il faut aussi écrire un nouveau schéma d'ordre 2 pour la condition 4
de Neumann en xN . 5
Exercice 4.5.2
Soit ϕ une fonction susament régulière et h ą 0
Q. 1 Montrer que
dϕ p2hq2 d2 ϕ p2hq3 d3 ϕ `
ϕpx ` 2hq “ ϕpxq ` p2hq pxq ` pxq ` pξ q (4.50)
dx 2! dx2 3! dx3 2
L'objectif est d'obtenir, par une combinaison linéaire entre ces deux formules, une nouvelle équation ne 11
2
comportant plus de termes en ddxϕ2 . En eectuant 4 ˆ (4.49) ´ (4.50) on obtient 12
dϕ h3 d3 ϕ ` p2hq3 d3 ϕ `
4ϕpx ` hq ´ ϕpx ` 2hq “ 3ϕpxq ` 2h pxq ` 4 pξ1 q ´ pξ q
dx 3! dx 3 3! dx3 2
On en déduit
dϕ ´3ϕpxq ` 4ϕpx ` hq ´ ϕpx ` 2hq
pxq “ ` Oph2 q
dx 2h
Q. 2 Pour celà, on écrit les deux développements de Taylor en x ´ h et x ´ 2h. 13
Il existe ξ1´ Psx ´ h, xr tel que 14
dϕ p´hq2 d2 ϕ p´hq3 d3 ϕ ´
ϕpx ´ hq “ ϕpxq ´ h pxq ` pxq ` pξ q (4.51)
dx 2! dx2 3! dx3 1
dϕ p´hq3 d3 ϕ ´ p´2hq3 d3 ϕ ´
4ϕpx ´ hq ´ ϕpx ´ 2hq “ 3ϕpxq ´ 2h pxq ` 4 pξ 1 q ´ pξ q
dx 3! dx3 3! dx3 2
On en déduit
4.5.2 EDP stationnaire avec conditions aux limites mixtes
˚ ‹˚ ‹ ˚ ‹
˚ 0 ´1 µ ´1 0 ... 0 0 ‹˚ u2
‹˚ ‹ ˚ f px2 q ‹
.. ..
˚ ‹ ˚ ‹
˚ .. .. .. .. ‹˚
..
‹ ˚
..
‹
˚ 0
def ˚
0 . . . . . . ‹˚
.
‹ ˚
.
‹
‹ def
(4.54)
‹˚ ‹ ˚
‹ “ 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 ´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
Exercice 4.5.3
Soit le problème suivant
´u2 pxq ` cpxqupxq “ f pxq, @x Psa; br, (4.55)
1
u paq “ α, (4.56)
upbq “ β. (4.57)
où c est une fonction positive.
Q. 1 1. Quelles sont les données du problème (4.55)-(4.57)? (préciser le type de chaque donnée
: réel, entier, fonction, vecteur, ...)
4. Les conditions aux limites sont (4.56) (appelée condition de Neumann) et (4.57) (appelée condition 8
de Dirichlet). 9
xi “ a ` i∆x , @i P v0, N w
1 Q. 3 1. De (4.55), on déduit
´u2 pxi q ` cpxi qupxi q “ f pxi q, @i P v0, N w (4.60)
En utilisant deux développements de Taylor à l'ordre 4 en x ` h P ra, bs et x ´ h P ra, bs on obtient
h2 2 h3
upx ` hq “ upxq ` hu1 pxq ` u pxq ` up3q pxq ` Oph4 q (4.61)
2! 3!
2
p´hq p´hq3 p3q
upx ´ hq “ upxq ´ hu1 pxq ` u2 pxq ` u pxq ` Oph4 q. (4.62)
2! 3!
4.5.2 EDP stationnaire avec conditions aux limites mixtes
et donc
upx ` hq ´ 2upxq ` upx ´ hq
u2 pxq “ ` Oph2 q.
h2
2 Cette dernière équation peut s'appliquer en x “ xi avec h “ ∆x pour tout i Pw0, N v et on a alors
upxi`1 q ´ 2upxi q ` upxi´1 q
u2 pxi q “ ` Op∆x2 q. (4.63)
∆x2
3 En remplaçant, dans (4.64), u2 pxi q par l'expression précédente on obtient
upxi`1 q ´ 2upxi q ` upxi´1 q
` Op∆x2 q ` cpxi qupxi q “ f pxi q, @i Pw0, N v (4.64)
∆x2
4 Il faut noter qu'il n'est pas possible d'utiliser cette relation en i “ 0 ou en i “ N. Le schéma (4.58)
5 est donc une approximation de (4.64) où l'on a oublié le terme en Op∆x2 q et noté ui « upxi q,
4. Introduction à la résolution d'E.D.P.
6 ci “ cpxi q et fi “ f pxi q.
7 2. On a E “w0, N v.
8 3. On note h “ ∆x . La condition de Dirichlet (4.57) s'écrit de manière exacte
uN “ upxN q “ β. (4.65)
Pour la condition de Neumann (4.56) il va falloir travailler un peu et déterminer une approximation
de la dérivée première de u en a “ x0 d'ordre 2. Pour celà, on écrit les deux développements de
Taylor en a ` h “ x1 et a ` 2h “ x2 .
4.5. Méthode des diérences nies (dimension 1 en espace)
h2 2
upa ` hq “ upaq ` hu1 paq ` u paq ` Oph3 q, (4.66)
2!
p2hq2 2
upa ` 2hq “ upaq ` p2hqu1 paq ` u paq ` Oph3 q. (4.67)
2!
9 L'objectif est d'obtenir, par une combinaison linéaire entre ces deux formules, une nouvelle équation
10 ne comportant plus de termes en u2 paq. En eectuant 4 ˆ (4.66) ´ (4.67) on obtient
4upa ` hq ´ upa ` 2hq “ 3upaq ` 2hu1 paq ` Oph3 q
11 On en déduit
´3upaq ` 4upa ` hq ´ upa ` 2hq
u1 paq “ ` Oph2 q. (4.68)
2h
12 De (4.56) et comme x0 “ a, x1 “ a ` h, x2 “ a ` 2h on a
´3upx0 q ` 4upx1 q ´ upx2 q
` Oph2 q “ α
2h
13 En oubliant le terme en Oph2 q on abouti au schéma
´3u0 ` 4u1 ´ u2
“α (4.69)
2h
Il est d'ordre 2 car toutes les dérivées partielles ont été approchées à l'ordre 2. 1
Q. 4 Les N ` 1 équations (4.70)-(4.72) sont linéaires en les N ` 1 inconnues pui qiPv0,N w . En notant 2
V P RN `1 le vecteur tel que V i “ ui´1 , @i P v1, N ` 1w ces N ` 1 équations peuvent donc s'écrire sous 3
Pour écrire l'algorithme détaillé, nous pouvons écrire par exemple deux fonctions l'une permettant de cal- 12
culer la matrice A et l'autre le second membre F . On va tout d'abord écrire la fonction AssembleMatND1d 13
retournant une matrice M P Md pRq dénie par 14
¨ ˛
α1 α2 α3 ... ... ... 0
.. .. ‹
. .‹
˚
˚β a1 β
.. .. .. .. .. ‹
˚ ‹
. . . . .‹
˚
˚0
M “ ˚ ... .. .. .. .. .. .. ‹
˚ ‹
˚
. . . . . .‹ (4.74)
˚ . .. .. .. ..
˚ ‹
˚ .. . . . .
‹
0‹
˚ . ..
˚ ‹
˝ .. .
‹
β ad´2 β‚
0 ... ... ... 0 0 γ
On a par exemple 15
1: Fonction x Ð AssembleMatND1d ( d, β, γ, α , a )
2: M Ð 0d,d
3: Mp1, 1q Ð α p1q, Mp1, 2q Ð α p2q, Mp1, 3q Ð α p3q
4: Mpd, dq Ð β
Pour i “ 2 à d ´ 1 faire
4.6.0 EDP stationnaire avec conditions aux limites mixtes
5: Ź Initialisation de la ligne i
6: Mpi, iq Ð a pi ´ 1q, Mpi, i ´ 1q Ð β, Mpi, i ` 1q Ð β
7: Fin Pour
8: Fin Fonction
2 On a par exemple
1: Fonction B Ð SndMbrND1d ( d, a, b, µ )
2: B Ð 0d,1
3: B p1q Ð a, B pdq Ð b
4: Pour i “ 2 à d ´ 1 faire
B piq Ð µ pi ´ 1q
4.6. Problème modèle évolutif 1D : équation de la chaleur
5:
6: Fin Pour
7: Fin Fonction
1: a Ð 0, b Ð 1, f : x ÞÑ 0, c : x ÞÑ 1 ` x.2
2: α Ð 0, β Ð 1
3: N Ð 1000, h Ð pb ´ aq{N, x Ð a : h : b
4
4: A Ð AssembleMatND1dpN ` 1, ´1, 1, r´3, 4, 1s, 2 ` h ˚ h ˚ cpx
xp2 : N qqq
5: F Ð SndMbrND1dpN ` 1, 2 ˚ α ˚ h, β, h ˚ h ˚ f px
xp2 : N qqq
6: V Ð SolvepA, F q
5 ˛
6
Comme dans le cas stationnaire, ce problème consiste en la recherche d'une fonction u : r0, T s ˆ ra, bs ÝÑ 8
R ou de manière équivalente en la recherche d'une innité de valeurs upt, xq, @pt, xq P r0, T s ˆ ra, bs. On va 9
donc se limiter à la recherche d'un nombre nies de valeurs. Pour celà on discrétise l'intervalle en temps 10
et l'intervalle en espace. Soient pxi qN
i“0 la discrétisation régulière de l'intervalle ra, bs en Nx ` 1 points :
x
11
b´a
xi “ a ` i∆x , @i P v0, Nx w, avec ∆x “
Nx
T
tn “ n∆t , @n P v0, Nt w, avec ∆t “ .
Nt
Les couples de points pxi , tn q, points bleus en Figure 4.9, forment une grille espace-temps et sont appelés 13
les noeuds de la grille. 14
t7
t6
t5
t4
t3
t2
t1
t0x x1 x2 x3 x4 x5 x6 x7 x8 x9 x
0
Figure 4.9: Représentation d'une grille espace-temps avec Nt “ 7 et Nx “ 9. Les noeuds de la grille sont
les points bleus.
Bu n B2 u
pt , xi q ´ D 2 ptn , xi q “ f ptn , xi q, @n Pw0, Nt w, @i Pw0, Nx v, (4.81)
Bt Bx
up0, xi q “ u0 pxi q, @i P v0, Nx w, (4.82)
Bu
´D ptn , x0 q “ αptn q, @n P v0, Nt w (4.83)
Bx
4.6.0 EDP stationnaire avec conditions aux limites mixtes
3 Il nous faut maintenant approcher les opérateurs aux dérivées partielles. Pour celà on peut utiliser
4 deux approches.
‚ Première approche : on utilise les résultats de la section 4.4.2 et pour coller aux notations de cette
section, on note x def
“ pxx1 , x 2 q “ pt, xq P R2 (attention à ne pas confondre x 1 , première composante
de x P R , avec x1 deuxième point de la discrétisation pxi qiPv0,Nx w ). On a alors avec ces notations :
2
Bu Bu Bu
pt, xq “ x1 , x 2 q “
px xq
px
Bt x1
Bx x1
Bx
B2 u B2 u B2 u
pt, xq “ x1 , x 2 q “
px xq
px
Bx2 x22
Bx x22
Bx
Bu Bu Bu
pt, xq “ x1 , x 2 q “
px xq
px
Bx x2
Bx x2
Bx
On déduit alors de la section 4.4.2 des approximations de ces dérivées. Par exemple, de la Propo-
sition 4.6 on a, pour h ą 0,
4. Introduction à la résolution d'E.D.P.
B2 u x1 , x 2 ` hq ´ 2upx
upx x1 , x 2 q ` upx
x1 , x 2 ´ hq
x1 , x 2 q “
px ` Oph2 q
x22
Bx h2
5 ce qui se traduit par
B2 u upt, x ` hq ´ 2upt, xq ` upt, x ´ hq
pt, xq “ ` Oph2 q (4.85)
Bx2 h2
6 ‚ Deuxième approche : on utilise la formule de Taylor de la proposition 4.4 pour rechercher les bonnes
7 approximations. C'est cette dernière approche que nous allons développer par la suite.
4.6. Problème modèle évolutif 1D : équation de la chaleur
On commence par déterminer une approximation de Bu Bt pt, xq. Soit h ą 0. On peut pour celà utiliser
la formule de Taylor 4.18 en pt ` h, xq ou en pt ´ h, xq. Il existe alors ξ ` Pst, t ` hr tel que
Bu h2 B 2 u `
upt ` h, xq “ upt, xq ` h pt, xq ` pξ , xq
Bt 2! Bt2
et il existe ξ ´ Pst ´ h, tr tel que
Bu p´hq2 B 2 u ´
upt ´ h, xq “ upt, xq ´ h pt, xq ` pξ , xq
Bt 2! Bt2
8 On peut noter que l'on peut remplacer il existe ξ ` Pst, t ` hr par il existe θ` Ps0, 1r et poser ξ ` “ t ` hθ` .
9 (de même pour θ´ )
10 On obient alors les deux approximations d'ordre 1 suivantes
Bu upt ` h, xq ´ upt, xq
pt, xq “ ` Ophq (4.86)
Bt h
Bu upt, xq ´ upt ´ h, xq
pt, xq
“ ` Ophq. (4.87)
Bt h
11 De manière similaire, on obtient les deux approximations d'ordre 1 suivantes
Bu upt, x ` hq ´ upt, xq
pt, xq “ ` Ophq (4.88)
Bx h
Bu upt, xq ´ upt, x ´ hq
pt, xq “ ` Ophq. (4.89)
Bx h
Pour déterminer une approximation de BBxu2 pt, xq on utilise deux développements de Taylor (voir for-
2
1
mule 4.18) en pt ` h, xq et en pt ´ h, xq. Il existe alors ξ ` Psx, x ` hr tel que 2
Bu h2 B 2 u h3 B 3 u h4 B 4 u
upt, x ` hq “ upt, xq ` h pt, xq ` pt, xq ` pt, xq ` pt, ξ ` q
Bx 2! Bx2 3! Bx3 4! Bx4
B2 u h4 B4 u B4 u
ˆ ˙
upt, x ` hq ` upt, x ´ hq “ 2upt, xq ` h2 pt, xq ` pt, ξ `
q ` pt, ξ ´ q
Bx2 4! Bx4 Bx4
et elle n'a de sens que si n P v0, Nt v et si i Pw0, Nx v. On en déduit alors le schéma numérique d'ordre 1 15
en temps et d'ordre 2 en espace suivant 16
u n`1 ´ u ni u n ´ 2u
uni ` u ni´1
i
´ D i`1 “ f ni , @n P v0, Nt v, @i Pw0, Nx v (4.95)
∆t ∆2x
en posant f ni “ f ptn , xi q et (en espérant) u ni « uptn , xi q. Ce schéma peut aussi s'écrire sous la forme 17
∆t ` n
(4.96)
˘
u n`1
i “ u ni ` D 2
uni ` u ni´1 ` ∆tf ni , @n P v0, Nt v, @i Pw0, Nx v
u i`1 ´ 2u
∆x
Ce schéma est explicite en temps. En fait pour déterminer u n`1 i il sut de connaître les trois valeurs 18
u ni´1 , u ni et u ni`1 comme illustré sur la Figure 4.10. Il faut toutefois noter que l'on ne peut utiliser ce 19
schéma pour déterminer les valeurs aux limites (i.e. u n`1 0 et u n`1
Nx ) comme illustré en Figure 4.11 20
t
Connues
Inconnues
uni +1
tn +1
tn
uni−1 uni uni+1
4.6.1 Schéma explicite en temps
xi−1 xi xi +1 x
t
Connues
Inconnues
4. Introduction à la résolution d'E.D.P.
4.6. Problème modèle évolutif 1D : équation de la chaleur
tn +1
tn
x0 x1 xNx x
n`1 n`1
upt , x1 q ´ upt , x0 q
´D ` Op∆x q “ αptn`1 q. (4.99)
∆x
Ce qui donne le schéma d'ordre 1 en espace
u n`1 ´ u n`1
´D 1 0
“ αptn`1 q
∆x
ou encore 2
∆x
u n`1
0 “ αptn`1 q ` u n`1
1 . (4.100)
D
Deux remarques sur cette formule : 3
2. elle est d'ordre 1 en espace, ce qui nous fait perdre tout l'avantage de l'ordre 2 en espace du schéma 6
(4.96) : en utilisant (4.96), (4.100) et (4.97), on abouti à un schéma global d'ordre 1 en temps et 7
Pour obtenir une formule d'ordre 2 approchant (4.83), il faut une approximation d'ordre 2 de Bx pt , x0 q. 10
Bu n`1
Comme dans le cas stationnaire, on écrit les formules de Taylor en pt, x ` hq et pt, x ` 2hq (on remplacera 11
ensuite t par tn`1 , x par x0 et h par ∆x ) : Il existe alors ξ 1 Pst, t ` hr tel que 12
Bu h2 B 2 u h3 B 3 u
upt, x ` hq “ upt, xq ` h pt, xq ` 2
pt, xq ` pt, ξ1 q (4.101)
Bx 2! Bx 3! Bx3
et il existe ξ2 Pst, t ` 2hr tel que 13
2 2 3 3
Bu p2hq B u p2hq B u
upt, x ` 2hq “ upt, xq ` 2hpt, xq ` pt, xq ` pt, ξ2 q. (4.102)
Bx 2! Bx2 3! Bx3
En eectuant la combinaison linéaire 4 ˆ (4.101) ´ (4.102) qui permet de supprimer les dérivées secondes,
un`1
´3u ` un`1
4u ´ u n`1
´D 0 1 2
“ αptn`1 q
2∆x
ou encore ˆ ˙ 20
1 2∆x
u n`1
0 “ un`1
αptn`1 q ` 4u 1 ´ u n`1
2 . (4.105)
3 D
Il faut noter que pour utiliser cette formule, il faut avoir calculé au préalable les deux valeurs u n`1
1 et 21
u n`1
2 . 22
En résumé, soit n P v0, Nt v, on vient de voir que si l'on connait u ni , @i P v0, Nx w alors le calcul des u n`1
i ,
@i P v0, Nx w, est possible grâce aux formules (4.96) (4.97) et (4.105) rappellées ici en notant E “ D ∆ ∆t
2 et
x
C “ 1 ´ 2E :
u n`1
i uni ` Epu
“ Cu uni`1 ` u ni´1 q ` ∆tf ni , @i Pw0, Nx v (4.96)
u n`1
Nx “ βptn`1
q, (4.97)
ˆ ˙
1 2∆x
u n`1
0 “ αpt n`1 n`1 n`1
u1 ´ u 2
q ` 4u . (4.105)
3 D
1 Algorithmique
2 Pour initialiser ce schéma itératif, on utilise la condition initiale (4.82) qui donne directement
1: u 0i Ð u0 pxi q, @i P v0, Nx w
2: Pour n Ð 0 à Nt ´ 1 faire
3: Calculer u n`1
i , @i Pw0, Nx v par (4.96)
4
4: Calculer u n`1
Nx , par (4.97)
5: Calculer u 0 , par (4.105)
n`1
6: Fin Pour
4.6.1 Schéma explicite en temps
5 Pour obtenir l'algorithme complet, on décrit tout d'abord ce que l'on cherche :
6
7
Résultat : U : tableau 2D/matrice pNx ` 1q ˆ pNt ` 1q de réels tel que
Upi ` 1, n ` 1q “ u ni , @i P v0, Nx w, @n P v0, Nt w.
colonnes
1 2 3 Nt −1 Nt Nt +1
1 u00 u10 u20 uN0 t −2 uN0 t −1 uN0 t
4. Introduction à la résolution d'E.D.P.
lignes
11 On choisi ici d'écrire l'algorithme sous forme d'une fonction retournant U ainsi que les discrétisations
12 en espace et en temps stockées respectivement dans x P RNx `1 et t P RNt `1 . Les vecteurs x et t sont
13 tels que xpi ` 1q “ xi , @i P v0, Nx w, et tpn ` 1q “ tn , @n P v0, Nt w.
Pour i Ð 1 à Nx ` 1 faire
x
7: Ź Condition initiale
8: Upi, 1q Ð u0 pxpiqq
9: Fin Pour
10: Pour n Ð 1 à Nt faire Ź Boucle en temps
11: Pour i Ð 2 à Nx faire Ź Schéma
12: Upi, n ` 1q Ð C ˚ Upi, nq ` E ˚ pUpi ` 1, nq ` Upi ´ 1, nqq ` ∆t f ptpnq, xpiqq
13: Fin Pour
14: UpNx , n ` 1q Ð βptpn ` 1qq
En propose avec l'Algorithme 4.6, une version équivalente de cet algorithme. Celui-ci a l'avantage
71 U ( : , 1 ) =u0 ( x ) ;
82 for n = 1 : Nt
93 ∗
U( I , n+1)=C U( I , n ) + E ∗ (U( I +1 , n )+U( I ´ 1 , n ) ) + dt ∗ f ( t (n) ,x( I ) ) ;
126 end
1378 end
Listing 4.4: fonction pour la résolution de l'EDP de la chaleur (4.76)-(4.79) par le schéma explicite
(4.96),(4.97),(4.105): chier Heat1DexLight.m
4.6.1 Schéma explicite en temps
Pour obtenir un problème avec solution exacte, on peut xer la solution exacte, par exemple :
4. Introduction à la résolution d'E.D.P.
10
def
upt, xq “ cosptqcospxq
4.6. Problème modèle évolutif 1D : équation de la chaleur
et injecter cette solution dans (4.76)-(4.79) pour déterminer les fonctions f, u0 , α et β. On obtient alors
11 En Listing 14, on calcule la solution numérique de l'équation de la chaleur (4.76)-(4.79) avec les
12 données précédentes et avec
13 Le code proposé en Listing 11 et qui fait suite au Listing 14, permet de calculer la solution exacte aux
14 noeuds de la grille espace-temps et de représenter l'erreur commise : Eptn , xi q “ |uptn , xi q´uuni |.
1 a = 0 ; b=2 ∗ p i ; Nx= 5 0 ;
2 T= 1 0 ; Nt =5000
9 [ t , x , U]= H e a t 1 D e x L i g h t ( a , b , T , D, f , u0 , a l p h a , b e t a , Nx , Nt ) ;
10 s u r f c ( t , x , U)
11 xlabel ( 't ' ) , ylabel ( 'x ' ) , zlabel ( 'u(t ,x) ' )
12 shading interp , colormap ( j e t )
13 axis image
1 [ T , X]= m e s h g r i d ( t , x ) ;
2 Uex=u ( T , X) ;
4. Introduction à la résolution d'E.D.P.
3 figure (2)
4 ´
p c o l o r ( t , x , a b s (U Uex ) )
7 axis image
4.6. Problème modèle évolutif 1D : équation de la chaleur
9 set ( get (h ,' title ' ) , ' string ' , ' Error : ...
$E (t^n , x_i ) =| u(t^n , x_i ) -\ mathbf {u} _i ^n|$ ' , . . .
2 On représente en Figure , les résultats de ces deux derniers codes mais avec cette fois Nx “ 100 (au
3 lieu de Nx “ 50)
Figure 4.13: Equation de la chaleur 1D avec solution exacte (en rouge). Debut du phénomène d'instabilité.
Une étude de stabilité au sens de Von Neumann du schéma explicite pour l'équation de la chaleur 3
(4.76) permet d'obtenir la condition de C.F.L. ( R. Courant, K. Friedrichs, and H. Lewy en 1928) 4
nécessaire à la stabilité du schéma : 5
∆t 1
D 2 ď . (4.107)
dx 2
On pourra se référer à [1] (section 2.2.3, page 37-42) pour plus de détails. On dit alors que le schéma est 6
conditionnellement stable. 7
1 calculée par
b´a T
Ep∆x , ∆t q “ max uni ´ uex ptn , xi q|,
|u ∆x “ , ∆t “
iPv0,Nx w,nPv0,Nt w Nx Nt
3 l'erreur est supérieur à 100% (blocs gris). Par contre en dessous, i.e. lorsque la condition de CFL est
4 vériée, le schéma donne de bons résultats.
4
4.6.1 Schéma explicite en temps
3
"t
10 -4
10 -5 0
4. Introduction à la résolution d'E.D.P.
10 -3 10 -2 10 -1 10 0
"x
5 En Figure 4.17, on représente les ordres du schéma : ordre 1 en temps (à gauche) et ordre 2 en espace
6 (à droite). Toutefois, les phénomènes d'instabilités viennent perturber les graphes.
10 -4
10 -4
10 -6
10 -6
10 -8 Erreur
O("2t )
O("t )
10 -10 10 -8
10 -5 10 -4 10 -3 10 -3 10 -2 10 -1 10 0
"t "x
Figure 4.15: Equation de la chaleur 1D avec solution exacte. Ordres et phénomène d'instabilité.
7 En section 4.6.2, nous étudirons un schéma implicite qui sera inconditionnellement stable.
On souhaite modéliser une barre isolée chauée en ses extremitées (il n'y a donc pas d'échange thermique 2
avec l'extérieur). La barre est en aluminium, mesure 20cm et elle est à 20o au temps initial. La barre 3
correspond à l'intervalle ra, bs avec a “ 0, b “ 0.2. 4
Le problème à résoudre est alors 5
# #
20 ` 80t, si t ă 1 20 ` 40t, si t ă 1
αptq “ et βptq “
100 si t ě 1 60 si t ě 1
On note que ces fonctions sont continues et vérient les conditions de compatibilité : 8
Dans l'algorithme 4.6 seul change la prise en compte de la condition aux limites en a : il faut donc 9
remplacer la ligne 10 10
∆x
Bu n B2 u
pt , xi q ´ D 2 ptn , xi q “ f ptn , xi q, @n Pw0, Nt w, @i Pw0, Nx v, (4.81)
Bt Bx
up0, xi q “ u0 pxi q, @i P v0, Nx w, (4.82)
Bu n
´D pt , x0 q “ αptn q, @n P v0, Nt w (4.83)
Bx
uptn , xNx q “ βptn q, @n P v0, Nt w (4.84)
3
5 et elle n'a de sens que si n Pw0, Nt w et si i Pw0, Nx v. On en déduit alors le schéma numérique d'ordre 1 en
6 temps et d'ordre 2 en espace suivant
u ni ´ u n´1 un ´ 2u
uni ` uni´1
i
´ D i`1 “ f ni , @n Pw0, Nt w, @i Pw0, Nx v (4.113)
∆t ∆2x
7 en posant f ni “ f ptn , xi q et (en espérant) u ni « uptn , xi q. Ce schéma peut aussi s'écrire sous la forme
4. Introduction à la résolution d'E.D.P.
∆t ` n
(4.114)
˘
u ni ´ D 2
uni ` u ni´1 “ u n´1
u i`1 ´ 2u i ` ∆tf ni , @n Pw0, Nt w, @i Pw0, Nx v
∆x
8 Ce schéma est implicite en temps : il n'est pas possible de calculer explicitement u ni en fonction des
9 u n´1
i (au temps précédent). Toutefois on peut noter qu'au temps tn , les Nx ´ 1 équations (4.114) sont
linéaires en les Nx ` 1 inconnues puuni qiPiPv0,Nx w . Ils nous manquent 2 équations (linéaires) pour obtenir
4.6. Problème modèle évolutif 1D : équation de la chaleur
10
11 un système linéaire de Nx ` 1 équations à Nx ` 1 inconnues. Celles-ci sont obtenues grâce aux deux
12 contitions aux limites (4.83) et (4.84) en tn . De (4.84) on obtient immediatement
u nNx “ βptn q.
U n “ bn
AU (4.118)
¨ ˛
u n0
˚ u n1 ‹
U “ ˚ ... ‹ P RNx `1 ,
˚ ‹
n ˚ ‹
i.e. U n piq “ u ni´1 , @i P v1, Nx ` 1w
˚ n ‹
˝u ‚
Nx ´1
u nNx
‚ la 1re ligne du système correspondra à l'équation écrite au 1er point de discrétisation x0 (i.e. (4.115)), 3
‚ les lignes 2 à Nx du système correspondront aux équations écrites respectivement aux points in- 4
térieurs x1 à xNx ´1 (i.e. (4.116)), 5
Il faut noter que d'en cet exemple la matrice du système ne dépend pas du temps (i.e. de n) : elle est 12
donc invariante au cours du temps. 13
Comme pour le schéma explicité, l'initialisation de ce schéma itératif est obtenu par la condition initiale 15
(4.82). On a alors 16
U 0i “ u0 pxi q, @i P v0, Nx w.
L'algorithme formel est donc le suivant : 17
1: U 0i Ð u0 pxi q, @i P v0, Nx w
2: Pour n Ð 1 à Nt faire 18
3: Calcul de U n en résolvant le système linéaire (4.115),(4.116),(4.117)
4: Fin Pour
Pour résoudre le système linéaire à l'itération n il faut avant tout être capable de le construire! Pour 19
celà on propose dans un premier temps de construire la matrice du système puis le second membre. C'est 20
l'objet de l'exercice 4.6.1 où le choix a été fait d'écrire ces deux opérations sous la forme de deux fonctions 21
distinctes car la matrice est indépendante du temps et peut donc être calculée en dehors de la boucle 22
principale contrairement au second membre. 23
Exercice 4.6.1 24
¨ ˛
α
˚ c1 ‹
B “ ˚ ... ‹
˚ ‹
˚ ‹
(4.121)
˚ ‹
˝cd´2 ‚
β
1: Fonction x Ð AssembleMatGen1d ( d, a , b , α, β )
2: M Ð 0d,d
3: Mp1, 1q Ð a p1q, Mp1, 2q Ð a p2q, Mp1, 3q Ð a p3q
4: Mpd, dq Ð b p1q, Mpd, d ´ 1q Ð b p2q, Mpd, d ´ 2q Ð b p3q
5: Pour i “ 2 à d ´ 1 faire Ź Initialisation de la ligne i
6: Mpi, iq Ð α, Mpi, i ´ 1q Ð β, Mpi, i ` 1q Ð β
7: Fin Pour
8: Fin Fonction
4 Q. 2 On a par exemple
1: Fonction B Ð SndMbrGen1d ( d, c , α, β )
2: B p1q Ð α, B p2q Ð β
3: Pour i “ 2 à d ´ 1 faire Ź Initialisation de la ligne i
4: B piq Ð c pi ´ 1q
5: Fin Pour
6: Fin Fonction
˛ 1
2
Les données et résultats du schéma implicite sont identiques à ceux du schéma explicites. On les 3
rappelle ici 4
Pour i Ð 1 à Nx ` 1 faire
x
7: Ź Condition initiale
8: Upi, 1q Ð u0 pxxpiqq
9: Fin Pour
10: A Ð AssembleMatGen1dpd, p3, ´4, 1q, p1, 0, 0q, C, ´Eq
11: Pour n Ð 1 à Nt faire Ź Boucle en temps
12: Pour i Ð 1 à Nx ´ 2 faire Ź Schéma
13: v piq Ð Upi ` 1, nq ` ∆t f pttpnq, x iq
14: Fin Pour
15: L Ð 2p∆x {Dqαpttpnqq
16: B Ð SndMbrGen1dpd, v , L, βpttpnqqq
17: Up:, n ` 1q Ð SolvepA, B q
18: Fin Pour
19: Fin Fonction
1 En Figure 4.17, on représente les ordres du schéma : ordre 1 en temps (à gauche) et ordre 2 en espace
2 (à droite).
Erreur max(ju ! uex j) en fonction de "x : "t : 1:0e ! 5
10 -3
Erreur max(ju ! uex j) en fonction de "t : "x : 0:0209
10 -2
10 -3 10 -4
4. Introduction à la résolution d'E.D.P.
10 -4
10 -5
10 -5
4.6. Problème modèle évolutif 1D : équation de la chaleur
10 -6
10 -6
10 -7 10 -7
10 -6 10 -5 10 -4 10 -3 10 -3 10 -2 10 -1
" "x
t
Figure 4.17: Equation de la chaleur 1D avec solution exacte. Ordres pour le schéma implicite.
3 On peut noter qu'aucun phénomène d'instabilité ne vient perturber les résultats. En eet, Une étude
4 de stabilité au sens de Von Neumann du schéma implicite pour l'équation de la chaleur (4.76) permet
5 de montrer le caractère inconditionnellement stable du schéma. Pour plus de détails se référer à [1]
6 (section 2.2.3, page 37-42).
Bibliography
[1] G. Allaire. Analyse numérique et optimisation (French Edition). ECOLE POLYTECHNIQUE, 2012. 2