Méthodes Numériques
Méthodes Numériques
∂ 2u
∂u
= v 2 2 , x ∈]0, 1[, t > 0,
∂t ∂x
u(0, t) = u(1, t) = 0, t ≥ 0, (3.1)
u(x, 0) = f (x), x ∈ [0, 1].
4
3.6. SCHÉMA CRANK-NICOLSON CHAPTER 3. DIFFÉRENCES FINIES POUR EDPS
v2k
En posant λ = , on trouve
h2
2(uj+1 − uji ) = λ uji+1 − 2uji + uji−1 + uj+1 j+1
+ uj+1
#
i i+1 − 2ui i−1
=⇒ −λuj+1 j+1
i−1 + (2 + 2λ)ui − λuj+1 j j j
i+1 = λui−1 + (2 + 2λ)ui + λui+1 .
Alors
√
2
1 1
4u1 − u2 = 1
1
4 −1 0 u1 0 1 0 2
√
−1 4 −1 u12 = 1 0 1 √1 =⇒ −u11 + 4u12 − u13 = 2
0 −1 4 u13 0 1 0 2
1
−u2 + 4u13 = 1
2
par la soustraction de la première équation et la troisième équation dans le système, on obtient
u11 = u13 . Donc ( √
4u11 − u12 = 1 1 2 2+1
√ =⇒ u2 =
−2u11 + 4u12 = 2 7
et √
4+ 2
u11 = u13 = .
14
• Si θ = 0 −→ Euler explicite.
• Si θ = 1 −→ Euler implicite.
1
• Si θ = 2
−→ Crank-Nicolson.
Où u = u(x, t).
Soit u(x, t) = et + x une solution exacte de notre problème. Comparer les deux méthodes
y
b u=0
u=0 a x
Le domaine Ω
h x
Le maillage de Ω
On écrit le schéma aux différences finies pour les dérivées partielles du second ordre par
Alors le schéma de différences finies pour le problème (3.6) est donné par
j
−ui−1 + 2uji − uji+1 uij−1 − 2uji + uj+1
i
− = fi , 1 ≤ i ≤ n et 1 ≤ j ≤ m,
h2 k2
u0i = um (3.7)
i + 1 = 0, 1 ≤ i ≤ n,
j
u0 = un + 1j = 0, 1 ≤ j ≤ m.
AU = F,
B C ··· 0
.
C B C ..
A=. .
.. . . . . . C
0 ··· C B
avec B et C sont deux matrices carrées dans le corps R représentons comme suit
2
+ k22 −1 −1
··· 0 0 ··· 0
h2 h2 k2
.. .
2 2
· · · ..
−1 −1 −1
+ k 2 h2 . 0 k2
B = h.2 h2 , C = .
.. .. . . ..
.. .. ..
. . −1 . 0
h2
2
0 ··· −1
h2 h2
+ k22 0 ··· 0 −1 k2
Et
U = (U1 , U2 , · · · , Uj , · · · , Un )t , F = (F1 , F2 , · · · , Fj , · · · , Fn )t ,
pour 1 ≤ j ≤ m on a
On fixe i = 2 :
pour j = 1 −→ 4u12 − u11 − u13 u02 − u22 = h2 f21 ,
0
pour j = 2 −→ 4u22 − u21 − u23 − u12 − u32 = h2 f22 ,
pour j = 3 −→ 4u32 − u2 − u31 − u33 − u22 − u42 = h2 f23 .
0
Pour i = 3 :
pour j = 1 −→ 4u13 − u12 − u14 − u03 − u23 = h2 f31 ,
0
pour j = 2 −→ 4u23 − u22 − u24 − u13 − u33 = h2 f32 ,
pour j = 3 −→ 4u33 − u32 − u34 − u23 − u43 = h2 f33 .
0 0
Alors le système matriciel s’écrit sous la forme suivante
1 1
4 −1 0 −1 0 0 0 0 0 u1 f1
−1 4 −1 0 −1 0 0 0 0 u21 f12
3 3
0 −1 4 0 0 −1 0 0 0 u 1 f1
1 1
−1 0 0 4 −1 0 −1 0 0 u 2 f2
2 2
2
0 −1 0 −1 4 −1 0 −1 0 u2 = h f2 ⇐⇒ AU = F.
0 0 −1 0 −1 4 0 0 −1 3 f23
u21 1
0 0 0 −1 0 0 4 −1 0 u 3
f
3
0 2 f32
0 0 0 −1 0 −1 4 −1 u3
0 0 0 0 0 −1 0 −1 4 u33 f33
Où
B C 0 4 −1 0
A = C B C , B = −1 4 −1 et C = −I avec I la matrice identité de R3 .
0 C B 0 −1 4
Propriété de la matrice A :
où u = u(x, y).
Question:
1
Calculer la solution approchée pour h = k = .
3
où u = u(x, y).
2. Déterminer a, b de sort que u(x, y) = ax + by est une solution exacte de notre problème.
NB: Les exercices suivis par une étoile seront traités par l’étudiant.
Exercice 1.
Soient a, b et λ trois nombres réels et f une fonction continue sur [0, 1].
Considérons le problème de Dirichlet
(
−u′′ + λu = f, sur ]0, 1[,
u(0) = a, u(1) = b,
et le problème de Neumann (
−u′′ + λu = f, sur ]0, 1[,
(∗)
u′ (0) = a, u′ (1) = b.
p
(On pose δ = |λ|)
Déterminer les conditions nécessaires et suffisantes sur δ et f pour que le problème de Dirichlet et le
problème de Neumann admettent une unique solution u dans C 2 ([0, 1]).
Exercice 2.
1. Si f est une fonction continue donnée sur [0, 1], montrer par deux manières différentes que le
problème admet une solution unique dans C 2 ([0, 1]) donnée par la formule :
Z 1
∀x ∈ [0, 1] : u(x) = G(x, s)f (s)ds,
0
1 09/02/2020
Université Mohamed Boudiaf -M’sila-
NB: Les exercices suivis par une étoile seront traités par l’étudiant.
Exercice 1.
Considérons le problème mixtes Dirichlet-Neumann
(
−u′′ (x) + u(x) = f (x), 0 < x < L,
(1)
u(0) = 2, u′ (L) = 3.
Les fonctions f , p et q sont continues et données sur [0, 1]. De plus, on suppose que
q(x) > 0, ∀x ∈ [0, 1].
1
1. Écrire le schéma des différences finies pour h = n+1 et xi = ih, i = 0, 1, ..........., n + 1.
(On utilise la notation indicielle pour les fonctions f, p et q)
1+x
u(0) = u(1) = 0.
1
1. Ecrire le schéma des différences finies pour xi = ih où h = n+1 .
(Indication : Utiliser le schéma centré pour la discrétisation de terme u′ (x)).
1 23/02/2020
2. Ecrire le système matriciel correspond à ce schéma.
Exercice 4. (*)
Soit le problème suivant
(
−u′′ (x) + xu(x) = f (x), x ∈]0, 1[,
(3)
u(0) + u′ (0) = 1, u(1) = 1.
1. Écrire le schéma des différences finies pour h = 14 . (Pour approcher u′ (0) en utilisant
approximation à droite)
2. Montrer que le système matriciel admet une unique solution, puis calculer cette solution.
u′ (1) + u(1) = 0,
u(0) = 1.
1
1. Ecrire le schéma des différences finies pour xi = ih où h = n+1 .
(Indication : Utiliser le schéma décentré à droite pour la discrétisation de terme u′ (1)).
2 23/02/2020
Université Mohamed Boudiaf -M’sila-
Faculté de mathématiques et de l’informatique 3ème année licence
Département de mathématiques 2019/2020
Exercice 1.
4. Comparer la solution approchée pour les trois schémas avec la solution exacte et 0 ≤ x ≤ 1
et 0 ≤ t ≤ 0.03.
2. Déterminer a et b telle que u(x, y) = ax + by est une solution exacte du problème (4).
1 1
3. Fixons n = 3 et m = 1, pour xi = ih, yj = jk où h = n+1
et k = m+1
.
Exercice 2
Soit le problème aux limites suivant
(
−u′′ (x) + p(x)u′ (x) + q(x)u(x) = f (x), x ∈]0, 1[,
(1)
u(0) = α, u(1) = β.
Où f , p et q sont des fonctions continues et données sur [0, 1]. De plus, on suppose que
q(x) > 0, ∀x ∈ [0, 1].
1. En utilisant le schéma aux différences finies centré pour approximer u′ (x). On obtient le
système matriciel sous la forme suivante
2 + h2 q1 −1 + h2 p1 ··· 0 u1 h2 f1 + (1 + h2 p1 )α
−1 − h p2 2 + h2 q2 −1 + h p2
2 2
··· u2
h2 f2
.. . . = .
. . . . . . .
. .
. . . .
0 ··· −1 − h2 pn 2 + h2 qn un h2 fn + (1 − h2 pn )β
A U = F. (2)
h h
−1 − pi + 1 − pi = −hpi , où pi < 0
2 2
= h | −pi |
≤ h sup |pi (x)| = h L
x∈[0,1]
2
< L = 2.
L
D’où l’inégalité (3) est satisfaite.
• Si −1 − h2 pi < 0 et −1 + h2 pi > 0, alors
h h
1 + pi − 1 + pi = hpi
2 2
≤ h sup |pi (x)| = h L
x∈[0,1]
2
< L = 2.
L
Alors l’inégalité (3) est vérifiée.
En on déduire que la matrice A est à diagonale dominante stricte, alors elle est inversible.
D’où le système (2) admet une unique solution.
1+x
u(0) = u(1) = 0.
1
On a h = et xi = i h; i = 0, 1, · · · , n + 1.
n+1
1. Schéma aux différences finies:
ui−1 − 2ui + ui+1 ui+1 − ui−1
On sait que u′′ (xi ) ≃ 2
et u′ (xi ) ≃ .
h 2h
Alors
− ui−1 − 2ui + ui+1 + 1 ui+1 − ui−1 = cos(πih), 1 ≤ i ≤ n,
h2 1 + ih 2h
u = u = 0.
0 n+1
h h
− 1 + ui−1 + 2ui + − 1 ui+1 = h2 cos(πih),
=⇒ 2(1 + ih) 2(1 + ih)
u0 = un+1 = 0.
Exercice 4.
Soit le problème suivant (
−u′′ (x) + xu(x) = 0, x ∈]0, 1[,
(4)
u(0) + u′ (0) = 1, u(1) = 1.
1
1. Schéma aux différences finies pour h = :
4
1 u i−1 − 2ui + ui+1 ui+1 − ui−1
Comme h = , alors n = 3. On a u′′ (xi ) ≃ 2
et u′ (xi ) ≃ .
4 h 2h
Alors
−16 (u − 2u + u ) + 1 i u = 0, 1 ≤ i ≤ 3,
i−1 i i+1 i
4
u + 4u − 4u = 1, u = 1.
0 1 0 4
−64ui−1 + (128 + i) ui − 64ui+1 = 0,
=⇒ 4u − 1
u0 = 1 , u4 = 1.
3
Comme la matrice A est tridiagonale symétrique à diagonale dominante stricte, alors elle
est inversible.
D’où le système admet une unique solution.
u′ (1) + u(1) = 0,
u(0) = 1.
2. Système matriciel
On a
pour i = 1 −→ −u0 + 2(h2 + 1)u1 − u2 = h3 =⇒ 2(h2 + 1)u1 − u2 = h3 + 1,
pour i = 1 −→ −u0 + 2(h2 + 1)u1 − u2 = h3 =⇒ 2(h2 + 1)u1 − u2 = h3 + 1,
.
.
.
2 3 2 1
i = n −→ −un−1 +2(h +1)un −un+1 = nh =⇒ −un−1 + 2(h + 1) − un = nh3 .
h+1
Comme A est une matrice tridiagonale symétrique à diagonale dominante stricte, alors
elle est inversible.
D’où le système admet une unique solution.
4. Application n = 2 :
1
On a n = 2, alors h = .
3
20 28
(
9 −1
u1
27 u1 ≃ 0.7,
53 = 2 =⇒
u2 u2 ≃ 0.53.
−1
36 27
N’hésitez pas à me contacter pour me faire part de vos questions et vos remarques :
[email protected]
Exercice 1
Soit le problème aux limites suivant
ut + ux − uxx = 0, 0 < x < 1, 0 < t < 1,
u(x, 0) = x, 0 ≤ x ≤ 1, (1)
u(0, t) = ux (1, t) = 0, 0 < t < 1,
où u = u(x, t).
1 1
1. on a xi = ih et tj = jk où h = et k = .
n+1 m+1
• Schéma explicite :
On remplace ut , ux et uxx par leurs approximations
• Schéma implicite :
De même manière on trouve le schéma implicite pour le problème (1) sous la forme
suivante
j−1 k(h+1) j h2 +kh+2k j
ui = − h2 ui−1 +
h2
ui − hk2 uji+1 , 1 ≤ i ≤ n, 1 ≤ j ≤ m,
u0i = ih, 0 ≤ i ≤ n + 1, (3)
j
j j
u0 = 0, un+1 = un , 0 ≤ j ≤ m + 1.
2. Dans cette question en injectant les valeurs de i et j dans les deux problèmes discrets (2)
et (3) pour l’obtention des systèmes matriciels.
• Schéma explicite :
On fixe j = 0 et en substitue les valeurs de i, on obtient
2
pour i = 1 −→ u11 = k(h+1)
h2
u00 + h −kh−2k
h2
u01 + hk2 u02 ,
0 2
pour i = 2 −→ u12 = k(h+1)
h2
u01 + h −kh−2k
h2
u02 + hk2 u03 ,
.
.
.
2
pour i = n −→ u1n = k(h+1)
h2
u0n−1 + h −kh−2k
h2
u0n + hk2 u0n+1 .
u0n
où
h2 − kh − 2k k ··· 0
k(h + 1) 2
h − kh − 2k k ···
A= .. .. ,
.. ..
. . . .
0 ··· k(h + 1) h2 − kh − k
t t
W (0) = u01 , u02 , · · · , u0n et W (1) = u11 , u12 , · · · , u1n .
! !
• Schéma implicite :
On fixe j = 1 et en substitue les valeurs de i, on obtient
2
pour i = 1 −→ u01 = − k(h+1)
h2
u10 + h +kh+2k
h2
u11 − hk2 u12 ,
0 2
pour i = 2 −→ u02 = − k(h+1)
h2
u11 + h +kh+2k
h2
u12 − hk2 u13 ,
.
.
.
2
pour i = n −→ u0n = − k(h+1)
h2
u1n−1 + h +kh+2k
h2
u1n − hk2 u1n+1 .
u0n
où
h2 + kh + 2k −k ··· 0
−k(h + 1) h2 + kh + 2k −k ···
A= .. .. ,
. . . .
. . . .
2
0 ··· −k(h + 1) h + kh + k
t t
W (0) = u01 , u02 , · · · , u0n et W (1) = u11 , u12 , · · · , u1n .
! !
• Schéma implicite :
Le système matriciel est devient
1 1
4
19 −8 0 u1
1 = −10 19 −8 u12 .
2
3
4
0 −10 11 u13
Donc la solution approchée W (1) est calculer depuis l’inverse de la matrice ou la résolution
du système linéaire ou d’autre méthode comme Cramer, Gauss ...etc.
t
(1) 497 246 1323
W = , , .
6284 1571 6284
où u = u(x, t).
1
1. Les schémas pour h = k = n+1
.
• Schéma implicite : On a
uji − uj−1
i uji+1 − uji−1 uji−1 − 2uji + uji+1
ut ≃ , ux ≃ et uxx ≃ .
h 2h h2
Alors
uji − uj−1 uj − 2uji + uji+1 uji+1 − uji−1
i
− i−1 − = 1.
h h2 2h
D‘où le schéma implicite du problème (4) est donné par
j j j j−1
h h 2
( 2 − 1) ui−1 + (2 + h) ui − ( 2 + 1) ui+1 = h ui + h , 1 ≤ i ≤ n, j = 1, 2, · · · ,
u0i = cos(πih), 0 ≤ i ≤ n + 1,
j
u0 = 1, ujn+1 = −1, j ≥ 0.
(5)
• Schéma de Crank-Nicolson :
On écrit le schéma de Crank-Nicolson pour ce problème par
(6)
2. Le système matriciel pour le schéma de Crank-Nicolson :
pour i = 1 −→ −uj+1
0 + 2(h + 1) uj+1
1 − uj+1
2 = (1 − h) uj0 + 2(h − 1) uj1 + (h + 1)uj2 + 2h2 ,
pour i = 2 −→ −uj+1
1 +1
2(h + 1) uj+1
2 − uj+1
3 = (1 − h) uj1 +
1
2(h − 1) uj2 + (h + 1)uj3 + 2h2 ,
.
.
.
pour i = n −→ −uj+1 j+1 j+1 j j
n−1 +2(h+1) un −un+1 = (1−h) un−1 +2(h−1) un +(h+1)un+1 +2h .
j 2
j+1 j 2
2(h + 1) −1 ··· 0 u1 2(h − 1) 1+h ··· 0 u1 2h −
−1 2(h + 1) −1 · · · uj+1 1 − h 2(h − 1) 1 + h · · · uj h2
2 2
. = . +
.. .. .. .. .. .. .. .. ..
. . . . .. . . . . .. .
0 ··· −1 2(h + 1) j+1 0 · · · 1 − h 2(h − 1) j 2h 2−
un un
Exercice 3.
Soit le problème
∂u ∂ 2 u
− 2 = 2, x ∈]0, 1[, t ∈]0, 12 [,
∂t ∂x
u(0, t) = u(1, t) = 0, t ∈ [0, 12 ], (7)
u(x, 0) = sin(πx) + x(1 − x), x ∈ [0, 1].
Où u = u(x, t).
2
(x, t) = −π 2 e−π t sin(π x) − 2.
∂x
Et on a aussi
∂u 2
(x, t) = −π 2 e−π t sin(π x).
∂t
En injectant ses valeurs de dérivées partielles dans l’équation du problème (7), on déduit
que u vérifiée l’équation aux dérivées partielles
2t 2t
−π 2 e−π sin(π x) + π 2 e−π sin(π x) + 2 = 2.
Maintenant, elle reste a vérifiée la condition initiale et les conditions aux limites. Il est clair
que u(0, t) = u(1, t) = 0 et avec un calcul simple on trouve u(x, 0) = sin(πx) + x(1 − x).
D’où u est une solution exacte de notre problème.
• Schéma explicite :
On écrit le schéma d’Euler explicite correspondant le problème (7) comme suit
j+1 j
j j
2k
k
! k
ui = h2 ui−1 + 1 − h2 ui + h2 ui+1 + 2k, 1 ≤ i ≤ n, 1 ≤ j ≤ m,
u0i = sin(π i h) + i h(1 − i h), 0 ≤ i ≤ n + 1, (8)
j
j
u0 = un+1 = 0, 0 ≤ j ≤ m + 1.
• Schéma Crank-Nicolson :
Le schéma de Crank-Nicolson est donné par
2
j+1 h2 j+1 j+1 j h j j+1 2
−ui−1 + 2 1 + k ui − ui+1 = ui−1 + 2 k − 1 ui + ui+1 + 4h , 1 ≤ i ≤ n, 1 ≤ j ≤ m
où u = u(x, y).
1. Traçons le domaine Ω :
y
u = 2x − 1
1
u = −y ∆u =u0 = 2 − y
u = 2x 1 x
Le domaine Ω
2. Déterminons a et b :
On sait que u(x, y) = ax + by est une solution exacte, alors
( (
u(x, 0) = ax = 2x, a = 2,
=⇒
u(x, 1) = ax + b = 2x − 1, b = −1.
Ou bien ( (
u(0, y) = by = −y, a = 2,
=⇒
u(1, y) = a + by = 2 − y, b = −1.
D‘où la solution exacte du problème stationnaire (11) est u(x, y) = 2x − 1.