École Nationale Supérieure de Techniques Avancées
Discrétisation
par différences finies
des problèmes
transitoires
août 2007 MA261 Introduction au calcul scientifique @Eric Lunéville
Introduction
Discrétisation des problèmes transitoires
eq. des ondes : ∂t2 u − c2 △u = f
eq. de la chaleur : ∂t u − α△u = f
différences finies en espace et en temps
• rôle différent des 2 discrétisations : sens du temps
• lien entre les pas de discrétisation lié à la vitesse de propagation
exemple modèle : équation des ondes 1D (corde vibrante)
2 2 2
∂t u(x, t) − c ∂x u(x, t) = f (x, t) x ∈ ]0, 1[ , t > 0
u(0, t) = u(1, t) = 0 t>0
u(0, x) = u0 (x) x ∈ ]0, 1[
∂t u(x, 0) = v0 (x) x ∈ ]0, 1[
1
Un exemple encore plus simple : l’équation de transport
premier ordre
∂t u(x, t) + c∂x u(x, t) = 0 x ∈ R, t > 0
u(0, x) = u0 (x) x∈R pas de condition limite
solution évidente : u(x, t) = u0 (x − ct)
ct
u(., t) = u0 (. − ct)
u0
équation conservative, propagation à vitesse finie (c)
similaire à l’équation des ondes
2
Discrétisation de l’éq. de transport
abscisses de discrétisation xj = j△x j ∈ Z
instants de discrétisation tn = n△t n ≥ 0
t
tn = n△t
t0 = 0 x
x0 = 0 xj = j△x
unj approximation de u(xj , tn )
on a u0j = u0 (xj ) ∀j ∈ Z (condition initiale)
3
n+1
n+1
Idée : fabriquer un schéma qui construit u = uj j∈Z
à partir
des approximations aux instants précédents un , un−1 , ...
schéma décentré (DF d’ordre 1)
un+1
j − un
j u n
j − un
j−1 n+1
+c = 0 ∀n ≥ 0, ∀j ∈ Z
△t △x n
n+1 n
n n
c△t j −1 j j+1
uj = uj − α uj − uj−1 avec α =
△x
schéma explicite à 2 pas!
schéma saute-mouton (leapfrog) (DF d’ordre 2)
n+1
un+1
j − un−1
j unj+1 − unj−1 n
+c = 0 ∀n ≥ 1, ∀j ∈ Z
2△t 2△x n−1
n+1 n−1
n n
uj = uj − α uj+1 − uj−1 j−1 j j +1
schéma explicite à 3 pas! (il faut construire u1 )
4
Ordre des schémas
le schéma décentré est d’ordre 1, le schéma saute-mouton est d’ordre 2
dms : u solution régulière de l’équation de transport
erreur de troncature pour le schéma décentré :
n u(xj , tn+1 ) − u(xj , tn ) u(xj , tn ) − u(xj−1 , tn )
εj = +c
△t △x
= ∂t u(xj , tn ) + O(△t) + c∂x u(xj , tn ) + O(△x)
= O(△x) + O(△t)
erreur de troncature pour le schéma saute-mouton :
u(xj , tn+1 ) − u(xj , tn−1 ) u(xj+1 , tn ) − u(xj−1 , tn )
εnj = +c
2△t 2△x
= ∂t u(xj , tn ) + △t ∂
2 t
2
u(x j , tn ) + O(△t 2
)
+ c∂x u(xj , tn ) + c △x ∂
2 x
2
u(x j , tn ) + O(△x 2
)
= O(△x2 ) + O(△t2 ) car ∂t2 u = −c∂x2 u
5
Stabilité des schémas et convergence
erreur enj = unj − u(xj , tn ) on a pour le schéma décentré :
n+1
n
ej = ej − α ej − ej−1 + △tεnj
n n
..
.
α 1−α
en+1 = Aen + △tεn avec A= .. ..
. .
.. ..
. .
n−1
n−k k
n n 0
e = A e + △t A ε
k=0
n
n−1
An−k εk ≤ T max0≤k≤n−1 An−k εk 0 ≤ n ≤ T
e ≤ △t △t
k=0
déf le schéma est stable pour la norme si il existe une constante C
indépendante de n, △t et △x telle que :
T
An u0 ≤ C u0 0≤n≤ △t
6
la stabilité implique la convergence
n−k k k
n
e ≤ T max A ε ≤ CT max ε ≤ CT (△t + △x)
0≤k≤n−1 0≤k≤n−1
stabilit´eé l2
iξj△x 2
wξ = e j∈Z
, (wξ ) ξ∈R base Fourier de l
pour obtenir la stabilité il suffit de montrer que
T
An wξ 2 ≤ C wξ 2 0≤n≤ △t
(Awξ )j = (1 − α)eiξj△x + αeiξ(j−1)△x
−iξ△x
iξj△x
= 1 − α + αe e =⇒ ∀ξ Awξ = g(ξ, △x, △t)wξ
= g(ξ, △x, △t) (wξ )j
An wξ 2 ≤ sup |g(ξ, △x, △t)|n wξ 2
ξ
Condition suffisante de stabilité : sup |g(ξ, △x, △t)| ≤ 1
ξ
7
2
−iξ△x 2
|g(ξ, △x, △t)| = 1 − α + αe = 1 − 2α(1 − α)(1 − cos ξ△x)
c△t
stable si α = ≤ 1 (condition CFL)
△x
interpr´eétation de la CFL
si u est la solution alors : u(xj , tn+1 ) = u(xj − c△t, tn ) = u0 (xj − ctn+1 )
j−1 j j+1
△t 1
△x CFL : ≤
△x c
n+1
△t △x vitesse de prop. du schéma ≥
≥ c vitesse de prop. de l’équation
△t
n
droite d’équation x − ct = xj − ctn+1 toujours instable si c < 0
de pente 1/c utiliser le décentré avant
8
Stabilit´eé du sch´eéma saute-mouton
même approche (un peu plus compliqué car 3 pas)
c△t
condition CFL : ≤1
△x
fonctionne (sous CFL) quel que soit le signe de la vitesse c (schéma centré!)
α = 0.3 α = 1.01
9
Discrétisation de l’éq. des ondes 1D
2 2 2
∂t u(x, t) − c ∂x u(x, t) = f (x, t) x ∈ ]0, 1[ , t > 0
u(0, t) = u(1, t) = 0 t>0
u(0, x) = u0 (x) x ∈ ]0, 1[
∂t u(x, 0) = v0 (x) x ∈ ]0, 1[
discrétisation de [0, 1] avec m + 2 pts : xj = j△x j = 0, m + 1
t
tn = n△t
1
△x =
m+1
t0 = 0 x
x0 = 0 xj = j△x xm+1 =1
10
Schéma saute-mouton
n+1 n−1 n n n n
u j + uj − 2uj 2
u j+1 + uj−1 − 2uj n
− c = fj ∀j = 1, m ∀n ≥ 1
△t2 △x2
un0 = unm+1 = 0 ∀n ≥ 1
0
u j = u0 (xj ) ∀j = 1, m
1
uj = u0 (xj ) + △t v0 (xj ) ∀j = 1, m
un+1
j = −un−1
j + α 2 n
u j+1 + 2(1 − α 2
)2un
j + α2 n
uj−1 + △t2 n
fj
n+1
schéma explicite à 3 pas
n
d’ordre 2
n−1
j−1 j j+1
11
forme vectorielle
−
→ n
n −
→n n
u = uj j=1,m f = fj j=1,m (élimination des indices 0 et m + 1)
−
→ n+1 2 −
→ n −
→ n−1 2−
→n
u = (2I − α B) u − u + △t f ∀n ≥ 1
u 0, −
−
→ →
u 1 donnés
2 −1
..
−1 2 .
avec B =
matrice m × m
.. ..
. . −1
−1 2
u(x, t) solution de l’eq. des ondes : −
→
u n = (u(xj , tn ))j=1,m
erreur de troncature :
−
→ −
→
u n+1 = (2I − α2 B)−
→
un−− →
u n−1 + △t2 f n + △t2 −
→
εn
avec −
→ε n = O(△t2 ) + O(△x2 ) (approx. DF d’ordre 2)
12
Stabilité et convergence du schéma
l’erreur à l’instant n : −
→
en=−
→
u n+1 − −
→
u n vérifie :
−
→
e n+1 = (2I − α2 B)−
→
en−−
→
e n−1 + △t2 −
→
εn ∀n ≥ 1
−
→ n+1
−
→n e
en posant E = −
→ on a :
en
−
→
−
→n+1 2
(2I − α B) −I −
→n εn −
→n −→n
E = E + −
→ = ME + Ξ
I 0 0 def
qui donne par récurrence :
−
→n n−1
n−1 −
→1 2
n−k k
E =M E + △t M ε
k=1
soit l’estimation d’erreur :
− −
→n
n−1 → 1 n−k −
→ k
E ≤ M E
+ △tT max M Ξ
k=1,n−1
13
Si le schéma est stable :
− → − −
k →
→
M X ≤ C X ∀ X , ∀k ≥ 1 avec C indépendant de k
alors on convergence du schéma :
−
→ −
→
n
E ≤ C1 E 1 + O(△t2 ) + O(△x2 )
condition suffisante de stabilit´eé :
ρ (M) ≤ 1 (ρ rayon spectral)
2
(2I − α B) −I
ici M = et les valeurs propres de B sont connus
I 0
on en déduit après ”quelques calculs” la condition de stabilité :
c△t
|α| = ≤ 1 (CFL)
△x
(même interprétation que pour l’eq. de transport)
14
Equation des ondes 2D
Utilisation de saute-mouton pour l’équation des ondes 2D dans un carré
15
calcul stable
16
Diffraction d’une onde acoustique (milieu air-mer)
17