Vous êtes sur la page 1sur 62

Analyse numérique

Ibrahim ALAME

ESTP

17/02/2020

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 1 / 62


Différences finies

le problème aux limites d’ordre 2 en dimension 1 On considère le problème


aux limites
( 2
2 + c(x )u(x ) = f (x ), pour x ∈]0, 1[
d u
− dx
(1)
u(0) = u0 , u(1) = u1 ,

où f et c sont des fonctions données sur [0, 1] avec c > 0. Les deux
ingrédients principaux d’une approximation par différences finies sont le
schéma d’approximation des dérivées et la grille de discrétisation.

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 2 / 62


Approximations des dérivées d’une fonction régulière
L’idée fondamentale consiste à approcher les dérivées de la fonction u en
un point x en écrivant
du u(x + h) − u(x ) u(x + h) − u(x )
= lim '
dx h→0 h h
pour un h petit fixé. Si la fonction u est C sur l’intervalle [0, 1], on déduit
2

aisément du développement de Taylor


h2 00
u(x + h) = u(x ) + hu 0 (x ) + u (θ)
2
où θ ∈]x , x + h[, l’inégalité
u(x + h) − u(x )

0
(x )

− u 6 Ch
h
où C = supy ∈[0,1] |u 00 (y )|, pour tout 0 6 x 6 1 − h.

Définition
Si l’erreur est majorée par Chp pour p > 0 fixé, on dit plus généralement
que l’approximation est consistante d’ordre p.
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 3 / 62
−h)
On vérifie facilement que u 0 (x ) ' u(x )−u(x
h est également consistante
d’ordre 1.
Si la fonction u est C 3 , la formule de Taylor à l’ordre 3 donne

h2 00 h3
u(x + h) = u(x ) + hu 0 (x ) + u (x ) + u 000 (ξ1 ),
2 6
h2 00 h3
u(x − h) = u(x ) − hu 0 (x ) + u (x ) − u 000 (ξ2 ),
2 6
où ξ1 ∈]x , x + h[ et ξ2 ∈]x − h, x [ . On obtient alors :

u(x + h) − u(x − h) h2 000



0
− u (x ) = u (ξ1 ) + u 000 (ξ2 ) 6 Ch2


2h 2

où C 0 = supy ∈[0,1] |u 000 (y )|. L’approximation

u(x + h) − u(x − h)
u 0 (x ) '
2h

est donc consistante d’ordre 2.


Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 4 / 62
Si u est de classe C 4 au voisinage de x , on fait un développement de
Taylor à l’ordre 4 de u :
h2 00 h3 h4
u(x + h) = u(x ) + hu 0 (x ) + u (x ) + u 000 (x ) + u (4) (ξ1 ),
2 6 24
h2 00 h3 h4
u(x − h) = u(x ) − hu 0 (x ) + u (x ) − u 000 (x ) + u (4) (ξ2 ),
2 6 24
Donc
h4  (4) 
u(x + h) + u(x − h) = 2u(x ) + h2 u 00 (x ) + u (ξ1 ) + u (4) (ξ2 ) ,
24
D’où
u(x + h) − 2u(x ) + u(x − h) 2

00
(x ) ≤ h sup |u (4) (y )|

− u
h2 12 y ∈[0,1]
pour tout x ∈ [h, 1 − h]. L’approximation

u(x + h) − 2u(x ) + u(x − h)


u 00 (x ) '
h2
est donc consistante d’ordre 2.
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 5 / 62
Approximation par différences finies
y

1
h= N+1
x
0=x0 xi xi+1 1=xN+1

Soit N ∈ N fixé. On définit les points de discrétisation du maillage par


1
xi = ih, i ∈ 0, 1, ..., N + 1, où h =
N +1
Les points x0 = 0 et xN+1 = 1 constituent le bord du domaine (les
extrémités de l’intervalle de définition de u),et les points x1 , · · · , xN sont
appelés points internes du maillage.
On cherche en chaque point xi une valeur approchée ui ' u(xi ).
La première et la dernière valeurs de la suite sont données par les
conditions aux limites : u0 = u(0) et uN+1 = u(1).
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 6 / 62
Pour les sommets internes, on utilise l’approximation (2) de la dérivée
seconde décrite plus haut. On a
(
−u 00 (xi ) + c(xi )ui = f (xi ), pour i ∈ {1, · · · , N},
(2)
u(0) = g0 , u(1) = g1

Or
u(xi + h) − 2u(xi ) + u(xi − h) ui+1 − 2ui + ui−1
u 00 (xi ) ' '
h2 h2
D’où le problème approché

ui−1 − 2ui + ui+1



− + ci ui = fi , pour i ∈ {1, · · · , N},

2 (3)
 u = g , hu
0 0 N+1 = g1

où ci = c(xi ) et fi = f (xi ).

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 7 / 62


On obtient N équations à N inconnues u1 , · · · , uN .
u0 − 2u1 + u2
i =1: − + c1 u1 = f1 ,
h2
u1 − 2u2 + u3
i =2: − + c2 u2 = f2 ,
h2
···
uN−1 − 2uN + uN+1
i =N: − + cN uN = fN ,
h2
D’où le système

−2u1 + u2


 − + c1 u1 = f1 + u0
h2
,
h2


 u1 − 2u2 + u3


+ =

− 2
c2 u2 f2 ,
h


 · · · ··· ··· ···
 − uN−1 − 2uN


uN+1
+ = fN +


cN uN h2
,
h2

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 8 / 62


Matriciellement, le problème s’écrit :

Ah uh = bh (4)
avec

2 + h2 c1 0 0
 
−1 ···
.. ..
.
 
 −1 2 + h2 c2 −1 . 
1 
 
Ah = 2  .. .. .. 
0 . . 0 . 
h  
 .. .. 

 . . −1 2 + h2 cN−1 −1


0 ··· 0 −1 2 + h2 cN

f1 + hg02
   
u1
 u2   f2 
.. ..
   
uh =  bh = 
   
 . ,
  . 

 un−1 fn−1
   
  
un fn + hg12

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 9 / 62


Soit à résoudre l’équation différentielle

 d u(x )
 2

2
+ 4u(x ) = 4x , pour x ∈]0, 5π
4 [ (5)
 dx
u(0) = 0, u( 5π
4 ) = 0,

La solution exacte est y (x ) = x − 5π


4 sin(x ).

−2 + 4h2 1 0 0
 
··· 1
  
u1
.. .. 2
.
 
1 −2 + 4h2 1 . u2
    
.. ..
  
1 
 
.. .. ..
  
. = .

0 . . . 0
    
4h3 

.. ..

.. ..
  
. .
 
. . 1 −2 + 4h2 1
    
    
0 ··· 0 1 −2 + 4h2 un N

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 10 / 62


Listing 1 –
1 # Courbe
2 import numpy as np
3 import matplotlib . pyplot as plt
4 a = 0
5 b = 5 * np . pi / 4
6 t = np . linspace (a , b , 50)
7 y = t - 5 * np . pi / 4 * np . sin (2 * t )
8 plt . plot (t , y )

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 11 / 62


Listing 2 –
1 import numpy as np
2 import matplotlib . pyplot as plt
3 a = 0; b = 5 * np . pi / 4; t = np . linspace (a , b , 50)
4 y = t - 5 * np . pi / 4 * np . sin (2 * t )
5 plt . plot (t , y )
6 N = 10
7 h = ( b - a ) / ( N + 1)
8 x = np . linspace (a , b , N + 2)
9 M = (( -2 + 4 * h ** 2) * np . eye ( N )
0 + np . diag ( np . ones ( N - 1) , -1)
1 + np . diag ( np . ones ( N - 1) , 1)) / (4* h **3)
2 F = np . arange (1 , N +1 ,1)
3 U = np . linalg . solve (M , F )
4 U = np . insert (U , N , 0)
5 U = np . insert (U , 0 , 0)
6 plt . plot (x , U )
7 plt . show ()
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 12 / 62
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 13 / 62
La matrice Ah est tridiagonale, on le décompose en deux matrices :
1 (0)
Ah = A + Ch
h2 h

2 0 0
 
−1 ···
. .. 
−1 . .

 −1
 2 . 
(0)
Ah = 
 .. .. .. 
 0 . . 0 . 

 .
 . .. 
 . . −1 2 −1 

0 · · · 0 −1 2
et
0 ··· 0
 
c1
.. .
. ..
 
 0 c2 
Ch =  ..
 
.. .. 

 . . . 0 

0 · · · 0 cn
On note que les conditions au bord u0 = g0 et un+1 = g1 n’apparaissent
que dans le vecteur bh .
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 14 / 62
proposition
Supposons c > 0. La matrice Ah est symétrique définie positive.

Démonstration La matrice Ah est clairement symétrique. Soit z un vecteur


de Rn , de composantes z1 , · · · , zn . On a
(0) (0)
= z t Ah z +
Pn
z t Ah z 2
i=1 ci zi > z t Ah z
z12 +(z1 −z2 )2 +···+(zn−1 −zn )2 +zn2
= h2

Cette quantité est positive, et non nulle si z 6= 0 (car au moins l’un des
termes au numérateur est non nul).

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 15 / 62


Définition
2 0 0
 
−1 ···
. .. 
−1 . .

 −1
 2 . 

(0)
Ah = 
 .. .. .. 
 0 . .0 . 

 .
 . .. 
 . . −1 2 −1 

0 · · · 0 −1 2
est la matrice du Laplacien discret.

Théorème (Principe du maximum discret)


Ah Vh = Fh admet une solution unique Vh de plus si f ≥ 0 alors Vh ≥ 0

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 16 / 62


Lemme
∀V ∈ Rn AV ≥ 0 =⇒ V ≥ 0


 2V1 − V2 ≥ 0

AV ≥ 0 =⇒ −Vj−1 + 2Vj − Vj+1 ≥ 0
n−1 + 2Vn ≥ 0
 −V

Soit Vm = inf i (Vi )


m = 1 : 2V1 − V2 ≥ 0 =⇒ V1 ≥ V2 − V1 ≥ 0
m = n : −Vn−1 + 2Vn ≥ 0 =⇒ Vn ≥ Vn−1 − Vn ≥ 0
m 6= n et m 6= 1 :

−Vm−1 + 2Vm − Vm+1 ≥ 0 =⇒ (Vm − Vm+1 ) ≥ (Vm−1 − Vm ) ≥ 0

=⇒ Vm = Vm+1 = Vm−1 =⇒ Vm−1 = inf (Vi ) =⇒ V1 = inf (Vi )


i i

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 17 / 62


Démo

AV = 0 =⇒ AV ≥ 0 et AV ≤ 0 =⇒ V ≥ 0 et V ≤ 0 =⇒ V = 0
Les coefficients de A sont tous positifs : si A = [C1 C2 · · · Cn ] alors

AA−1 = I =⇒ ACi = ei =⇒ Ci ≥ 0 =⇒ A−1 ≥ 0

=⇒ V = A−1 F ≥ 0

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 18 / 62


Consistance
Définition
Supposons f ∈ C 2 ([0, 1]), donc u ∈ C 4 ([0, 1]). On pose

Πh : C 0 ([0, 1]) → Rn
ω 7→ (ω(x1 ), ω(x1 ), · · · , ω(x1 ))T

On définit l’erreur de consistance par

εh = Ah Πh u − Fh

On dit que le schéma est consistant si

lim kεh k∞ = 0
n→∞

Si
kεh k∞ = O(hp )
On dit que la méthode est d’ordre p.
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 19 / 62
Consistance
Proposition
Le schéma Ah Vh = Fh est consistant d’ordre 2.

u(xj−1 ) − 2u(xj ) + u(xj+1 )


(εh )j = − f (xj )
h2
u(xj−1 ) − 2u(xj ) + u(xj+1 )
= − u 00 (xj )
h2
= O(h2 )
On a


0 h2 00 h3 000 h4
u(xj + h) − u(xj ) − hu (xj ) − u (xj ) − u (xj ) ≤ ku (4) k∞

2 6 24

h4 (4) h2 h3 h4 (4)
− ku k∞ ≤ u(xj +h)−u(xj )−hu 0 (xj )− u 00 (xj )− u 000 (xj ) ≤ ku k∞
24 2 6 24
h4 (4) h 2 h 3 h4 (4)
− ku k∞ ≤ u(xj −h)−u(xj )+hu 0 (xj )− u 00 (xj )+ u 000 (xj ) ≤ ku k∞
24 2 6 24
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 20 / 62
Consistance

h4 (4) h2 h3 h4
− ku k∞ ≤ u(xj +h)−u(xj )−hu 0 (xj )− u 00 (xj )− u 000 (xj ) ≤ ku (4) k∞
24 2 6 24
h4 (4) h2 h3 h4
− ku k∞ ≤ u(xj −h)−u(xj )+hu 0 (xj )− u 00 (xj )+ u 000 (xj ) ≤ ku (4) k∞
24 2 6 24

h4 (4)
=⇒ kεh k∞ ≤ ku k∞
12

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 21 / 62


Stabilité
Définition
On dit que le schéma numérique Ah Vh = Fh est stable si’il existe une
constante C telle que
kVh k ≤ kFh k ∀Fh

Théorème
1
kA−1
h k≤ ∀n ≥ 1
8
(
−u 00 = 1 x (1−x )
Soit le problème dont la solution est u(x ) =
u(0) = u(1) = 0 2

Alors  
h(1−h)
1
 
2
1 2h(1−2h)
   
 
Fh =   =⇒ A−1 Fh =  2
 
.. ..

h
.
 
.
   
   
1 nh(1−nh)
2
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 22 / 62
Donc
1
kA−1 −1
h k = sup kAh Fh k =
kFh k=1 8

Définition
Soit Eh = Vh − Πh u On dit que le schéma numérique Ah Vh = Fh converge
si pour tout f ∈ C 0 ([0, 1])

kEh k∞ → 0 quandn → ∞

Théorème
La méthode converge à l’ordre 2.

Démo : On note u la solution exacte


Ah Eh = Ah Vh − Ah Πh u
= Fh − (εh + Fh )
= −εh
1 h2 (4)
Donc Eh = −A−1 −1
h εh =⇒ kEh k ≤ kAh kkεh k ≤ × ku k → 0
8 24
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 23 / 62
Convergence de la méthode
Afin d’étudier la convergence de la solution approchée uh vers la solution
exacte u lorsque h → 0, on commence par étudier l’erreur de consistance :
definition
On appelle erreur de consistance du schéma Ah uh = bh , le vecteur h (u)
de Rn défini par

u(x1 )
 

u(x2 ) 
h (u) = Ah (πh (u)) − bh , où πh = 
 
.. 
.
 
 
u(xn )

πh (u) représente la projection de la solution exacte sur le maillage. On dit


que le schéma est consistant pour la norme k · k de Rn si lim kh (u)k = 0.
h→0
Si de plus il existe C indépendante de h telle que

kh (u)k 6 Chp


Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 24 / 62
En utilisant (3), on obtient immédiatement

h2
kh (u)k∞ ≤ sup |u (4) (y )|,
12 y ∈[0,1]
et donc
proposition
Supposons que la solution u du problème (1) est C 4 sur [0, 1]. Alors le
schéma (4) est consistant d’ordre 2 pour la norme k · k∞ .

L’erreur de convergence est l’erreur entre la solution approchée uh est la


solution exacte aux points du maillage πh (u). Afin de majorer cette erreur,
il suffit d’observer que, par définition de l’erreur de consistance et puisque
Ah uh = bh ,

uh − πh (u) = −(Ah )−1h (u).


On peut montrer que k(Ah )−1 k ≤ 1
8 (admis), ce qui donne le résultat de
convergence :
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 25 / 62
Theorem
On suppose c > 0. Si la solution u du problème (1) est C 4 sur [0, 1], alors
le schéma (4) est convergent d’ordre 2 pour la norme k · k∞ . Plus
précisément,
h2
kuh − πh (u)k∞ 6 sup |u (4) (y )|.
96 y ∈[0,1]

On notera que, dans cet exemple, la consistance du schéma permet


immédiatement d’obtenir la convergence. Ceci est particulier à cet exemple
simple. En général, un autre ingrédient est nécessaire à la convergence : la
stabilité du schéma (voir section 2.3).

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 26 / 62


Le problème aux limites d’ordre 2 en dimension 2

Equation de Poisson −∆u = f On considère le problème aux limites

∂2u ∂2u

− − 2 = f (x , y ), (x , y ) ∈ Ω

2 (6)
 ∂x ∂y
u(x , y ) = 0, (x , y ) ∈ ∂Ω

où f est une fonction donnée sur Ω = [0, 1] × [0, 1]. Les deux ingrédients
principaux d’une approximation par différences finies sont le schéma
d’approximation des dérivées et la grille de discrétisation.

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 27 / 62


Approximation par différences finies
y
1

ui,j+1
yi+1

ui−1,j ui,j ui+1,j


yi

ui,j−1
yi−1
hy

hx
x
0=x0 xi−1 xi xi+1 1

Les points de discrétisation du maillage : Mi,j = (xi , yj ) = (ihx , jhy )


1 1
(i, j) ∈ J0, Nx + 1K × J0, Ny + 1K, hx = , hy =
Nx + 1 Ny + 1
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 28 / 62
Les points
(
M0,j et MNx +1,j pour j = 0, 1, · · · , Ny + 1
Mi,0 et Mi,Ny +1 pour i = 0, 1, · · · , Nx + 1
constituent le bord du domaine (les cotés du rectangle OABC ), et les
points Mi,j où (i, j) ∈ J1, Nx K × J1, Ny K sont les points internes du maillage.
y ui,Ny +1 B
C

ui,j
u0,j uNx +1,j

x
O ui,0 A

On cherche en chaque point Mi,j une valeur approchée ui,j ' u(xi , yj ).
Les valeurs ui,j sur les bord sont nulles (ou données par hypothèse).
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 29 / 62
Pour les sommets internes, on utilise l’approximation de la dérivée seconde
décrite plus haut. On a

∂ 2 u(xi , yj ) ∂ 2 u(xi , yj )

= f (xi , yj ), (xi , yj ) ∈]0, 1[×]0, 1[

 − −


∂x 2 ∂y 2
(7)

 u(xi , 0) = u(xi , 1) = 0, 0 ≤ xi ≤ 1
 u(0, y ) = u(1, y ) = 0,

0 ≤ yj ≤ 1
j j

Or
∂ 2 u(xi , yj ) u(xi − h, yj ) − 2u(xi , yj ) + u(xi + h, yj ) ui−1,j − 2ui,j + ui+1,
2
' 2
'
∂x hx hx2

∂ 2 u(xi , yj ) u(xi , yj − h) − 2u(xi , yj ) + u(xi , yj + h) ui,j−1 − 2ui,j + ui,j+


2
' 2
'
∂y hy hy2
et on pose où fi,j = f (xi , yj ).

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 30 / 62


D’où le schéma, pour i ∈ J0, Nx + 1K et j ∈ J0, Ny + 1K :

Pour (i, j) ∈ J1, Nx K × J1, Ny K




ui−1,j − 2ui,j + ui+1,j ui,j−1 − 2ui,j + ui,j+1


= fi,j

 − −


2 h2

h x y
(8)

 et
ui,0 = ui,Ny +1 = 0, i ∈ J0, Nx + 1K




u0,j = uNx +1,j = 0, j ∈ J0, Ny + 1K

On obtient Nx × Ny équations à Nx × Ny inconnues

u1,1 ; u1,2 ; · · · , u1,Ny ; u2,1 ; u2,2 · · · u2,Ny · · · · · · uNx ,1 ; uNx ,2 · · · uNx ,Ny

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 31 / 62


u0,1 − 2u1,1 + u2,1 u1,0 − 2u1,1 + u1,2
i = 1, j = 1 : − − = f1,1
hx2 hy2
u0,2 − 2u1,2 + u2,2 u1,1 − 2u1,2 + u1,3
i = 1, j = 2 : − − = f1,2
hx2 hy2
···
u0,Ny − 2u1,Ny + u2,Ny u1,Ny −1 − 2u1,Ny + u1,Ny +1
i = 1, j = Ny : − 2
− = f1
hx hy2
u1,1 − 2u2,1 + u3,1 u2,0 − 2u2,1 + u2,2
i = 2, j = 1 : − − = f2,1
hx2 hy2
u1,2 − 2u2,2 + u3,2 u2,1 − 2u2,2 + u2,3
i = 2, j = 2 : − − = f2,2
hx2 hy2
···
u1,Ny − 2u2,Ny + u3,Ny u2,Ny −1 − 2u2,Ny + u2,Ny +1
i = 2, j = Ny : − 2
− = f1
hx hy2
···
uNx −1,Ny − 2uNx ,Ny + uNx +1,Ny uN ,N −1 − 2uNx ,Ny +
i = Nx , j = Ny : − 2
− x y
hx hy2

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 32 / 62


D’où le système, en faisant Nx = Ny = n et donc hx = hy = h :

4u1,1 − u1,2 − u2,1 = h2 f1,1




−u1,1 + 4u1,2 − u1,3 − u2,2 = h2 f1,2








 ···
−u1,n−1 + 4u1,n − u2,n = h2 f1,n





−u1,1 + 4u2,1 − u2,2 − u3,1 = h2 f2,1





−u1,2 + 4u2,2 − u2,3 − u3,2 = h2 f2,2





···

 −u1,n − u2,n−1 + 4u2,n − u3,n = h2 f2,n
..



.





−un−1,1 + 4un,1 − un,2 = h2 fn,1




−un−1,2 + 4un,2 − un,3 = h2 fn,2








 ···
−un−1,n − un,n−1 + 4un,n = h fn,n

 2

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 33 / 62


Matriciellement, le problème s’écrit :

Ah uh = bh (9)
avec

4 −1 0 0 −1 0 0 0


 −1 4 −1 0 0 −1 0 0

 0 −1 4 −1 0 0 −1 0
0 0 −1 4 0 0 0 −1


−1 0 0 0 4 −1 0 0 −1 0 0 0




 0 −1 0 0 −1 4 −1 0 0 −1 0 0
0 0 −1 0 0 −1 4 −1 0 0 −1 0


0 0 0 −1 0 0 −1 4 0 0 0 −1


−1 0 0 0 4 −1 0 0 −1




 0 −1 0 0 −1 4 −1 0 0 −1
0 0 −1 0 0 −1 4 −1 0 0 −


0 0 0 −1 0 0 −1 4 0 0 0




 −1 0 0 0 4 −1
0 −1 0 017/02/2020
−1 434 / 62 −


 Ibrahim ALAME (ESTP) Analyse numérique
4 −1 0 −1 0 0
    
u11 f11

 −1 4 −1 0 −1 0 
 u12 


 f12 


 0 −1 4 0 0 −1 
 u13 


 f13 

−1 4 −1 0 −1 0 0  u21 f21
    
    
−1 4 −1 0 −1 0    = h2 
    

 −1 
 u22   f22 


 −1 0 −1 4 0 0 −1 

 u23 


 f23 

−1 4 −1 0   u31 f31
    
   
−1 4 −1  
    
 −1 u32   f32 
−1 0 −1 4 u33 f33

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 35 / 62


Listing 3 –
1 import matplotlib . pyplot as plt
2 import numpy as np
3
4 N = 3
5 h = 1 / ( N + 1)
6 # La matrice
7 M = np . diag (4 * np . ones ( N * N )) \
8 - np . diag ( np . ones ( N * N - 1) , -1) \
9 - np . diag ( np . ones ( N * N - 1) , 1) \
0 - np . diag ( np . ones ( N * N - 3) , -3) \
1 - np . diag ( np . ones ( N * N - 3) , 3)
2 for k in range ( N - 1):
3 M [( k + 1) * N , ( k + 1) * N - 1] = 0
4 M [( k + 1) * N - 1 , ( k + 1) * N ] = 0
5
6 F = h * h * np . ones ( N * N )
7 U = np . linalg . solve (M , F )
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 36 / 62
Listing 4 –
1 fig = plt . figure ()
2 ax = fig . gca ( projection = '3 d ')
3
4 # Make data .
5 X = np . linspace (0 , 1 , N + 2)
6 Y = np . linspace (0 , 1 , N + 2)
7 X , Y = np . meshgrid (X , Y )
8 Z = np . zeros (( N + 2 , N + 2))
9 for i in range (1 , N + 1):
0 for j in range (1 , N + 1):
1 Z [i , j ] = U [( i - 1) * N + j - 1]
2
3 # Plot the surface .
4 ax . plot_wireframe (X , Y , Z )
5
6 plt . show ()

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 37 / 62


Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 38 / 62
y
B
C

6 7 8

3 4 5

0 1 2

x
O A

(i, j) 7→ (j − 1)N + i − 1

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 39 / 62


les schémas implicites et explicites

On s’intéresse au problème

∂2u

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



∂t ∂x
 u(0, x ) = u0 (x ), pour x ∈ [0, 1]
u(t, 0) = 0 et u(t, 1) = 0, pour t > 0,

où l’on a pris pour simplifier des conditions au bord nulles. Il s’agit de


l’équation de la chaleur en dimension 1 (d’espace), qui est un problème
parabolique en dimension 2 (temps et espace). Cet exemple est typique de
la situation générale des problèmes paraboliques. On distingue deux
grandes familles d’approximations par différences finies : les schémas
explicites et les schémas implicites.

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 40 / 62


La discétisation

On va se limiter au cas le plus simple du maillage régulier : soient n, m


deux entiers fixés. On pose
1
xi = ih, ∀i ∈ {0, 1, ..., n + 1}, où h =
n+1
1
tj = j∆t, ∀j ∈ {0, 1, ..., m}, où ∆t = .
m
En particulier, x0 = 0, xn+1 = 1, t0 = 0 et tm+1 = T . Les points (tj , xi )
sont alors les points d’intersection d’une "grille" régulière en espace-temps.
L’approximation par différences finies consiste alors à chercher une
(j)
approximation, notée ui , de u(tj , xi ) (notez que l’indice en temps est en
exposant, et l’indice en espace en indice, comme précédemment).
Les valeurs approchées aux points de maillage au bord du domaine et en
t = 0 sont données par la valeur exacte ( donnée ) de la fonction u :

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 41 / 62


(j) (j)
u0 = un+1 = 0, ∀j ∈ {0, ..., m} (10)
(0)
ui = u0 (xi ), ∀j ∈ {0, ..., n + 1} (11)
(j)
Ceci laisse nm inconnues à déterminer ( les ui pour 1 6 i 6 n et
1 6 j 6 m).
On a déjà vu que le terme de dérivée seconde pouvait être approché avec

(j) (j) (j)


∂2u u(xi+1 , tj ) − 2u(xi , tj ) + u(xi−1 , tj ) u − 2ui + ui−1
2
(xi , tj ) ' 2
' i+1
∂x h h2
(schéma à trois points pour la dérivée seconde). Plusieurs choix sont
possibles pour l’approximation de la dérivée en temps. Chacun de ces choix
conduit à une famille de schémas distincte.

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 42 / 62


Le schéma explicite

La première possibilité est d’utiliser l’approximation décentrée à droite


(j+1) (j)
∂u u(xi , tj+1 ) − u(xi , tj ) u − ui
(xi , tj ) ' ' i
∂t ∆t ∆t
On obtient alors le schéma suivant :

(j+1) (j) (j) (j) (j)


ui − ui u − 2ui + ui−1
− i+1 = f (xi , tj ), ∀i ∈ {1, ..., n}, ∀j ∈ {0, ..., m
∆t h2
soit n × m équations pour n × m inconnues. On note que les conditions
aux limites (8) et (9) doivent être connues pour résoudre ces équations, et
que l’indice de temps j doit varier entre 0 et m.

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 43 / 62


Il est commode de réécrire ce système vectoriellement : on introduit la
notation  
(j)
u1
 (j) 
 u 
U =  2.  , ∀j ∈ {0, ..., m}
(j)  
 .. 
 
(j)
un
Le vecteur U (0) est donné par les conditions initiales, et le schéma
précédent s’écrit :

U (j+1) − U (j) (0)


+ Ah U (j) = C (j) , ∀j ∈ {0, ..., m} (12)
∆t
(0)
où la matrice Ah a été définie dans (6), et

f (x1 , t (j) )
 

f (x2 , t (j) ) 
C (j) = 
 
.. , ∀j ∈ {0, ..., m}
.
 
 
f (xn , t (j) )
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 44 / 62
Ce système peut également se réécrire sous la forme
(0)
U (j+1) = (Id − ∆tAh )U (j) + ∆tC (j) , ∀j ∈ {0, ..., m − 1} (13)

où on utilise la notation Id pour la matrice identité.


Cette équation justifie le nom explicite pour ce schéma, puisqu’il permet de
calculer la valeur approchée au temps tj+1 par simple produit de matrice
avec la valeur approchée au temps tj . En particulier, aucune inversion de
matrice ou résolution de système linéaire n’est nécessaire pour le calcul.

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 45 / 62


Exemple
θ
θ0 =100°

x
O 1
A
h= n+1

∆t = 0.01

2 −1 0
  


(j+1) = In − h2  −1
∆t 
2 −1  U (j)

U

  


0 −1 2


100
 


(0) =  100 

U



  
100

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 46 / 62


Listing 5 –
1 import matplotlib . pyplot as plt
2 import numpy as np
3
4 N = 3;
5 M = 10;
6 h = 1 / ( N + 1);
7 dt = 0.01
8 x = np . linspace (0 , 1 , N + 2)
9
0 # La matrice
1 A = np . diag (2 * np . ones ( N )) \
2 - np . diag ( np . ones ( N - 1) , -1) \
3 - np . diag ( np . ones ( N - 1) , 1)

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 47 / 62


Listing 6 –
1
2 # Theta initiale
3 theta0 = 100
4 U = theta0 * np . ones ( N )
5 u = np . insert (U , 0 , theta0 )
6 u = np . insert (u , N + 1 , theta0 )
7 plt . plot (x , u )
8 for k in range (1 , M ):
9 U = np . dot (( np . eye ( N ) - dt / ( h ** 2) * A ) , U )
0 u = np . insert (U , 0 , 0)
1 u = np . insert (u , N + 1 , 0)
2 plt . plot (x , u )
3
4 plt . show ()

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 48 / 62


Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 49 / 62
Le schéma implicite

On aurait pu approcher la dérivée partielle en temps par l’approximation


décentrée à gauche
(j) (j−1)
∂u u(xi , tj ) − u(xi , tj−1 ) u − ui
(xi , tj ) ' ' i
∂t ∆t ∆t
On obtient alors le schéma suivant :

(j) (j−1) (j) (j) (j)


ui − ui ui+1 − 2ui + ui−1
− = f (xi , tj ), ∀j ∈ {0, ..., n}, ∀j ∈ {0, ..., m
∆t h2
couplé aux mêmes conditions initiales que le schéma explicite (noter que
cette fois l’indice j varie de 1 à m + 1). Vectoriellement, on obtient

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 50 / 62


U (j) − U (j−1) (0)
+ Ah U (j) = C (j) , ∀j ∈ {1, ..., m + 1} (14)
∆t
où les C (j) sont définis comme plus haut, ce qui se réécrit

 
(0)
U (j) = (Id + ∆tAh )−1 U (j−1) + ∆tC (j) , ∀j ∈ {1, ..., m + 1} (15)

(0)
On remarque que la matrice (Id + ∆tAh ) est symétrique définie positive,
(0)
et donc inversible, puisque Ah est symétrique définie positive.
Ce schéma est dit implicite puisque, contrairement au schéma explicite, sa
résolution nécessite la résolution d’un système linéaire à chaque pas de
(0)
temps (ou le calcul initial de l’inverse de la matrice (Id + ∆tAh ), utilisé
ensuite à chaque pas de temps). La résolution du schéma implicite est
donc plus coûteuse que le schéma explicite. Cependant, comme on le verra
plus loin, ce coût en temps de calcul est largement compensé par la
meilleure stabilité du schéma.

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 51 / 62


Exemple
θ
θ0 =100°

x
O 1
A
h= n+1

∆t = 0.01
 −1
2 −1 0
 


U (j+1) = In + ∆t −1 2 −1  U (j)

   

h2 


0 −1 2

100
 


= 100 

 (0)
U

  
 
100

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 52 / 62


Listing 7 –
1 import matplotlib . pyplot as plt
2 import numpy as np
3
4 N = 3;
5 M = 10;
6 h = 1 / ( N + 1);
7 dt = 0.1
8 x = np . linspace (0 , 1 , N + 2)
9
0 # La matrice
1 A = np . diag (2 * np . ones ( N )) \
2 - np . diag ( np . ones ( N - 1) , -1) \
3 - np . diag ( np . ones ( N - 1) , 1)

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 53 / 62


Listing 8 –
1
2 # Theta initiale
3 theta0 = 100
4 U = theta0 * np . ones ( N )
5 u = np . insert (U , 0 , theta0 )
6 u = np . insert (u , N + 1 , theta0 )
7 plt . plot (x , u )
8 for k in range (1 , M ):
9 U = np . linalg . solve (( np . eye ( N ) + dt / ( h ** 2) *
0 u = np . insert (U , 0 , 0)
1 u = np . insert (u , N + 1 , 0)
2 plt . plot (x , u )
3
4 plt . show ()

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 54 / 62


Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 55 / 62
Le schéma saute-mouton
Tous les schémas imaginables ne sont pas nécessairement bons, comme le
montre l’exemple suivant : on pourrait chercher à améliorer la précision en
temps en utilisant l’approximation d’ordre 2 (voir section 2.1.1) suivante
de la dérivée en temps :
(j+1) (j−1)
∂u u(xi , tj+1 ) − u(xi , tj−1 ) u − ui
(xi , tj ) ' ' i
∂t 2∆t 2∆t
On obtiendrait alors le schéma
U (j+1) − U (j−1) (0)
+ Ah U (j) = C (j) , ∀j ∈ {2, ..., m − 1} (16)
2∆t
qui est explicite en temps, puisque U (j+1) s’exprime directement en
fonction de U (j) et U (j−1) . On note qu’il est nécessaire pour ce schéma de
connaître U(0) et U(1). Le précalcul de U (1) peut par exemple être fait en
utilisant un pas en temps de l’une des méthodes précédentes.
Ce schéma, appelé schéma saute-mouton ou schéma de Richardson, est à
la fois explicite et a priori d’ordre 2 en temps. Cependant, comme on le
verra plus loin, il est toujours instable, et donc numériquement inutilisable.
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 56 / 62
Consistance, stabilité et convergence
Les trois schémas précédents peuvent s’écrire sous la forme générale
B1 U (j+1) + B0 U (j) + B−1 U (j−1) = C (j)
avec B1 inversible ou B1 = 0 et B0 inversible. Pour le schéma explicite, on
a
1 1 (0)
B1 = Id, B0 = − Id + Ah , B−1 = 0.
∆t ∆t
Pour le schéma implicite, on a
1 (0) 1
B1 = 0, B0 = Id + Ah , B−1 = − Id.
∆t ∆t
Pour le schéma suate-mouton, on a
1 (0) 1
B1 = Id, B0 = Ah , B−1 = − Id.
∆t ∆t
L’étude de la convergence de ces schémas est basée sur les propriétés de
consistance et stabilité, définies ci-dessous pour le schéma général . On
pourrait bien sûr imaginer des schémas faisant intervenir des indices en
temps plus grands que j + 1 et plus petits que j − 1. Les définitions
suivantes s’étendraient
Ibrahim ALAME (ESTP) sans difficulté à ces schémas.
Analyse numérique 17/02/2020 57 / 62
Définition
On appelle erreur de consistance à l’instant tj :

εh (u)(j) = B1 (πh (u))(tj+1 ) + B0 (πh (u))(tj ) + B−1 (πh (u))(tj−1 ) − C (j) ,



u(t, x1 )
 

πh (u)(t) =  ..
.
 

u(t, xN )
On dit que le schéma est consistant pour la norme k · k de RN si
sup kεh (u)(j) k → 0, quand ∆t → 0 et h → 0.
0≤j≤M+1

Si de plus il existe C > 0, p > 0 et q > 0 indépendants de ∆t et h tels que


sup kεh (u)(j) k ≤ C [(∆t)p + hp ] ,
0≤j≤M+1

On dir que le schéma est consistant d’ordre p en temps et q en espace


pour la norme k · k .
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 58 / 62
Proposition
Supposons que la solution u au problème de la chaleur est C 2 par rapport
à la variable t et C 4 par rapport à la variable x . Alors les schémas
explicites et implicites sont consistants d’ordre 1 en temps et 2 en espace.
Si de plus u est C 3 par rapport à la variable t, alors le schéma
saute-mouton est consistant d’ordre 2 en temps et en espace.
∂2u
On a f (tj , xi ) = ∂t (tj , xi )
∂u
− (t , x ),
∂x 2 j i
On pose

εh (u)(j) = Ei − Fi


u(tj+1 ,xi )−u(tj ,xi )
Ei = ∆t ∂t (tj , xi ),
− ∂u
u(tj ,xi+1 )−2u(tj ,xi )+u(tj ,xi−1 ) ∂2u
Fi = h2
− ∂x 2 (tj , xi )

Par développement de Taylor :

∂u ∆t 2 ∂ 2 u
u(tj+1 , xi ) = u(tj , xi ) + ∆t (tj , xi ) + (θ, xi )
∂t 2 ∂t 2
Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 59 / 62
D’où
∆t 2 ∂ 2 u
Ei = (θ, xi )
2 ∂t 2
De même !
h2 ∂4u ∂4u
Fi = (tj , ξ1 ) + (tj , ξ2 )
2 ∂t 4 ∂t 4

Définition
On dit que le schéma

B1 U (j+1) + B0 U (j) + B−1 U (j−1) = C (j)

est convergent ssi

sup kU (j) − (πh u)(tj )k → 0 quand ∆t et h → 0


0≤j≤M+1

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 60 / 62


Définition
On dit que le schéma

B1 U (j+1) + B0 U (j) + B−1 U (j−1) = C (j)

est stable ssi il existe deux constante C1 (T ) et C2 (T ) telles que

max kU (j) k ≤ C1 (T )kU (0) k + C1 (T ) max kC (j) k


0≤j≤M+1 0≤j≤M+1

Théorème de Lax
Le schéma
B1 U (j+1) + B0 U (j) + B−1 U (j−1) = C (j)
converge ssi il est stable et consistant.

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 61 / 62


Proposition
Sous la condition
∆t 1

h 2 2
Le schéma explicite converge.

Ibrahim ALAME (ESTP) Analyse numérique 17/02/2020 62 / 62

Vous aimerez peut-être aussi