Vous êtes sur la page 1sur 28

Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Calcul Scientifique

Maher Moakher
Ecole Polytechnique de Tunisie

Avril, 2020
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Plan de la Séance

Equation de la chaleur en une dimension de l’espace

Introduction

Solution par séparation des variables

Schémas explicite et implicite

Le θ-schéma
∗ Consistance
∗ Stabilié
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Introduction
Considérons une tige de longueur L avec une section transversale A,
parfaitement isolé sur sa surface latérale.

φ(x, t) φ(x + dx, t)


A

x=0 x x + dx x=L

Soient e(x, t) la densité d’énergie thermique et φ(x, t) le flux de chaleur


(quantité d’énergie thermique par unité de temps et par unité de surface).
Alors, la conservation de l’énergie thermique dans une petite tranche Adx de la
tige s’écrit :
∂e(x, t) ∂φ(x, t)
Adx = (φ(x, t) − φ(x + dx, t))A = − Adx + O(dx2 ).
∂t ∂x
En divisant par Adx puis en faisant tendre dx vers 0, on obtient
∂e(x, t) ∂φ(x, t)
=− .
∂t ∂x
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Introduction
Soient u(x, t) la température, c(x) la chaleur spécifique du matériau, et
ρ(x) la densité massique de la tige. Alors
e(x, t) = c(x)ρ(x)u(x, t).
En utilisant la loi de Fourier
∂u(x, t)
φ(x, t) = −K(x) ,
∂x
la conservation de l’énergie devient
 
∂u ∂ ∂u
c(x)ρ(x) = K(x) .
∂t ∂x ∂x
Si le matériau de la tige est homogène, c(x), ρ(x) et K(x) sont constantes
et l’équation de chaleur a la forme :
∂u ∂2u
= κ 2,
∂t ∂x
où κ = K/(cρ) est la diffusivité thermique.
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Solution par séparation des variables


On s’interesse à la résolution du problème

∂u ∂ 2 u


 − 2 = 0, (x, t) ∈ [0, 1] × R+ ,
∂t ∂x

+ (1)
u(0, t) = u(1, t) = 0, t ∈ R ,

u(x, 0) = u0 (x), x ∈ [0, 1].

Cherchons des solutions non triviales sous la forme séparée u(x, t) = V(x)W(t).
Alors
V 00 (x) W 0 (t)
V(x)W 0 (t) − V 00 (x)W(t) = 0 ⇔ = .
V(x) W(t)
Donc, il existe une constante K telle que :

V 00 (x) = −K 2 V(x), W 0 (t) = −K 2 W(t).

D’où
V(x) = A cos(Kx) + B sin(Kx), W(t) = C exp(−K 2 t).
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Solution par séparation des variables


Les conditions aux limites u(0, t) = u(1, t) = 0 impliquent que
A = 0 et K = mπ, m ∈ N.

Donc, pour tout m ∈ N, on a


2
π2 t
Vm (x) = Bm sin(mπx), Wm (t) = Cm e−m .
Par conséquent, la solution de (1) s’écrit
X 2 2
u(x, t) = αm sin(mπx)e−m π t .
m∈N∗

La condition initiale donne


X
u0 (x) = αm sin(mπx),
m∈N∗

et donc
Z 1
αm = u0 (x) sin(mπx)dx.
0
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Solution numérique
On s’interesse à la résolution numérique du problème
∂u ∂ 2 u


 − 2 = 0, (x, t) ∈ [0, 1] × [0, T],
∂t ∂x

u(0, t) = u(1, t) = 0, t ∈ [0, T], (2)


u(x, 0) = u0 (x), x ∈ [0, 1].

On disctétise l’intervalle [0, 1] par l’introduction des K + 2 points


1
xk = k∆x, k = 0, . . . , K + 1, où ∆x =.
K+1
On disctétise l’intervalle [0, T] par l’introduction des N + 1 points :
T
tn = n∆t, n = 0, . . . , K, où ∆t =
.
N
On cherche vnj une approximation de u(x, t) au point (xj , tn ), 1 ≤ n ≤ N,
1 ≤ j ≤ K.
L’approximation des condition aux limites et la condition initiale donnent
vn0 = vnK+1 = 0, 1 ≤ n ≤ N, v0j = u0 (xj ), 0 ≤ j ≤ K + 1.
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Schéma explicite
Pour la dérivée en temps on utilise la différence finie décentrée à droite :
∂u n
vn+1
j − vnj
(xj , t ) = + O(∆t),
∂t ∆t
qui est précise au premier ordre.
Pour la dérivée seconde en espace on utilise la différence finie centrée :
∂2u vnj+1 − 2vnj + vnj−1
(xj , t n
) = + O(∆x2 ),
∂x2 ∆x2
qui est précise au deuxième ordre.
On obtient alors le schéma explicite :
vn+1
j − vnj vnj+1 − 2vnj + vnj−1
− = 0.
∆t ∆x2
ou encore
∆t n
vn+1 = vnj + (v − 2vnj + vnj−1 ). (SE)
j
∆x2 j+1
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Schéma explicite
t

∆t

tn+1

tn

xj−1 xj xj+1 x
∆x
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Schéma implicite
On pourra approximer l’EDP à l’instant tn+1 plutôt qu’à l’instant tn .
Pour la dérivée en temps on utilise la différence finie décentrée à gauche :
∂u vn+1
j − vnj
(xj , tn+1 ) = + O(∆t).
∂t ∆t
Pour la dérivée seconde en espace on utilise la différence finie centrée :
∂2u vn+1 n+1
j+1 − 2vj + vn+1
j−1
n+1
(xj , t ) = + O(∆x2 ).
∂x2 ∆x2
Après un décalage d’indices, on obtient alors le schéma implicite :
vn+1
j − vnj vn+1 n+1
j+1 − 2vj + vn+1
j−1
− = 0.
∆t ∆x2
ou encore
∆t n+1
vn+1
j = vnj + (v − 2vn+1
j + vn+1
j−1 ). (SI)
∆x2 j+1
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Schéma implicite
t

∆t

tn+1

tn

xj−1 xj xj+1 x
∆x
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

θ-schéma
Pour tout θ ∈ [0, 1], on définit le θ-schéma par la combinaison convexe
des schémas explicite et implicite :

∆t h i
vn+1
j = vnj + (1−θ)(v n
j+1 −2vn
j +vn
j−1 )+θ(vn+1
j+1 −2v n+1
j +vn+1
j−1 .
)
∆x2

Quand θ = 0, on obtient le schéma explicite (SE).


Quand θ = 1, on obtient le schéma implicite (SI).
Quand θ = 12 , on obtient le schéma de Crank-Nicolson.

Proposition
Si la solution u ∈ C 4 (R × R+
∗ ; R), alors le θ-schéma est :
d’ordre 1 en temps et d’ordre 2 en espace pour θ 6= 21 .
d’ordre 2 en temps et d’ordre 2 en espace pour θ = 21 .
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

θ-schéma
Démonstration : Si la solution u ∈ C 4 (R × R+ ∗ ; R), alors en faisant un
développement de Taylor à l’ordre 3 par rapport à t on obtient :
∂u ∂2u ∆t2
(xj , tn )∆t + 2 (xj , tn )
u(xj , tn+1 ) − u(xj , tn ) = + O(∆t3 ).
∂t ∂t 2
Un développement de Taylor à l’ordre 4 par rapport à x donne :
∂2u
u(xj+1 , tn ) − 2u(xj , tn ) + u(xj−1 , tn ) = (xj , tn )∆x2 + O(∆x4 ),
∂x2
∂2u
u(xj+1 , tn+1 ) − 2u(xj , tn+1 ) + u(xj−1 , tn+1 ) = (xj , tn+1 )∆x2 + O(∆x4 ).
∂x2
∂2u ∂2u ∂3u
Mais (x j , t n+1
) = (x j , t n
) + (xj , tn )∆t + O(∆t2 ), et donc
∂x2 ∂x2 ∂t∂x2
∂2u
u(xj+1 , tn+1 ) − 2u(xj , tn+1 ) + u(xj−1 , tn+1 ) = (xj , tn )∆x2
∂x2
∂3u
+ (xj , tn )∆x2 ∆t + O(∆t2 + ∆x4 ).
∂t∂x2
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

θ-schéma : Consistance
L’erreur de consistance est :
h un+1 − un un − 2un + un i
j j j+1 j j−1
εnj (∆x, ∆t) := (1 − θ) − 2
∆t ∆x
h un+1 − un un+1 − 2un+1 + un+1 i
j j j+1 j j−1
+θ −
∆t ∆x2
∂u ∂2u
= (xj , tn ) − 2 (xj , tn )
|∂t {z ∂x }
=0
∆t ∂  ∂u ∂2u 
+ (xj , tn ) − 2(1 − θ) 2 (xj , tn ) + O(∆t2 + ∆x2 )
2 ∂t |∂t {z ∂x }
=0 si θ= 12
(
O(∆t2 + ∆x2 ) si θ = 21 ,
=
O(∆t + ∆x2 ) si θ 6= 21 .
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

θ-schéma : Stabilité
Proposition
Si 0 ≤ θ < 21 , alors le θ-schéma est stable sous la condition CFL
∆t 1
∆x2
≤ 2(1−2θ) .
1
Si 2 ≤ θ ≤ 1, alors le θ-schéma est inconditionnellement stable.
∆t
Démonstration : En posant λ = ∆x 2 et en appliquant la transformation
de Fourier au θ-schéma on obtient :
(1−θλ(e2πiξ∆x −2+e−2πiξ∆x ))v̂n+1 = (1+(1−θ)λ(e2πiξ∆x −2+e−2πiξ∆x ))v̂n .
D’où,
b(ξ) = (1 − θλ(e2πiξ∆x − 2 + e2πiξ∆x )) = 1 + 4θλ sin2 (πξ∆x),
c(ξ) = (1+(1−θ)λ(e2πiξ∆x − 2 + e−2πi∆xξ )) = 1−4(1−θ)λ sin2 (πξ∆x).
Donc le facteur d’amplification est :
c(ξ) 1 − 4(1 − θ)λ sin2 (πξ∆x)
a(ξ) := = .
b(ξ) 1 + 4θλ sin2 (πξ∆x)
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

θ-schéma : Stabilité

En exigeant que |a(ξ)| ≤ 1, on a

∆t
4(1 − 2θ) ≤ 2.
∆x2
D’où :
Pour 0 ≤ θ < 12 , la condition de stabilité s’écrit

∆t 1
2
≤ .
∆x 2(1 − 2θ)

Pour θ ≥ 21 , le θ-schéma est inconditionnellement stable.


On remarque que la condition de stabilité devient de moins en moins
restrictive lorsque θ varie de 0 (schéma explicite) jusqu’à 21 (schéma de
Crank-Nicolson).
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

θ-schéma : Ecriture matricielle


∆t
Soient λ = et
∆x2
 n   n+1   
v1 v1 2 −1
 vn2   vn+1  −1 2 −1 O
   2   
n  ..  n+1  ..  .. .. ..
V =  . , V =  . , A= .
 
   n+1   . . . 
n O
v
K−1
 v
K−1
 −1 2 −1
vnK n+1
vK −1 2
Alors le θ-schéma s’écrit
(I + θλA)V n+1 = (I − (1 − θ)λA)V n .
Pour tout θ ∈ [0, 1], la matrice I + θλA est à diagonale dominante stricte et
donc inversible. Donc
n
V n = (I + θλA)−1 (I − (1 − θ)λA) V 0 ,


et par conséquant,
n
kV n k2 ≤ %((I + θλA)−1 (I − (1 − θ)λA)) kV 0 k2 .

Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Plan de la Séance

Equation des ondes en une dimension de l’espace

Introduction

Solution par séparation des variables

Schémas explicite et implicite

Le schéma de Newmark
∗ Consistance
∗ Stabilié
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Equation des ondes en 1D


Soit une corde élastique de longueur L, de masse linéique ρ, fixée en ses
deux extrémités et initialement tendue avec une tension T.
Soit u(x, t) le déplacement transversal, par rapport à la position
d’équilibre, de la corde à l’abscisse x et à l’instant t.

u(x, t)

x=0 x=L

Alors, le mouvement de la corde est régit par l’équation des cordes


vibrantes :
∂2u 2
2∂ u
− c = 0,
∂t2 ∂x2
q
où c = Tρ désigne la célérité des ondes dans la corde.
Cette équation s’appelle aussi équation des ondes à une dimension
d’espace.
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Solution par séparation des variables


On s’interesse à la résolution du problème
 2 2
∂ u 2∂ u
− = 0, (x, t) ∈ [0, 1] × R+ ,


 2
c 2


 ∂t ∂x
u(0, t) = u(1, t) = 0, t ∈ R+ ,

(3)


 u(x, 0) = u0 (x), x ∈ [0, 1],
 ∂u (x, 0) = u1 (x),


 x ∈ [0, 1].
∂t
Cherchons des solutions non triviales sous la forme séparée u(x, t) = V(x)W(t).
Alors
V 00 (x) W 00 (t)
V(x)W 00 (t) − c2 V 00 (x)W(t) = 0 ⇔ c2 = .
V(x) W(t)
Donc, il existe une constante K telle que :
V 00 (x) = −K 2 V(x), W 00 (t) = −K 2 c2 W(t).
D’où
V(x) = A cos(Kx) + B sin(Kx), W(t) = C cos(Kct) + D sin(Kct).
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Solution par séparation des variables


Les conditions aux limites u(0, t) = u(1, t) = 0 impliquent que
A = 0 et K = mπ, m ∈ N.

Donc, pour tout m ∈ N, on a


Vm (x) = Bm sin(mπx), Wm (t) = Cm cos(mπct) + Dm sin(mπct).
Par conséquent, la solution de (3) s’écrit
X
u(x, t) = sin(mπx)(αm cos(mπct) + βm sin(mπct)).
m∈N∗

Les conditions initiales donnent


X X
u0 (x) = αm sin(mπx), u1 (x) = mπcβm sin(mπx),
m∈N∗ m∈N∗

et donc
Z 1 Z 1
αm = u0 (x) sin(mπx)dx, mπcβm = u1 (x) sin(mπx)dx.
0 0
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Equation des ondes en 1D : résolution numérique


On s’interesse à la résolution numérique du problème
 2 2
∂ u 2 ∂ u = 0,
− c (x, t) ∈ [0, 1] × [0, T],


∂t2 ∂x2




u(0, t) = u(1, t) = 0, t ∈ [0, T],

(4)


 u(x, 0) = u0 (x), x ∈ [0, 1],
 ∂u (x, 0) = u1 (x),


x ∈ [0, 1].

∂t
En utilisant des différences finies centrées en temps et en espace on a :
Le schéma explicite
vn+1
j − 2vnj + vn−1
j vnj+1 − 2vnj + vnj−1
− c2 = 0.
∆t2 ∆x2
Le schéma implicite
vn+1
j − 2vnj + vn−1
j vn+1 n+1
j+1 − 2vj + vn+1
j−1
− c2 = 0.
∆t2 ∆x2
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Initialisation

Ces deux schémas sont à deux pas, où à 3 niveaux, de temps.

Leur initialisation nécessite la donnée des deux suites (v0j )j∈Z et (v1j )j∈Z .

Celles-ci peuvent être obtenues grâce aux conditions initiales :

u(x, 0) = u0 (x) =⇒ v0j = u0 (xj ), j ∈ Z,


∂u
(x, 0) = u1 (x) =⇒ v1j = v0j + ∆tu1 (xj ), j ∈ Z.
∂t

La deuxième condition est obtenue par une approximation par différence


∂u
finie décentée à droite de (x, 0).
∂t
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Schéma de Newmark
Pour un paramètre β ∈ [0, 12 ], on définit le schéma de Newmark

1 n+1 n n−1 2 n+1 n n−1



(vj − 2v j + v j ) − c βAj v + (1 − 2β)Aj v + βA j v = 0,
∆t2
où
n
vnj+1 − 2vnj + vnj−1
Aj v = ,
∆x2
est une approximation de la dérivée seconde en espace au point (xj , tn ).

Quand β = 0 on retrouve le schéma explicite.

Pour l’initialisation de ce schéma on utilise les suites (v0j )j∈Z et (v1j )j∈Z
données par :

v0j = u0 (xj ), v1j = v0j + ∆tu1 (xj ), j ∈ Z.


Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Schéma de Newmark : Consistance


Proposition
Si la solution u ∈ C 6 (R × R+
∗ ; R), alors le schéma de Newmark est :
1
d’ordre 2 en temps et d’ordre 2 en espace pour β 6= 12 .
1
d’ordre 4 en temps et d’ordre 2 en espace pour β = 12 .

Démonstration : Si la solution u ∈ C 6 (R × R+ ∗ ; R), alors en faisant un


développement de Taylor à l’ordre 6 par rapport à t on obtient :
∂2u 4
2 ∂ u n ∆t
4
u(xj , tn+1 )−2u(xj , tn )+u(xj , tn−1 ) =(x j , t n
)∆t + (x j , t ) +O(∆t6 ).
∂t2 ∂t4 12
Un développement de Taylor à l’ordre 4 par rapport à x donne :
∂2u
u(xj+1 , tn ) − 2u(xj , tn ) + u(xj−1 , tn ) = (xj , tn )∆x2 + O(∆x4 ),
∂x2
∂2u
u(xj+1 , tn±1 )−2u(xj , tn±1 )+u(xj−1 , tn±1 ) = (xj , tn±1 )∆x2 +O(∆x4 ).
∂x2
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Schéma de Newmark : Consistance


Or
∂2u n±1 ∂2u n ∂3u n ∂4u n ∆t
2
(x j , t ) = (xj , t )± (x j , t )∆t + (xj , t )
∂x2 ∂x2 ∂t∂x2 ∂ 2 t∂x2 2
5 3
∂ u ∆t
± 3 2 (xj , tn ) + O(∆t4 ).
∂ t∂x 6
Donc, l’erreur de consistance est :
un+1
j − 2unj + un−1
j un − 2unj + unj−1
2 j+1
εnj (∆x, ∆t) := − (1 − 2β)c
∆t2 ∆x2
 un+1 − 2un+1 + un+1 uj+1 − 2ujn−1 + un−1
n−1 
j+1 j j−1 j−1
− βc2 +
∆x2 ∆x2
2 2 2 2  2
∂ u ∂ u ∆t ∂ ∂ u ∂2u 
= 2 (xj , tn ) − c2 2 (xj , tn ) + 2 2
(xj , tn ) − 12βc2 2 (xj , tn )
|∂t {z ∂x } 12 ∂t |∂t {z ∂x }
=0 1
=0 si β= 12
(
1
4 2 O(∆t4 + ∆x2 ) si β = 12 ,
+ O(∆t + ∆x ) = 1
O(∆t2 + ∆x2 ) si β 6= 12 .
Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Schéma de Newmark : Stabilité


Proposition
Le schéma de Newmark est :
1
Stable si 0 < β < sous la condition CFL :
4
∆t 1
c ≤√ .
∆x 1 − 4β
Inconditionnellement stable si 41 ≤ β ≤ 12 .

Démonstration : En posant λ = c∆t


∆x et en appliquant la transformation
de Fourier au schéma de Newmark on obtient :

v̂n+1 − 2v̂n + v̂n−1 = λ2 β(e2πiξ∆x − 2 + e−2πiξ∆x )v̂n+1

+(1−2β)(e2πiξ∆x − 2 + e−2πiξ∆x )v̂n +β(e2πiξ∆x − 2 + e−2πiξ∆x )v̂n−1 .
D’où,
v̂n+1 − 2v̂n + v̂n−1 = −4λ2 sin2 (πξ∆x) βv̂n+1 + (1 − 2β)v̂n + βv̂n−1 .

Discrétisation de l’équation de la chaleur Discrétisation de l’équation des ondes

Schéma de Newmark : Stabilité


Donc
1 − 2(1 − 2β)λ2 sin2 (πξ∆x) n
v̂n+1 = 2 v̂ − v̂n−1 ,
1 + 4βλ2 sin2 (πξ∆x)
qu’on peut mettre sous forme matricielle V̂ n+1 = A(ξ)V̂ n où
1 − 2(1 − 2β)λ2 sin2 (πξ∆x)
 
 n 
2 2
−1 n v̂
A(ξ) =  1 + 4βλ2 sin (πξ∆x)  , V̂ = n−1 .

1 0
La matrice A(ξ) s’appelle matrice d’amplification.
c2 ∆t2
La condition de stabilié est %(A(ξ)) ≤ 1, ce qui donne (1−4β) ≤ 1.
∆x2
Donc, pour 0 ≤ β < 41 , le schéma est stable sous la condition
∆t 1
c ≤√ .
∆x 1 − 4β
1
Pour 4 ≤ β ≤ 12 , le schéma est inconditionnellement stable.

Vous aimerez peut-être aussi