Résolution numérique des EDP linéaires
Résolution numérique des EDP linéaires
2 et 3 mars 2017
Sommaire
1 Introduction
Généralités
Conditions aux limites
Problèmes statiques et dynamiques
2 Exemple de problème statique linéaire : l’équation de Laplace
Discrétisation du problème
Reformulation vectorielle de la solution
Solution du problème
3 Problèmes dynamiques
Discrétisation de l’espace et du temps
Algorithme explicite du premier ordre en temps
Algorithme implicite du premier ordre en temps
Algorithme de Crank–Nicolson
4 Équation des ondes
Contexte
Équations elliptiques/paraboliques/hyperboliques
Problèmes statiques
Équation de Laplace !
∂2 ∂2
∆T = + T =0
∂x2 ∂y 2
Problèmes dynamiques
2 - Problèmes dynamiques :
∂u ∂2u
=D (5)
∂t ∂x2
avec diverses conditions initiales.
Sommaire
1 Introduction
Généralités
Conditions aux limites
Problèmes statiques et dynamiques
2 Exemple de problème statique linéaire : l’équation de Laplace
Discrétisation du problème
Reformulation vectorielle de la solution
Solution du problème
3 Problèmes dynamiques
Discrétisation de l’espace et du temps
Algorithme explicite du premier ordre en temps
Algorithme implicite du premier ordre en temps
Algorithme de Crank–Nicolson
4 Équation des ondes
∆T = 0 ∆x
à l’intérieur de D.
Simplification :
∆y
D rectangulaire,
de côtés ∆x et ∆y. x
Maillage du domaine D
Discrétisation du domaine D : température évaluée en un nombre fini de
points. Le plus simple : grille de pas dx = dy = p
.'.'. (0,j' ).'.'.'.'.'.
1 .'.'.' j .'.'.'.'.'. nc y 0 j nc+1
0
1 y
.'.'.
∆x'=( nl+1)' p
.' .
p (i' ,j' )
i
i (i,j' )
(i,nc+1)
.'.'.'.'.'.
.'.'.'.'.'.
nl
p nl' +1
x x
∆y'=(nc+1)' p
Indexation 2D du domaine
À l’intérieur de la grille, on a :
nl = ∆x/p − 1 lignes horizontales.
nc = ∆y/p − 1 colonnes verticales
Chaque point est repéré par un couple d’indices (i, j) où le premier indice
note le numéro de la ligne et le second celui de la colonne.
Différences finies
Les dérivées partielles sont approchées par des différences finies, basées
sur des développements de Taylor. Le développement de Taylor :
∂T p2 ∂ 2 T p3 ∂ 3 T
T (x ± p) = T (x) ± p + +
± O p4 (6)
∂x 2 ∂x2 3! ∂x3
montre que :
∂2T
T (x + p) + T (x − p) = 2T (x) + p2 (x) +
O p4 (7)
∂x2
d’où :
∂2T T (x + p) + T (x − p) − 2 T (x)
(x) = + O p2
2 2
(8)
∂x p
ce qui conduit à :
∂2T Ti+1,j + Ti−1,j − 2 Ti,j
(x ) = +
i , yj O p2 (9)
∂x2 p2
dont la précision est du deuxième ordre en p.
(UPMC) Thème 4 : Résolution numérique des EDP 2 et 3 mars 2017 16 / 57
Un problème statique : l’équation de Laplace Discrétisation du problème
Obtention alternative :
∂T p T (x ± p) − T (x)
x± ≈± (10)
∂x 2 p
qui conduit à :
∂2T 1 ∂T p ∂T p
(xi , yj ) ≈ xi + , yj − xi − , yj (11)
∂x2 p ∂x 2 ∂x 2
soit encore :
∂2T Ti+1,j + Ti−1,j − 2 Ti,j
(x ) = +
i , yj O p2 (12)
∂x2 p2
N = nc × nl valeurs à déterminer
à partir de 2(nc + nl) températures connues.
Certains points intérieurs ont des voisins sur les parois avec des
températures imposées qui vont constituer le second membre.
Noter que le pas p n’intervient plus.
Ti,j ⇐⇒ Zk 1 6 k 6 nl × nc
1N Nord j
y Figure 5 – Renumérotation des
1 2 nc points de grille pour représenter la
1W
solution sous la forme d’un vecteur :
2nc
Ouest
Formulation vectorielle
Pour un point sans contact avec les bords du domaine, l’équation (14)
s’écrit :
Zk−nc + Zk−1 − 4Zk + Zk+1 + Zk+nc = 0 (15)
Ne pas croire que le second membre du système linéaire est nul !
Pour un point en contact avec un bord, cette équation fait intervenir des
températures imposées : par exemple celles du bord Nord si i = 1.
Matrice L2D
AZ=B (16)
où A = L2D est une matrice carrée N × N comportant
nl × nl blocs carrés de dimension nc × nc.
L2D est symétrique tridiagonale par blocs :
1 blocs de type L1D avec −4 au lieu de −2 sur la diagonale ;
2 blocs de type identité sur la sous-diagonale et la sur-diagonale.
x
−4 1 0 0 1 0 0 0 0 0 0 0
1 −4 1 0 0 1 0 0 0 0 0 0
0 1 −4 1 0 0 1 0 0 0 0 0
0 0 1 −4 0 0 0 1 0 0 0 0
1 0 0 0 −4 1 0 0 1 0 0 0
0 1 0 0 1 −4 1 0 0 1 0 0 nl blocs
L2D = 0 0 1 0 0 1 −4 1 0 0 1 0 de taille
0 0 0 1 0 0 1 −4 0 0 0 1 nc × nc
0 0 0 0 1 0 0 0 −4 1 0 0
0 0 0 0 0 1 0 0 1 −4 1 0
0 0 0 0 0 0 1 0 0 1 −4 1
0 0 0 0 0 0 0 1 0 0 1 −4
←−−nc−−→ ←−−nc−−→ ←−−nc−−→ y
−4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
x
1 −4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 −4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 −4 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 −4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 1 −4 1 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 1 −4 1 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 −4 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 −4 1 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 1 −4 1 0 0 1 0 0 0 0 0 0 nl blocs
L2D = 0 0 0 0 0 0 1 0 0 1 −4 1 0 0 1 0 0 0 0 0 de taille
0 0 0 0 0 0 0 1 0 0 1 −4 0 0 0 1 0 0 0 0
nc × nc
0 0 0 0 0 0 0 0 1 0 0 0 −4 1 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 1 −4 1 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 1 −4 1 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 −4 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 −4 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 −4 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 −4 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 −4
y
←−−nc−−→ ←−−nc−−→ ←−−nc−−→ ←−−nc−−→ ←−−nc−−→
nl = 5 et nc = 4
-4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x
1 -4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 -4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
k =1 0 0 1 -4 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
(1,1)
1 0 0 0 -4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 1 -4 1 0 0 1 0 0 0 0 0 0 0 0 0 0
nl blocs de taille nc × nc
0 0 1 0 0 1 -4 1 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 -4 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 -4 1 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 1 -4 1 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 1 -4 1 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 1 -4 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 -4 1 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 1 -4 1 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 1 -4 1 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 -4 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -4 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 -4 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 -4 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 -4
y
←−nc−→ ←−nc−→ ←−nc−→ ←−nc−→ ← −nc−→
Un problème statique : l’équation de Laplace Reformulation vectorielle de la solution
Zn+1 = −D−1 N Zn − B = N Zn − B /4
Stockage bande
Fonctions pour matrices bandes =⇒ stockage spécifique de la matrice :
«stockage bande».
Ne fournir que les sur- et sous-diagonales significatives à la procédure.
Deux possibilités :
Écriture directe de la matrice contenant les diagonales
Écriture de la matrice complète puis « conversion ».
(en C : procédure matfull2band fournie)
kl=2 ♣
♦ ♥
♦ ♠
Sommaire
1 Introduction
Généralités
Conditions aux limites
Problèmes statiques et dynamiques
2 Exemple de problème statique linéaire : l’équation de Laplace
Discrétisation du problème
Reformulation vectorielle de la solution
Solution du problème
3 Problèmes dynamiques
Discrétisation de l’espace et du temps
Algorithme explicite du premier ordre en temps
Algorithme implicite du premier ordre en temps
Algorithme de Crank–Nicolson
4 Équation des ondes
Problèmes dynamiques :
Évolution temporelle à partir d’un état d’équilibre
Phénomènes de propagation
Caractéristiques :
Conditions initiales
Conditions aux limites (peuvent dépendre du temps)
=⇒ système forcé : transitoire puis régime permanent ν ≈ νforcé
∂u ∂2u
=D 2 (17)
∂t ∂x
T = (nt + 1)δt
Un
point intérieur
δt nx points intérieurs
unj inconnu
Cond. aux Limites
en x = 0 et x = L n=1
Cond. Initiale
n=0 x
en t = 0 (n = 0)
j=0 j=1 δx j = nx + 1
Discrétisation du domaine
D δt
α= (19)
δx2
un+1
j = α unj+1 + (1 − 2α) unj + α unj−1 pour 1 6 j 6 nx (20)
t
Un+1
(n + 1)δt
Figure 7 – Schéma
illustrant la progression nδt
d’un pas de temps avec Un
l’algorithme explicite du
premier ordre en δt.
0 x
0 j−1 j j+1 nx + 1
un+1
j = α unj+1 + (1 − 2α) unj + α unj−1
Explicite : stabilité
Problème important : instabilité de la méthode explicite
pour un pas de temps « un peu trop grand » (α > 0.5) :
0.3
1pas
2pas
0.25 4pas
6pas
0.2 α=1.2 8pas
10pas
0.15 12pas
14pas
0.1
0.05
-0.05
-0.1
-0.15
0 20 40 60 80 100 120 140
= 1 + α eik δx − 2 + e−ik δx
A(n+1)
A(n)
2
= 1 + α eik δx/2 − e−ik δx/2
(23)
= 1 − 4α sin2
k δx
2 .
− 4 sin2 pβ ; m = sin m p β
vecteur propre : u(p)
valeur propre :
2i sin ωδt
exp(i ωδt = 4α sin2 kδx
2 2 2 (24)
0.5 t→∞
u(x,t)
0.0
0.5
1.0
0 20 40 60 80 100 120
position : x
2.2
2.0
1.8
u(x,t)
1.6
1.4
1.2
1.0
0.8
0 20 40 60 80 100 120
position : x
Algorithme explicite (progressif) simple, mais instable sauf très petits pas
Stabiliser (comme Euler en EDO) en passant en implicite (rétrograde).
Algorithme implicite : dérivée temporelle « vers l’arrière ».
j−1 + (1 + 2α) uj
−α un+1 j+1 = uj pour j ∈ [1, nx ]
n+1
− α un+1 n
(26)
ujn+1
Figure 11 – Schéma (n+1) δt
illustrant la
progression d’un pas n δt ujn
de temps avec
l’algorithme implicite
du premier ordre en δt.
x
j δx (nx+1) δx
0
(j −1) δx (j +1) δx
j−1 + (1 + 2α) uj
−α un+1 j+1 = uj
n+1
− α un+1 n
Formulation matricielle
Même stratégie que « Euler modifié » (cf. EDO) : moyenne des deux
algorithmes.
ujn+1
Figure 12 – Schéma (n+1) δt
illustrant la progression n δt ujn
d’un pas de temps avec
l’algorithme de
Crank–Nicolson. x
j δx (nx+1) δx
0
(j −1) δx (j +1) δx
α α α α
− un+1 + (1 + α)un+1 − un+1 = unj−1 + (1 − α)unj + unj+1
2 j−1 j
2 j+1 2 2
1 − 2 α sin2
k δx
θ=
2
(28)
1 + 2 α sin2
k δx
2
Formulation matricielle
α α α n α
j−1 + (1 + α)uj
− un+1 j+1 = uj−1 + (1 − α)unj + unj+1
n+1
− un+1
2 2 2 2
(29)
sauf pour j = 1 et j = nx où interviennent les CL.
De façon matricielle :
α −α αh n
=M Un + V + Vn+1
i
n+1
M U (30)
2 2 2
où M(α) = 11 − α L1D
Sommaire
1 Introduction
Généralités
Conditions aux limites
Problèmes statiques et dynamiques
2 Exemple de problème statique linéaire : l’équation de Laplace
Discrétisation du problème
Reformulation vectorielle de la solution
Solution du problème
3 Problèmes dynamiques
Discrétisation de l’espace et du temps
Algorithme explicite du premier ordre en temps
Algorithme implicite du premier ordre en temps
Algorithme de Crank–Nicolson
4 Équation des ondes
∂2u 2
2∂ u
un+1 + un−1 − 2unj un + unj−1 − 2unj
= =
j j 2 j+1
c ⇒ c
∂t2 ∂x2 (δt)2 (δx)2
(31)
(deuxième ordre en temps et espace).
Note : symétrie entre temps et espace.
Algorithme explicite
δt
Poser α = c ⇒ équations explicites à trois niveaux de temps :
δx
un+1
j = α2 (unj+1 + unj−1 ) + 2(1 − α2 )unj − un−1
j . (32)
Critère CFL
Figure 13 – Progression
d’un pas de temps dans un+1
j
l’algorithme explicite du (n + 1)δt
second ordre en temps et cδt
espace pour l’équation nδt
des ondes de d’Alembert
(n − 1)δt
un−1
Critère CFL : cδt < δx 1/c j δt
0 δx L x
Le critère CFL se traduit (dans ce cas simple 1D) par le fait que des points
intervenant dans la progression doivent être hors du cône de lumière, pour
laisser à l’onde « le temps de se propager ».