Académique Documents
Professionnel Documents
Culture Documents
David Vidal
Hiver 2014
Objectif :
Transformer une équation aux dérivées partielles continue valable sur un
domaine continu:
− soit en un système linéaire à N équations pour N inconnues,
− soit en un système de N équations de récurrence,
dont les équations sont associées à un domaine discret appelé maillage.
Méthode :
Écrire sous forme discrète (i-1, i, i+1 …) toutes les dérivées partielles présentes
dans l’EDP appliquée en i ainsi qu’aux C.F. et C.I. 2
Discrétisation des termes de dérivées
Utilisation des développements limités en série de Taylor:
notation indicielle
d T x d T x
2 2 3 3
dT
T x x T i 1 T (i ) x x (...)
4
2 3
(1)
dx i dx i
2 dx i
6
d T x d T x
2 2 3 3
dT
T x x T i 1 T (i ) x x (...)
4
2 3
(2)
dx i dx i
2 dx i
6
T i 1 T i 1 2 T (i ) 2 2
x (...)
4
1 2
dx i
2
permet d’isoler :
dT
2
T i 1 2 T (i ) T i 1
+O(Δ𝑥
2
x (...)2)
dx
2
i
x 2
représentatif de
l’ordre de tous les
termes tronqués 3
Principaux schémas d’approximation des termes dérivés
d 2T
k 2 f dans
dx
T ( x a) Ta
T ( x b) Tb
0 1 21 31 41 L
x1 x2 x3 x4 x5
d 2T Ti 1 2Ti Ti 1
Approximation
dx 2 xi
h2 centrée
avec
h xi 1 xi constant
6
Ainsi nous avons aux nœuds 2, 3 et 4 les relations suivantes:
h2 f2
i 2 : T1 2T2 T3
k
h2 f3
i 3 : T2 2T3 T4
k
h2 f4
i 4 : T3 2T4 T5
k
Qu’on réécrit en transférant les conditions aux frontières à droite:
h2 f2 h2 f2
i 2: 2T2 T3 T1 Ta
k k
h2 f3
i 3 : T2 2T3 T4
k
h2 f4 h2 f4
i 4 : T3 2T4 T5 Tb
k k
7
Ou sous forme matricielle :
2 1 0 T2 Ta k f 2 h2
1 2 1 T
3
2
3
h
k f
0 1 2 T h 2 f
4 b
T k 4
T
Max i T ( xi ) C.h 2
8
Quel algorithme doit-on choisir pour résoudre un système linéaire?
Réponse:
On choisit l’algorithme en fonction de la taille N du système et du type de matrice (p.ex.
diagonale, creuse,…) à résoudre.
Méthodes disponibles:
1. Inversion de matrice et formule de Cramer (calculs de déterminant)
2. Méthodes directes “avancées”(p.ex. factorisation LU, algorithme de Thomas,…)
3. Méthodes itératives (p.ex. méthode de gradient conjugué, Gauss-Seidel,…)
N= 5 10 25 105 106
Formule de Cramer 1300 flops 4108 flops 1015 ans
9
Quel algorithme doit-on choisir pour résoudre un système linéaire?
10
Algorithme de Thomas (forme simplifiée d’une élimination de Gauss)
Fonction MATLAB
function x = TDMAsolver(a,b,c,d)
%a, b, c are the column vectors for the compressed
tridiagonal matrix, d is the right vector
n = length(d); % n is the number of rows
for i = 2:n-1
temp = b(i) - a(i) * c(i-1);
c(i) = c(i) / temp;
d(i) = (d(i) - a(i) * d(i-1))/temp;
end
0 1 21 31 41 L
x1 x2 x3 x4 x5
Aussi, nous avons vu dans un exemple précédent que nous avons sur les nœuds
internes la relation de récurrence suivante:
d 2T
Ti 1 2Ti Ti 1
k Ti 1 2Ti Ti 1 0 pour i 2, 3 et 4
dx 2 xi
h2
hw T T
dT dT dT
k k nx k
dn x b dx x b dx x b
13
Or, en x5 nous avons T=T5. En adoptant pour la dérivée une approximation arrière
du premier ordre, O(h), l’expression de la condition de flux de convection selon un
schéma de discrétisation par différences finies se ramène à la relation:
k
T5 T4
hw T5 T
h
k k
T5 hwT5 T4 hwT
h h
ou encore
k k
T5 hw T4 hwT
h h
14
Finalement, nous obtenons le système matriciel suivant:
2 1 0 0 T2 Ta
1 2 1 0 T3 0
0 1 2 1 T4 0
0 0 h
k k h hw T5 hwT
Remarque: nous avons une équation supplémentaire par rapport à l’exemple
avec conditions de type Dirichlet-Dirichlet aux frontières.
15
Exemple 3:
Transfert de chaleur en régime transitoire
On considère une tige de longueur L=b-a qu’on désigne par Ω et qu’on représente
comme suit:
0 L
a b
Le problème de transfert est gouverné par l’équation de la chaleur (ou 2ème loi de
Fourier) et les conditions frontières de type Dirichlet suivantes:
t=M
t = M-1
Temps total = M t
Flèche de temps
t=2
t
t=1
h
t=0
i=0 i=1 i=2 i=N-2 i=N-1 i=N
1 21 1
N-1 1
N
t = indice en temps x0=a=0 xN=L=Nh=b
i = indice en espace 17
Nous cherchons maintenant une solution approximée pour 𝑇 𝑡, 𝑥 soit:
indice en
temps
𝑇𝑖𝑡 avec:
• i = 1,2,…,N-1 T0 et TN connus, ∀ 𝑡
indice en
espace • t = 1,2,…,M T0 connu, ∀ 𝑖
𝑡
𝜕2𝑇 𝑇𝑖+1 − 2𝑇𝑖𝑡 + 𝑇𝑖−1
𝑡
≈
𝜕𝑥2 𝑖,𝑡
ℎ2
𝜕𝑇 𝑇𝑖𝑡+1 − 𝑇𝑖𝑡
≈ schéma explicite d’Euler
𝜕𝑡 𝑖,𝑡
Δ𝑡
18
Le problème devient alors :
𝛼
𝑇𝑖𝑡+1 −𝑇𝑖𝑡 𝑡
𝜅 𝑇𝑖+1 −2𝑇𝑖𝑡 +𝑇𝑖−1
𝑡
− =0
Δ𝑡 𝜌𝐶𝑝 ℎ2
Δ𝑡
𝑇𝑖𝑡+1 =𝑇𝑖𝑡 +𝛼 𝑡
𝑇𝑖+1 − 2𝑇𝑖𝑡 + 𝑇𝑖−1
𝑡
pour i = 1,2,.., N-1
ℎ2
19
Question : ce schéma explicite est-il stable ?
Rappel:
Vérifions ensemble…
x t+1 = G x t + …
Δ𝑡 Coefficient d’amplification
𝑇𝑖𝑡+1 =𝑇𝑖𝑡 +𝛼 𝑡
𝑇𝑖+1 − 2𝑇𝑖𝑡 + 𝑡
𝑇𝑖−1
ℎ2
Δ𝑡 Δ𝑡
𝑇𝑖𝑡+1 = 1 − 2𝛼 𝑇𝑖𝑡 + 𝛼 𝑡
𝑇𝑖+1 𝑡
+ 𝑇𝑖−1
ℎ2 ℎ2
G
Stable sans oscillation si : 𝟎 ≤ 𝐆 ≤ 𝟏
Stable avec oscillation si : −𝟏 ≤ 𝐆 < 𝟎
Instable si : 𝐆 < −𝟏
Δ𝑡 Δ𝑡
1 − 2𝛼 2 > −1 𝛼 2 <1
ℎ ℎ
Nombre de Courant 20
Question : Que se passe-t-il maintenant si…on remplace les dérivées partielles en
temps par l’approximation arrière (schéma implicite) suivante:
𝑡
𝜕2𝑇 𝑇𝑖+1 − 2𝑇𝑖𝑡 + 𝑇𝑖−1
𝑡
≈
𝜕𝑥2 𝑖,𝑡
ℎ2
𝑡
𝑇𝑖𝑡 −𝑇𝑖𝑡−1 𝑇𝑖+1 −2𝑇𝑖𝑡 +𝑇𝑖−1
𝑡
−𝛼 2 =0
Δ𝑡 ℎ
On a de façon équivalente en faisant le changement d’indice t t +1 et t -1 t :
𝑡+1
𝑇𝑖𝑡+1 −𝑇𝑖𝑡 𝑇𝑖+1 −2𝑇𝑖𝑡+1 +𝑇𝑖−1
𝑡+1
−𝛼 2 =0
Δ𝑡 ℎ
21
On a de façon équivalente:
𝑡+1
𝑇𝑖𝑡+1 −𝑇𝑖𝑡 𝑇𝑖+1 −2𝑇𝑖𝑡+1 +𝑇𝑖−1
𝑡+1
−𝛼 2 =0
Δ𝑡 ℎ
On réarrange:
𝑡+1
−𝛼Δ𝑡 𝑇𝑖−1 + ℎ2 + 2𝛼Δ𝑡 𝑇𝑖𝑡+1 − 𝛼Δ𝑡 𝑇𝑖+1
𝑡+1
= ℎ2𝑇𝑖𝑡
pour i = 1,2,.., N-1
On obtient ainsi un système linéaire de taille N-1 à résoudre au temps t+1 (cf.
transparent suivant). C’est une méthode implicite inconditionnellement stable.
𝑡
𝜕2𝑇 𝑇𝑖+1 − 2𝑇𝑖𝑡 + 𝑇𝑖−1
𝑡
𝜕𝑇 𝑇𝑖𝑡+1 − 𝑇𝑖𝑡
𝛼 2 ≈𝛼 = ≈
𝜕𝑥 𝑖,𝑡
ℎ2 𝜕𝑡 𝑖,𝑡
Δ𝑡
Δ𝑡
𝑇𝑖𝑡+1 =𝑇𝑖𝑡 +𝛼 𝑡
𝑇𝑖+1 − 2𝑇𝑖𝑡 + 𝑇𝑖−1
𝑡
ℎ2
𝑡+1
𝜕2𝑇 𝑇𝑖+1 − 2𝑇𝑖𝑡+1 + 𝑇𝑖−1
𝑡+1
𝜕𝑇 𝑇𝑖𝑡+1 − 𝑇𝑖𝑡
𝛼 2 ≈𝛼 = ≈
𝜕𝑥 𝑖,𝑡+1
ℎ 2 𝜕𝑡 𝑖,𝑡+1
Δ𝑡
Δ𝑡
𝑇𝑖𝑡+1 =𝑇𝑖𝑡 +𝛼 𝑡+1
𝑇𝑖+1 − 2𝑇𝑖𝑡+1 + 𝑇𝑖−1
𝑡+1
ℎ2
𝑡+1
−𝛼Δ𝑡 𝑇𝑖−1 + ℎ2 + 2𝛼Δ𝑡 𝑇𝑖𝑡+1 − 𝛼Δ𝑡 𝑇𝑖+1
𝑡+1
= ℎ2𝑇𝑖𝑡
schéma implicite d’Euler 23
Construction du système matriciel linéaire à l’itération en temps (t+1) pour le
transfert de chaleur en régime transitoire aux conditions frontières de Dirichlet
pour i = 1,2,.., N-1
𝑡+1
−𝛼Δ𝑡 𝑇𝑖−1 + ℎ2 + 2𝛼Δ𝑡 𝑇𝑖𝑡+1 − 𝛼Δ𝑡 𝑇𝑖+1
𝑡+1
= ℎ2𝑇𝑖𝑡
B A B Ci
𝑇1𝑡+1
𝐴 𝐵 0 0 0 0 0 0 𝑡+1
𝐶1 − 𝐵𝑇𝑎
𝑇2 𝐶2
𝐵 𝐴 𝐵 0 0 0 0 0
⋯ 𝑡+1
0 𝐵 𝐴 𝐵 0 0 0 0 𝑇3 𝐶3
0 0 𝐵 𝐴 0 0 0 0 𝑇4𝑡+1 𝐶4
⋮ ⋱ ⋮ ⋮ = ⋮
0 0 0 0 𝐴 𝐵 0 0 𝑇𝑁−4
𝑡+1 𝐶𝑁−4
0 0 0 0 𝐵 𝐴 𝐵 0 𝑇 𝑡+1 𝐶𝑁−3
⋯ 𝑁−3
0 0 0 0 0 𝐵 𝐴 𝐵 𝑡+1 𝐶𝑁−2
𝑇𝑁−2
0 0 0 0 0 0 𝐵 𝐴 𝐶𝑁−1 − 𝐵𝑇𝑏
𝑡+1
𝑇𝑁−1
On devra résoudre ce système autant de fois qu’il y a d’itérations en temps (c-à-d M fois) pour
avoir l’évolution du champ de température dans le temps entre 0 et (Mt) secondes. 24
𝑡+1
−𝛼Δ𝑡 𝑇𝑖−1 + ℎ2 + 2𝛼Δ𝑡 𝑇𝑖𝑡+1 − 𝛼Δ𝑡 𝑇𝑖+1
𝑡+1
= ℎ2𝑇𝑖𝑡
B A B Ci
𝑇0𝑡+1
𝑇𝑎
1 0 0 0 0 0 0 0 0 0 𝑇1𝑡+1
𝐶1
𝐵 𝐴 𝐵 0 0 0 0 0 0 0 𝑇2𝑡+1
0 𝐵 𝐴 𝐵 0 … 0 0 0 0 0 𝐶2
𝑡+1
0 0 𝐵 𝐴 𝐵 0 0 0 0 0 𝑇3 𝐶3
0 0 0 𝐵 𝐴 0 0 0 0 0 𝑇4𝑡+1 𝐶4
⋮ ⋱ ⋮ ⋮ = ⋮
0 0 0 0 0 𝐴 𝐵 0 0 0 𝑡+1
𝑇𝑁−4 𝐶𝑁−4
0 0 0 0 0 𝐵 𝐴 𝐵 0 0 𝑡+1
𝑇𝑁−3 𝐶𝑁−3
0 0 0 0 0 … 0 𝐵 𝐴 𝐵 0 𝑡+1 𝐶𝑁−2
0 0 0 0 0 0 0 𝐵 𝐴 𝐵 𝑇𝑁−2
𝑡+1
𝐶𝑁−1
0 0 0 0 0 0 0 0 0 1 𝑇𝑁−1 𝑇𝑏
𝑡+1
𝑇𝑁
𝑡+1
𝑇𝑖𝑡+1 −𝑇𝑖𝑡 𝑇𝑖+1 −2𝑇𝑖𝑡+1 +𝑇𝑖−1
𝑡+1
−𝛼 =0 schéma implicite d’Euler
Δ𝑡 ℎ2
+
𝑇𝑖𝑡+1 −𝑇𝑖𝑡 𝑡
𝑇𝑖+1 −2𝑇𝑖𝑡 +𝑇𝑖−1
𝑡
−𝛼 =0 schéma explicite d’Euler
Δ𝑡 ℎ2
𝑡+1
𝑇𝑖𝑡+1 −𝑇𝑖𝑡 1 𝑇𝑖+1 −2𝑇𝑖𝑡+1 +𝑇𝑖−1
𝑡+1
−𝛼
Δ𝑡 2 ℎ2
𝑡
1 𝑇𝑖+1 −2𝑇𝑖𝑡 +𝑇𝑖−1
𝑡
−𝛼 2 2 =0
ℎ
L’erreur commise varie aussi en O(h2+Δt2).
Schéma stable inconditionnellement.
Résolution d’un système linéaire à chaque pas de temps: la matrice est
tridiagonale donc la méthode de Thomas peut être utilisée. 26
Autres schémas numériques (suite):
RAPPEL du
• Schémas avec discrétisation du terme source (suite):
– Adams-Moulton (implicite): cours 2
xi+1 = xi + 12∆t Fi + Fi+1 (ordre 2 – Crank-Nicholson)
∆t
xi+1 = xi + 24 9 Fi+1 + 19 Fi − 5 Fi−1 + Fi−2 (ordre 4)
• Schémas prédicteur-correcteur :
Schémas plus précis car ils utilisent un
1. Prédiction:
schéma explicite pour obtenir une
approximation de Fi+1 dans le schéma
xi+1 = xi + ∆t f (ti, xi) implicite
2. Correction:
ou
xi+1 = xi + ∆t f (ti+1, xi+1) (Euler implicite)
Attention: dans cette partie du cours les itérations en temps étaient écrites en indice
(i) et non en exposant (t) comme maintenant. 27
Exemple 4:
Transfert de chaleur adiabatique en régime transitoire
On considère une tige de longueur L=b-a qu’on désigne par Ω et qu’on représente
comme suit:
0 L
a b
Le problème de transfert est gouverné par l’équation de la chaleur (ou 2ème loi de
Fourier) et les conditions frontières de type Dirichlet et Neumann suivantes:
T 2T
C p k 2 0 dans
t x
T (t , a) 0, (extrémité de la tige isolée )
x
T (t , b) Tb , (extrémité de la tige chauffée )
T (0, x) T0 , x (conditions initiales )
Δ𝑡
𝑇𝑖𝑡+1 =𝑇𝑖𝑡 + 𝛼 𝑡
𝑇𝑖+1 − 2𝑇𝑖𝑡 + 𝑇𝑖−1
𝑡
pour i = 1,2,.., N-1
ℎ2
Δ𝑡
pour i > 1 : 𝑇𝑖𝑡+1 =𝑇𝑖𝑡 +𝛼 𝑡
𝑇𝑖+1 − 2𝑇𝑖𝑡 + 𝑇𝑖−1
𝑡
ℎ2
Ne reste plus qu’à marcher en temps (schéma explicite) à partir de T(t=0,x)=T0 pour
obtenir la solution pour tout t et x.
30
On expose ci-après la démarche pour résoudre ce problème à l’aide de la méthode
des différences finies en espace et d’un schéma implicite d’Euler en temps vu
précédemment.
On obtient aux nœuds internes l’équation suivante (cf. exemple précédent):
Δ𝑡
𝑇𝑖𝑡+1 =𝑇𝑖𝑡 + 𝛼 𝑡+1
𝑇𝑖+1 − 2𝑇𝑖𝑡+1 + 𝑇𝑖−1
𝑡+1
pour i = 1,2,.., N-1
ℎ2
𝑡+1
−𝛼Δ𝑡 𝑇𝑖−1 + ℎ2 + 2𝛼Δ𝑡 𝑇𝑖𝑡+1 − 𝛼Δ𝑡 𝑇𝑖+1
𝑡+1
= ℎ2𝑇𝑖𝑡
Pour la condition de flux nul nous prenons le schéma de Gear permettant
d’approximer la dérivée par un schéma avant d’ordre 2, O(h2), comme suit :
𝑡+1 𝑡+1
𝜕𝑇 −𝑇𝑖+2 + 4𝑇𝑖+1 − 3𝑇𝑖𝑡+1
≈ =0
𝜕𝑥 𝑖,𝑡+1
2ℎ
On obtient alors la relation suivante:
B A B Ci
𝑇0𝑡+1
−3 4 −1 0 0 0 0 0 𝑡+1
0
𝑇1 𝐶1
𝐵 𝐴 𝐵 0 ⋯ 0 0 0 0 𝑡+1
0 𝐵 𝐴 𝐵 0 0 0 0 𝑇2 𝐶2
0 0 𝐵 𝐴 0 0 0 0 𝑇3𝑡+1 𝐶3
⋮ ⋱ ⋮ ⋮ = ⋮
0 0 0 0 𝐴 𝐵 0 0 𝑇𝑁−4
𝑡+1 𝐶𝑁−4
0 0 0 0 𝐵 𝐴 𝐵 0 𝑇 𝑡+1 𝐶𝑁−3
⋯ 𝑁−3
0 0 0 0 0 𝐵 𝐴 𝐵 𝑡+1 𝐶𝑁−2
0 0 0 0 𝑇𝑁−2
0 0 𝐵 𝐴 𝑡+1
𝐶𝑁−1 − 𝐵𝑇𝑏
𝑇𝑁−1
32
Exemple 5
Transfert de chaleur dans une plaque (problème en 2D) :
On considère une plaque de dimensions Lx Ly que l’on désigne par Ω et qu’on
représente comme suit:
(Lx,Ly)
(0,Ly)
Γ
y
x
(0,0)
(Lx,0)
Le problème de transfert est gouverné par l’équation elliptique et les conditions
aux frontières de type Dirichlet suivantes:
−𝜅𝛻2𝑇 = 0 dans Ω
𝑇 = 𝑇0 𝑠𝑢𝑟 Γ
k: conductivité thermique (W/m·K)
33
Nous allons résoudre ce problème à l’aide de la méthode des différences finies
4 −1 −1 0 𝑇1,1 1
−1 4 0 −1 𝑇2,1 1
=
−1 0 4 −1 𝑇1,2 0
0 −1 −1 4 𝑇2,2 0
39