Approximations aux différences finies
A la fin du chapitre, l’étudiant doit être capable de:
1. Etablir une formule aux différences finies pour des dérivées 2. Calculer l’ordre de convergence d’une approximation
3. Calculer la vitesse de propagation effective d’un schéma de discrétisation de l’équation de convection-diffusion 1D
4. Comprendre le lien entre ordre et vitesse de propagation effective
Motivation
• Les équations aux dérivées partielles sont omniprésentes en ingénierie – Mécanique des solides
– Mécanique des fluides – Electromagnétisme, – …
• Elles font en général intervenir des dérivées partielles:
– En temps: confère le chapitre sur la « Résolution d’équations différentielles ordinaires »
– En espace: ce chapitre
Différences finies
• L’idée est de remplacer les dérivées partielles aux points de maillage par des développements de Taylor
• Plutôt que de chercher f(x), on cherche les valeurs de f aux nœuds du maillage, soit f=f(x )
i i+1 i +2
−1 i
−2 i
−3
i x
xi xi+1 xi+2 x
−1
xi
−2
xi
−3
xi
Dérivées premières
• Développement de Taylor au nœud i:
• Ces développements font apparaître les dérivées de f au nœud i uniquement
i i+1 i +2
−1 i
−2 i
−3
i x
( ) ( )
2( (
1)
3)
2 2 1
1
1 2 i i
x i
i x
i i
i
i O x x
dx f d x
x dx
x df x
f f
i i
−
− + +
− +
= − − −
−
( ) ( )
2( (
1)
3)
2 2 1
1
1 2 i i
x i
i x
i i
i
i O x x
dx f d x
x dx
x df x
f f
i i
−
− + +
− +
= + + +
+
• Si les nœuds sont régulièrement espacés
i i+1 i +2
−1 i
−2 i
−3
i x
x
( )
32 2 2
1 2 O x
dx f d x dx
xdf f
f
i xi
x i
i +
+
+
+ =
( )
32 2 2
1 2 O x
dx f d x dx
xdf f
f
i xi
x i
i +
+
−
− =
Dérivées premières
• Si les nœuds sont régulièrement espacés, la dérivée de f au nœud i est approximée par
• Erreur d’approximation est O(∆𝑥2)
• Schéma centré d’ordre 2
• NOTATION « grand O de X »: O(𝑋) signifie « de l’ordre de X »
) 2 (
1 2
1
O x
x f f
dx
df
i ixi
+
=
+−
−Dérivées premières
• Maillage régulier
• En conservant plus de termes dans les développements on obtient les schémas à l’ordre 4 et 6 suivants
) 12 (
8
8 1 1 2 4
2 O x
x
f f
f f
dx
df i i i i
xi
+
+
− +
= − + + − −
Ordres plus élevés
) 60 (
9 45
45
9 2 1 1 2 3 6
3 O x
x
f f
f f
f f
dx
df i i i i i i
xi
+
− +
− +
= + − + + − − −
• ordre 1 aval
• ordre 1 amont
• ordre 2 aval
• ordre 2 amont
Formules décentrées
)
1
O ( x
x f f
dx
df
i ixi
+
=
+−
) 2 (
3
4
1 22
O x
x
f f
f dx
df
i i ixi
+
− +
= −
+ +)
1
O ( x
x f f
dx
df
i ixi
+
= −
−) 2 (
4
3
1 2 2x x O
f f
f dx
df
i i i+
+
= −
− −Et alors ??
• Plusieurs approximations aux différences finies disponibles pour approximer les dérivées en espace
• Ces dérivées en espace interviennent dans des équations aux dérivées partielles (EDP)
• Quelle erreur faisons-nous en utilisant des différences finies pour résoudre des EDP ?
• Utilisation d’un problème modèle simple …
Problème modèle
• Equation de convection diffusion 1D dans un domaine infini
2 2
0
x
D f x
U f t
f
=
+
? )
, ( x t f
0 ) , (
lim =
→ f x t
x
U0
) ( )
0 ,
(x f0 x
f =
Solution analytique
• Si la concentration est initialement de la forme on peut obtenir la solution analytique …
• En l’absence de diffusion (𝐷 = 0), l’équation 𝜕𝑓
𝜕𝑡 + 𝑈0 𝜕𝑓
𝜕𝑥 = 0 génère une simple translation à la vitesse 𝑈0 de la condition initiale:
𝑓 𝑥, 𝑡 = 𝑓0exp − 𝑥 − 𝑈0𝑡 2/4𝑎2
( )
( )
+
− −
= +
Dt a
t U x
Dt a
C a t
x
f
22 0 2
2
0
exp 4
) , (
(
2 2)
0
0( ) exp /4
) 0 ,
(x f x f x a
f = = −
Solution analytique
• Effet de la diffusion
D a U
= 0 Re
+
= Re
20 Re =
200 Re=
2 Re =
• Problème modèle 1D: Eq. de convection pure (sans diffusion)
• Conditions limites et initiale:
• Le domaine [-2 m, 8 m] est discrétisé à l’aide de 100, 200 ou 400 nœuds uniformément répartis
Une expérience numérique
m/s 1 ,
m 8 m
2 ,
0 0
0 = − =
+
x U
x U f t
f
(
/4)
, 0.2mexp )
0 ,
(x = − x2 a2 a =
f f (−2,t) = f (8,t) = 0
• Équation semi-discrète (pas d’erreur associée à la dérivée en temps)
• On approxime 𝜕𝑓ቚ
𝜕𝑥 𝑥𝑖 à l’aide de deux schémas:
𝜕𝑓ቚ
𝜕𝑥 𝑥𝑖 → 𝑓𝑖−𝑓𝑖−1
∆𝑥 𝜕𝑓ቚ
𝜕𝑥 𝑥𝑖 → 𝑓𝑖+1−𝑓𝑖−1
2∆𝑥
• On résout et on compare à la solution analytique …
Test numérique
amont ordre 1 centré ordre 2
𝜕𝑓
𝜕𝑡
+ 𝑈
0 𝜕𝑓ቚ
𝜕𝑥 𝑥𝑖
= 0
Test numérique
amont ordre 1
centré ordre 2
400 noeuds 200 noeuds 100 noeuds
Solution initiale
Solution exacte à t=5 s
Solution
numérique à t=5 s
Ordre 2 centré / Ordre 1 amont
• Ordre 1 introduit de la diffusion … (cf solution analytique avec Re=2)
• Ordre 2 centré « exact » avec 400 points
• Ordre 2 centré déforme le signal si le nombre de points est plus petit
• Ordre 2 meilleur que ordre 1
Test numérique
aval ordre 1
centré ordre 2
400 noeuds 200 noeuds 100 noeuds
Solution initiale
Solution exacte à t=5 s
Solution
numérique à t=5 s
1031 !!
Ordre 2 centré / Ordre 1 aval
• Ordre 1 aval ne permet pas d’obtenir de solution
« acceptable » à t=5 car:
1. L’amplitude obtenue est très grande
2. Le signal n’est pas la forme d’une Gaussienne
Test numérique
centré ordre 4
centré ordre 2
400 noeuds 200 noeuds 100 noeuds
Solution initiale
Solution exacte à t=5 s
Solution
numérique à t=5 s
Ordre 2 centré / Ordre 4 centré
• Ordre 4 « exact » dans tous les cas considérés ici
• Ordre 2 centré « exact » avec 400 points
• Ordre 4 meilleur que ordre 2
Test numérique
amont ordre 2
centré ordre 2
400 noeuds 200 noeuds 100 noeuds
Solution initiale
Solution exacte à t=5 s
Solution
numérique à t=5 s
Ordre 2 centré / Ordre 2 amont
• Ordre 2 centré et amont « exacts » avec 400 points
• Ordre 2 centré et amont déforment le signal si le nombre de points est plus petit, mais pas de la même manière
• Ordre 2 amont amortit plus le signal
• L’ordre ne dit pas tout sur un schéma …
• Pour comprendre les erreurs associées à un schéma, il faut réaliser une analyse plus poussée, dans une situation encore plus simple. C’est l’objet de l’analyse spectrale.
Premier bilan
• L’ordre ne dit pas tout sur un schéma: deux schémas de même ordre peuvent avoir des comportements très différents (=
générer des erreurs très différentes)
• Pour comprendre les erreurs associées à un schéma, il faut réaliser une analyse plus poussée, dans une situation encore plus simple. C’est l’objet de l’analyse spectrale.
Analyse spectrale
• On considère un domaine infini et une fonction harmonique pour laquelle on connait la dérivée exacte:
• Exemple du schéma centré d’ordre 2
𝑓 𝑥 = cos 𝑘𝑥 = Re exp( 𝑗𝑘𝑥) ⇒ 𝑑𝑓
𝑑𝑥 = Re 𝑗𝑘 exp( 𝑗𝑘𝑥) , avec k un paramètre positif fixé (k=nombre d’onde) et j2 = -1
𝑓𝑖 = Re exp( 𝑗𝑘𝑖Δ𝑥) , 𝑑𝑓ቤ 𝑑𝑥 𝑥𝑖
= 𝑓𝑖+1 − 𝑓𝑖−1 2Δ𝑥
𝑑𝑓ቤ 𝑑𝑥 𝑥𝑖
= Re 𝑗𝑘 sin( 𝑘Δ𝑥)
𝑘Δ𝑥 exp( 𝑗𝑘𝑖Δ𝑥)
Analyse spectrale
• Pour la fonction test 𝑓 𝑥 = cos 𝑘𝑥 , l’erreur numérique commise lorsque l’on utilise le schéma centré d’ordre 2 revient à multiplier 𝑑𝑓
𝑑𝑥 par 𝐸 𝑘∆𝑥 = sin(𝑘Δ𝑥)
𝑘Δ𝑥
• 𝐸 𝑘∆𝑥 est la fonction erreur spectrale.
• Attention: cette fonction vaut 1 lorsqu’il n’y a pas d’erreur !!
• Dans le cas de l’équation de convection pure, multiplier 𝑑𝑓
𝑑𝑥 par 𝐸 𝑘∆𝑥 = sin(𝑘Δ𝑥)
𝑘Δ𝑥 revient aussi à multiplier la vitesse de
Signification de k x
• Sinusoïde de période L décrite avec N points
• x = L / N, k = 2 p /L donc kx = 2 p / N
→
→
N
x
k 0
8 4
=
=
N
x
k p
4 2
=
=
N
x
k p
= 2
=
N
x
k p
Analyse spectrale
• Lorsque l’on remplace la dérivée exacte par une différence finie centrée d’ordre 2, tout se passe comme si on résolvait l’équation
• Les différentes longueurs d’onde ne se déplacent pas à la même vitesse
) 0 sin(
0
=
+
x f x
k
x U k
t f
centré exact
Analyse spectrale
• Équation effective
0( ) = 0
+
x x f
k E t U
f
SCHEMA
Centré ordre 2
Amont ordre 1
Amont ordre 2
Centré
( )
Re E k x Im E ( k x )
x 0 k
x k
) sin(
x k
x k
) sin(
x k
x k
−
) 1 cos(
( 2 cos( ) )
)
sin( k x
x k
x
k −
x k
x k x
k
−
+
−
2
3 )
cos(
4 )
2 cos(
( )
)
sin( k x −
Analyse spectrale
Lien avec l’ordre du schéma
• Dans la limite 𝑘∆𝑥 → 0, la vitesse de propagation effective tend vers U0
• La vitesse avec laquelle l’erreur tend vers zéro lorsque 𝑘∆𝑥 → 0 dépend de l’ordre n du schéma et on montre que:
𝐸 𝑘∆𝑥 = 1 + 𝑂 ∆𝑥
𝑛• Les schémas centrés sont non dissipatifs: Im 𝐸 𝑘∆𝑥 = 0
• si U0>0, les schémas stables sont tels que: Im 𝐸 𝑘∆𝑥 ≤ 0
Dispersion
• La vitesse de propagation effective n’est égale à la vitesse théorique que dans la limite 𝑘∆𝑥 → 0
• Une perturbation peut donc être propagée trop lentement ou trop vite
• Les fonctions et ne sont pas propagées à la même vitesse en général
• Que se passe-t-il lorsque l’on convecte
f ( x )
?e
jkxe
jk'x, k k '
Déformation du signal
• On peut décomposer cette fonction comme une somme de
fonctions harmoniques (en rendant f périodique éventuellement)
• La solution théorique après t secondes de simulation est
• Numériquement le mode devient
• La solution numérique est donc
= f
ke
jkxx
f ( ) ˆ
−=
−
0) ˆ
( 0 )( x U t f
ke
jk x U tf
) ) (
(x E k x U0t
e
jk − e
jkx) ˆ (
)
( x U
0t f e
(1 ( )) 0e
( 0 )f x U
0t
g − =
k
jk
−E
kx
U t jk x−U t −
• Maillage régulier
• On utilise le fait que
• En appliquant l’opérateur 2 fois le schéma centré d’ordre 2:
Dérivées secondes
) 2 (
2 '
1 '
1 2
2
x x O
f f
dx f
d
i ixi
+
+−
−i xi
x dx
df dx
d dx
f
d
2 =
2
2
22
f f f f
d − + +
=
+ −• Si les nœuds sont régulièrement espacés
i i+1 i +2
−1 i
−2 i
−3
i x
x
Problème de localité
2
2 2
2 2
4 2
x
f f
f dx
f
d i i i
xi
+
+ − −
x
La dérivée seconde approximée de cette fonction est nulle !!
• Déduire la dérivée seconde des développements de Taylor
i i+1 i +2
−1 i
−2 i
−3
i x
( )
43 3 3 2
2 2
1 2 6 O x
dx f d x dx
f d x dx
xdf f
f
i
i xi x
x i
i +
+ +
+
+ =
( )
43 3 3 2
2 2
1 2 6 O x
dx f d x dx
f d x dx
xdf f
f
i
i xi x
x i
i +
− +
−
− =
Dérivées secondes
+
−
• Si les nœuds sont régulièrement espacés
i i+1 i +2
−1 i
−2 i
−3
i x
x
Problème de localité
2
1 1
2
2 2
x
f f
f dx
f
d i i i
xi
+
+ − −
x
La dérivée seconde approximée de cette fonction est non nulle, mais pas infinie …
Analyse spectrale
• Cas d’une fonction harmonique
• Schéma centré d’ordre 2 à 2
• L’erreur numérique commise revient à multiplier par
exp( )
Re
exp( )
Re )
( 2 2
2
jkx dx k
f jkx d
x
f = = −
exp( )
, 2 2 1 2 2 1Re x
f f
f dx
f x d
jki
f i i i
x i
i
+
−
= + −
−
cos( ) 1exp( ) 2
Re 2
2 2
x x jki
x k dx
f d
xi
) cos(
1− kx
2 f d
Analyse spectrale
• Schéma centré d’ordre 2 à 4
• L’erreur numérique commise revient à multiplier par
2 2 2 2 24 , 2
) exp(
Re x
f f
f dx
f x d
jki
f i i i
x i
i
+
−
= + −
−
cos(2 ) 1exp( ) 2
Re 1 2
2 2
x x jki
x k dx
f d
xi
2
2 2
) 2
cos(
1
x k
x k
−
2 2
dx f d
Analyse spectrale
• Les erreurs sont réelles uniquement, donc pas de convection numérique
2
4
Retour sur le schéma amont ordre 1
• Rappel: ce schéma introduit beaucoup de dissipation par comparaison avec le centré d’ordre 2
• En effet:
• Utiliser ce schéma revient donc à résoudre
avec un schéma centré d’ordre 2
2
1 1
1 1
1
2
2
2 x
f f
f x x
f f
x f
f
i i i i i i i
+
−
−
= −
−
− + − + −2 2 0
0
2 x
f x
U x
U f t
f
D
=
+
i i+1 i +2
−1 i
−2 i
−3
i x
Laplacien
2
2 f f f f f
f − + − +
j
−1 j
−2 j
+1 j
+ 2 j
x
y
Réalisations sous Matlab
1. Créer un programme qui trace une fonction analytique et sa dérivée analytique
2. Créer une fonction qui calcule par différences finies (DF) la dérivée d’une fonction f sur maillage uniforme.
3. Pour différentes fonctions f, tracer sur le même graphe la dérivée analytique de f et la dérivée issue d’une formule aux DF
4. Vérification de l’ordre de convergence:
1. En vérifiant que l’écart entre DF et analytique est « nul » pour une fonction polynomiale bien choisie
2. En traçant l’évolution de l’écart entre DF et analytique pour différentes valeurs de dx pour une fonction non polynomiale
5. Vérifier numériquement les expressions théoriques des fonctions erreurs issues de l’analyse spectrale. On utilisera pour cela des formules aux
différences finies de type périodique sur un domaine de longueur 2p/k appliquées à la fonction test sin kx.