Vous êtes sur la page 1sur 47

Master MAP M1 Math APPLIQUEE UE2 EDP2 2010/2011 1

COURS METHODES DAPPROXIMATION


DES EQUATIONS AUX DERIVEES PARTIELLES
PAR DIFFERENCES FINIES ET VOLUMES FINIS
DAVEAU CHRISTIAN
1
0 0.2 0.4 0.6 0.8 1
0
0.2
0.4
0.6
0.8
1
1.2
Temps t= 0.44118
LDG
uex
0 0.2 0.4 0.6 0.8 1
0
0.2
0.4
0.6
0.8
1
1.2
Temps t= 0.5
LDG
uex
1. Universite de Cergy-Pontoise, Departement de mathematique, 95302, Cergy-Pontoise, cedex France.
2
Table des mati`eres
1 Introduction 5
1.1 Denition dune equation aux derivees partielles (e.d.p) . . . . . . . . 5
1.2 Exemples et classication si lordre est 2. . . . . . . . . . . . . . . 5
2 Approximation de probl`emes elliptiques par la methode des dier-
ences nies 7
2.1 Introduction du mod`ele . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 En une dimension despace . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Etude de lexistence et unicite de la solution . . . . . . . . . . 7
2.2.2 Approximation par la methode des dierences nies (DF) . . . 10
2.2.3 Etude mathematique de la methode des DF : stabilite au sens
de la norme l

, consistance . . . . . . . . . . . . . . . . . . . 11
2.3 En deux dimension despace . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 Approximation de probl`emes hyperboliques par la methode des
dierences nies 19
3.1 Equation de transport . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.2 Resolution de lequation de transport `a coecients constants . 20
3.1.3 Approximation par DF . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Dautres schemas explicites, schema saute-mouton . . . . . . . . . . . 22
3.2.1 Notion de CFL . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Equation des ondes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.1 Formule de dAlembert . . . . . . . . . . . . . . . . . . . . . . 23
3.3.2 Cone de dependance et propagation `a vitesse nie . . . . . . . 26
3.3.3 Regularite du probl`eme de Cauchy f = 0 . . . . . . . . . . . . 26
3.3.4 Regularite de la solution avec un terme source . . . . . . . . . 27
3.3.5 Conservation de lenergie-Unicite . . . . . . . . . . . . . . . . 27
3.3.6 Approximation par DF . . . . . . . . . . . . . . . . . . . . . . 28
3.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 TABLE DES MATI
`
ERES
4 Approximation dun probl`eme parabolique par la methode des dierences
nies 33
4.1 Probl`eme mod`ele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Schema de Crank et Nicholson . . . . . . . . . . . . . . . . . . . . . . 33
4.2.1 Etablissement du schema . . . . . . . . . . . . . . . . . . . . . 33
4.2.2 Etude theorique du schema de Crank et Nicholson : stabilite,
consistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5 Approximation dun probl`eme elliptique par la methode des vol-
umes nis 37
5.1 Probl`eme mod`ele, maillage volumes nis . . . . . . . . . . . . . . . . 37
5.2 Schema volumes nis et notion de Flux numerique . . . . . . . . . . . 37
5.3 Analyse mathematique du schema . . . . . . . . . . . . . . . . . . . . 38
5.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.5 Annexe I : Memento Scilab . . . . . . . . . . . . . . . . . . . . . . . . 42
5.6 Annexe II : une petite biblioth`eque en scilab . . . . . . . . . . . . . . 43
Chapitre 1
Introduction
1.1 Denition dune equation aux derivees partielles (e.d.p)
Cest une equation dont linconnue est une fonction et portant sur les derivees
partielles de cette fonction :
linconnue : u : R
n
R
lequation F(x, u(x), Du(x), ...D
p
u(x)) = 0 x R
n
(ou ) avec
F : R
n
R R
n
2
.. R
n
p
R est donnee. p sappelle lordre de cette edp.
1.2 Exemples et classication si lordre est 2.
Les edp sont des transcriptions mathematiques de phenom`enes intervenant en
physique, chimie, nance, biologie....
On distingue trois grandes categories dedp :
1. les edp de type elliptique dont le prototype est lequation de Poisson
u(x) =
n

i=1

2
u
x
2
i
(x) = f(x) x R
n
.
2. les edp de type parabolique dont le prototype est lequation de la chaleur :
T
t
(x, t) T(x, t) = 0 x R
n
, t > 0, > 0.
Il sagit dun probl`eme devolution car la variable t du temps intervient.
3. les edp de type hyperbolique dont les prototypes sont
lequation de transport :
u
t
(x, t) + a
u
x
(x, t) = 0 x R
n
, t > 0, a R
6 Introduction
lequation des ondes :

2
u
t
2
(x, t)

2
u
x
2
(x, t) = 0 x R
n
, t > 0.
Si on consid`ere une edp dordre 2 `a coecients constants du type
a

2
u
x
2
(x, t) + b

2
u
xy
(x, t) + c

2
u
y
2
(x, t) + d
u
x
(x, t) + e
u
y
(x, t) + f u = 0
avec a, b, c, d, e, f des reels donnes alors si la forme quadratique
q(x, y) = ax
2
+ bxy + cy
2
+ dx + ey + f
est une ellipse ledp est dite elliptique,
est une hyperbole ledp est dite hyperbolique,
est une parabole ledp est dite parabolique.
Chapitre 2
Approximation de probl`emes
elliptiques par la methode des
dierences nies
2.1 Introduction du mod`ele
Le probl`eme mod`ele est le suivant : soit un domaine borne de R
n
et f une
fonction aussi reguli`ere que necessaire de `a valeurs dans R. Nous cherchons u
solution de lequation de Poisson :
u(x) =
n

i=1

2
u
x
2
i
(x) = f(x) x R
n
.
Il faut preciser les conditions aux limites : nous prenons des conditions homog`enes
de Dirichlet
u(x) = 0 x
o` u designe la fronti`ere de louvert .
2.2 En une dimension despace
2.2.1 Etude de lexistence et unicite de la solution
Le probl`eme devient
u

(x) = f(x), 0 < x < 1, u(0) = u(1) = 0. (1)


o` u f C
0
([0, 1]) est donnee.
Proposition 2.2.1 f C
0
([0, 1]), !u C
2
([0, 1]) (solution classique) donnee par
u(x) =
_
1
0
G(x, y)f(y) dy x [0, 1] (2)
8 Approximation de probl`emes elliptiques par la methode des dierences nies
o` u G sappelle la fonction de Green du probl`eme et est denie par
G(x, y) =
_
y(1 x) si 0 y x,
x(1 y) si x y 1.
Preuve :
1) Existence : on peut proceder de 2 facons ; soit on int`egre deux fois lequation (1),
soit on montre directement que lexpression (2) est solution de (1).
On va montrer que (2) est solution de (1) :
du
dx
=
d
dx
(
_
1
0
G(x, y)f(y) dy) =
d
dx
(
_
x
0
y(1 x)f(y) dy +
_
1
x
x(1 y)f(y) dy) =
x(1 x)f(x)
_
x
0
yf(y) dy x(1 x)f(x) +
_
1
x
(1 y)f(y) dy =
_
1
x
f(y) dy
_
1
0
yf(y) dy.
Notons que u C
1
([0, 1]).
d
2
u
dx
2
= f(x).
Donc u C
2
([0, 1]) et est solution de (1).
Remarque 2.2.1 On aurait pu etre tenter decrire
du
dx
=
_
1
0
d
dx
G(x, y)f(y) dy
mais ceci est faux car x G(x, y) nest pas derivable sur [0, 1] pour tout y [0, 1].
2) Unicite : le probl`eme etant lineaire, il sut de montrer que pour f = 0 la solution
de (1) est nulle : si u
1
et u
2
sont solutions alors

d
2
dx
(u
1
u
2
)(x) = 0, (u
1
u
2
)(0) = (u
1
u
2
)(1) = 0.
Pour montrer ce resultat il sut de montrer que toute solution de (1) secrit sous la
forme (2). En eet
x [0, 1],
_
1
0
G(x, y)0 dy = 0.
Soit u solution de (1) en integrant deux fois on a
u(x) =
_
x
0
(
_
s
0
f(y) dy) ds + ax + b
avec a et b `a determiner avec les conditions aux limites u(0) = u(1) = 0. On obtient
b = 0 et a =
_
1
0
(
_
s
0
f(y) dy) ds.
2.2 En une dimension despace 9
Do` u x [0, 1],
u(x) = x
_
1
0
(
_
s
0
f(y) dy) ds
_
x
0
(
_
s
0
f(y) dy) ds
(Fubini) = x
_
1
0
(
_
1
y
f(y) ds) dy
_
x
0
(
_
x
y
f(y) ds) dy
(on inverse lordre dintegration)
= x
_
1
0
(1 y)f(y) dy
_
x
0
(x y)f(y) dy)
=
_
1
0
f(y)[x(1 y) (x y)X
[0,x]
(y)] dy
o` u X
[0,x]
est la fonction indicatrice de [0, x]. Soit G : [0, 1]
2
R denie par
G(x, y) = x(1 y) (x y)X
[0,x]
(y) (x, y) [0, 1]
2
si y [0, x], G(x, y) = x(1y)(xy) = y(1x) et si y [x, 1], G(x, y) = x(1y).
Ce qui termine la demonstration de la proposition.
Theor`eme 2.2.1 Lapplication T : C
0
([0, 1]) C
2
([0, 1]), f u solution de (1)
est continue.
Preuve : T est lineaire (exo) il sut donc de montrer que
||T(f)||
C
2
([0,1])
C||f||
C
0
([0,1])
f C
0
([0, 1])
o` u C est une constante independante de f. On rappelle que
||u||
C
0
([0,1])
= sup
x[0,1]
|u(x)|
et ||u||
C
2
([0,1])
= ||u||
C
0
([0,1])
+ ||u

||
C
0
([0,1])
+ ||u

||
C
0
([0,1])
. Soit f C
0
([0, 1]) et u
solution de (1), dapr`es la proposition precedente
u(x) =
_
1
0
G(x, y)f(y) dy,
u

(x) =
_
1
x
f(y) dy
_
1
0
yf(y) dy
et
u

(x) = f(x).
(x, y) [0, 1]
2
, |G(x, y)| 1
donc
||u||
C
2
([0,1])
4||f||
C
0
([0,1])
.
La deuxi`eme propriete importante est le principe du maximum.
10 Approximation de probl`emes elliptiques par la methode des dierences nies
Proposition 2.2.2 Soit f C
0
([0, 1]), et u C
2
([0, 1]) la solution de (1). Alors
f 0 implique u 0.
Preuve ; supposons que f(x) 0 pour tout x [0, 1], comme G(x, y) 0 pour tout
(x, y) [0, 1]
2
alors u est lintegrale dune fonction positive et est donc positive. La
derni`ere propriete est une propriete de delocalisation du support :
Proposition 2.2.3 Soit f C
0
([0, 1]) telle que f 0 et supp(f) [x
0
, x
0
+] avec
x
0
[0, 1] et > 0, on consid`ere la solution u de (1) alors
x ]0, 1[, u(x) > 0.
Preuve : il sut de remarquer que G(x, y) > 0 pour tout (x, y) ]0, 1[
2
. Donc
u(x) =
_
1
0
G(x, y)f(y) dy =
_
x
0
+
x
0
G(x, y)f(y) dy > 0 x [0, 1].
Bilan : on retiendra quune equation elliptique
est regularisante : si les donnees f C
0
alors la solution u C
2
a une solution qui depend de mani`ere continue des donnees
a une solution positive si les donnees sont positive
a en general une solution non nulle sur tout linterieur du domaine meme si les
donnees ne sont non nulles que sur un domaine tr`es petit.
Si les donnees ne sont pas reguli`ere, f / C
0
([0, 1]), il faudra denir en quel sens
lequation est veriee et etudier lexistence et lunicite de solutions. Pour etendre les
resultats, on utilisera la theorie des distributions et on cherchera la solution dans un
espace de Sobolev.
2.2.2 Approximation par la methode des dierences nies (DF)
Nous introduisons un maillage de [0, 1] : pour N xe, on introduit un pas de
discretisation h = 1/(N + 1) et nous posons x
j
= j h, avec j = 0, ..., N + 1 les
N + 2 points du maillage.
Le but de la methode numerique consiste `a calculer des valeurs les plus exactes
possibles de u(x
i
) pour i = 1, N.
La premi`ere etape consiste `a trouver une formule qui permet dapprocher la
derivee u

en chacun des points x


j
`a laide des valeurs (u(x
j
))
j=1,N
. Pour cela, on
utilise des developpements de Taylor de u :
u(x + h) = u(x) + hu

(x) +
h
2
2
u

(x) +
h
3
6
u
(3)
(x) +
h
4
24
u
(4)
()
2.2 En une dimension despace 11
avec [x, x + h].
u(x h) = u(x) hu

(x) +
h
2
2
u

(x)
h
3
6
u
(3)
(x) +
h
4
24
u
(4)
()
avec [x h, x]. On en deduit
u

(x) =
u(x h) + u(x + h) 2u(x)
h
2
+ O(h
3
) (2).
Le principe de la methode consiste `a calculer un vecteur U = (U
1
, ..., U
N
) tels que
U
i
soit une bonne approximation de u(x
i
). En faisant x = x
i
dans (2) on obtient le
schema numerique

U
j+1
2U
j
+ U
j1
h
2
= F
j
= f(x
j
) j = 1, N (3)
avec les conditions aux limites qui permettent de determiner U
0
et U
N+1
U
0
= U
N+1
= 0.
Ce schema secrit sous forme matricielle
AU = F
avec A matrice tridiagonale symetrique et inversible dordre N donnee par
A =
1
h
2
_
_
_
_
_
2 1
1
.
.
.
.
.
.
.
.
.
.
.
.
1
1 2
_
_
_
_
_
.
On veut calculer un vecteur U = (U
1
, ..., U
N
) tel que les nombres |U
j
U(x
j
)|
soient petits. On va meme prouver que ces quantites |U
j
U(x
j
)| tendent uni-
formement vers 0 lorsque h tend vers 0.
2.2.3 Etude mathematique de la methode des DF : stabilite au sens de
la norme l

, consistance
Comme souvent pour des methodes numeriques, on va prouver deux proprietes
fondamentales pour le schema numerique (3) : la stabilite et la consistance. On en
deduira alors la convergence de la methode.
Denition 2.2.1 On dira que le schema numerique (3) est stable au sens de la
norme l

si
||U||
l
= sup
j=1,N
|U
j
| C
avec C constante independante de N.
12 Approximation de probl`emes elliptiques par la methode des dierences nies
Denition 2.2.2 Le schema numerique (3) est consistant avec lequation (1) si pour
toute fonction u susamment reguli`ere, on a
| u

(x
j
) +
u(x
j+1
) 2u(x
j
) + u(x
j1
)
h
2
| Ch
p
j = 1, N
p 1. Le nombre p sappelle lordre du schema numerique.
Proposition 2.2.4 Le schema numerique (3) est consistant avec lequation (1) et
il est dordre 2. En outre on a si u C
4
([0, 1])
| u

(x
j
) +
u(x
j+1
) 2u(x
j
) + u(x
j1
)
h
2
|
h
2
12
max
x[0,1]
|u
(4)
(x)| j = 1, N
preuve : Exercice 2.
Denition 2.2.3 On dira quune matrice A 0 si on a A
ij
0 i, j.
Lemme 2.2.1 Soit U R
n
tel V = AU 0. Alors U 0.
Preuve : Soit i [[1, N]] lindice tel que U
i
= max
j=1,N
U
j
. Supposons U
i
> 0.
Examinons trois cas :
si i = 1. 2U
1
U
2
= h
2
V
1
0. Mais U
1
U
2
si bien que 2U
1
U
2
U
1
ce qui
contredit U
1
> 0.
si i = N, meme traitement
si 2 i N 1. Nous avons 2U
i
U
i+1
U
i1
= h
2
V
i
0. Dautre part
2U
i
U
i+1
U
i1
= (U
i
U
i+1
) +(U
i
U
i1
) 0. Donc 2U
i
U
i+1
U
i1
= 0,
do` u U
i
= U
i+1
= U
i1
. De proche en proche on se ram`ene au cas i = 1.
Proposition 2.2.5 La matrice A est inversible et si on note A
1
= (b
ij
) on a
A
1
0 et
0 <

j=1,N
b
ij

1
8
, i = 1, N.
Preuve : A est inversible ssi KerA = {0}. Soit U KerA on AU 0 donc U 0
dapr`es le lemme 2.2.1 et A(U) 0 donc U 0 do` u U = 0. On en deduit aussi que
les coecients de linverse sont tous positifs ou nuls en utilisant la base canonique
de R
N
.
Dautre part, avec la fonction v(x) = x(1 x)/2, on obtient le syst`eme U = AV
avec U = (1, ..., 1) et V = (v(x
1
), ...v(x
N
)). Ainsi

j=1,N
b
ij
= v(x
i
) max
x[0,1]
v(x)
1
8
.
Proposition 2.2.6 Le schema numerique (3) est stable au sens de la norme l

.
2.3 En deux dimension despace 13
Preuve :
|U
i
| = |

j=1,N
b
ij
F
j
|
1
8
sup
j=1,N
|F
j
|.
Proposition 2.2.7 La methode est convergente et on a si u C
4
([0, 1])
max
i=1,N
|u(x
i
) U
i
|
h
2
96
max
x[0,1]
|u
(4)
(x)|.
Preuve : Soit E
j
= U
j
U(x
j
) lerreur numerique ; On a dapr`es la proposition 2.2.1
|
2E
J
E
j+1
E
j1
h
2
|
h
2
12
max
x[0,1]
|u
(4)
(x)| j = 1, N.
En posant V
j
=
2E
J
E
j+1
E
j1
h
2
on a
E
i
=

j=1,N
b
ij
V
j
si bien que
|E
i
| (

j=1,N
b
ij
)max
j=1,N
|V
j
| i = 1, N.
On conclut alors avec la proposition 2.2.3.
2.3 En deux dimension despace
La methode se generalise facilement en dimension 2 et 3. Considerons le probl`eme
de Poisson dans =]0, a[]0, b[
u(x, y) = f(x, y) (x, y)
u(x, y) = 0 sur
o` u f est une fonction donnee reguli`ere dans .
Pour mailler , on consid`ere 2 entiers N et M et on denit les pas despace dans
les 2 directions par h
x
=
a
N+1
et h
y
=
b
M+1
. On pose
x
i
= ih
x
, 0 i N + 1, y
j
= jh
y
, 0 j M + 1.
Nous cherchons maintenant une approximation U
i,j
du reel u(x
i
, y
j
) pour chaque
couple (i, j). En utilisant un developpement de Taylor, on a

2
u
x
2
(x
i
, y
j
) =
2u(x
i
, y
j
) u(x
i+1
, y
j
) u(x
i1
, y
j
)
h
2
x
+ O(h
2
x
),
14 Approximation de probl`emes elliptiques par la methode des dierences nies

2
u
y
2
(x
i
, y
j
) =
2u(x
i
, y
j
) u(x
i
, y
j+1
) u(x
i
, y
j1
)
h
2
x
+ O(h
2
y
).
Ainsi on a le schema numerique suivant :
2U
i,j
U
i+1,j
U
i1,j
h
2
x
+
2U
i,j
U
i,j+1
U
i,j1
h
2
y
= F
i,j
= f(x
i
, y
j
) 1 i N, 1 j M
avec les conditions aux limites qui se traitent de la facon suivante
U
0,j
= U
N+1,j
= 0, 0 j M + 1,
U
i,0
= U
i,M+1
= 0, 0 i N + 1.
Le schema secrit sous forme maricielle
AU = F
o` u A est une matrice tridiagonale par blocs dordre M N
A =
_
_
_
_
_
B C
C
.
.
.
.
.
.
.
.
.
.
.
.
C
C B
_
_
_
_
_
avec
B =
_
_
_
_
_
_
2
h
2
x
+h
2
y

1
h
2
x

1
h
2
x
.
.
.
.
.
.
.
.
.
.
.
.

1
h
2
x

1
h
2
x
2
h
2
x
+h
2
y
_
_
_
_
_
_
,
C =
_
_
_
_
_
_

1
h
2
y
0
0
.
.
.
.
.
.
.
.
.
.
.
.
0
0
1
h
2
y
_
_
_
_
_
_
et U et F les vecteurs denis par U = (U
1
, U
2
, ..., U
M
), F = (F
1
, F
2
, ..., F
M
) o` u
U
j
= (U
1,j
, ...U
N,j
), F
j
= (F
1,j
, ...F
N,j
) 1 j M.
Nous avons les resultats suivants `a demontrer en exercice.
Proposition 2.3.1 Le schema numerique est consistant et il est dordre 2.
Proposition 2.3.2 Le schema numerique est stable au sens de la norme l

.
Proposition 2.3.3 La methode est convergente et on a si u C
4
([0, 1])
max
i=1,N, j=1,M
|u(x
i
, y
j
) U
i,j
| C(h
2
x
+ h
2
y
).
2.4 Exercices 15
2.4 Exercices
Exercice 2.4.1 Montrer que le schema en DF
u
j+2
+ 16u
j+1
30u
j
+ 16u
j1
u
j2
12h
2
est precis dordre 4 pour lapproximation de u

.
Exercice 2.4.2 Soit la matrice dite du Laplacien carree dordre n 1 :
A =
1
h
2
_
_
_
_
_
2 1
1
.
.
.
.
.
.
.
.
.
.
.
.
1
1 2
_
_
_
_
_
.
Nous allons chercher les valeurs propres et accessoirement les vecteurs propres de
A.
1. Soit p = (p
1
, ..., p
n1
) un vecteur propre associe `a la valeur propre , donner
les relations verees par p
k
pour 1 k n 1. en posant p
0
= 0 et p
n
= 0.
2. On cherche des solutions particuli`eres sous la forme p
k
= sin(k), k = 0, .., n.
En deduire en fonction de .
3. Avec la condition de bord p
n
= 0 en deduire . puis les n 1 valeurs propres
de A.
4. On dit que A est normale si AA

= A

A. Pour une matrice normale


cond
2
(A) =
|
max
(A)|
|
min
(A)|
o` u
max
(A) et
min
(A) sont respectivement la plus grande et la plus petite valeur
propre singuli`ere de A (les valeurs propres singuli`eres de A sont les racines
carrees positives des valeurs propres de A

A). Montrer que


cond
2
(A)
4

2
h
2
.
En deduire que lim
n+
cond
2
(A
n
) = +. On dira quune matrice est bien
conditionnee si pour une norme donnee cond(A) = |A||A
1
| 1 et mal condi-
tionnee si cond(A) >> 1. Conclure pour la matrice du Laplacien. Le condition-
nement permet de quantier la sensiblite de la solution x du syst`eme Ax = b
aux perturbations des donnees A et b Exemple cel`ebre :
_
_
_
_
8 6 4 1
1 4 5 1
8 4 1 1
1 4 3 6
_
_
_
_
x =
_
_
_
_
19
11
14
14
_
_
_
_
.
16 Approximation de probl`emes elliptiques par la methode des dierences nies
La solution est x = (1, 1, 1, 1)
t
. Si vous prenez
_
_
_
_
19.01
11.05
14.07
14.07
_
_
_
_
la solution est x = (2.34, 9.745, 4.85, 1.34)
t
.
Exercice 2.4.3 (Simulations numeriques) On consid`ere le probl`eme de convection
et diusion :
u

(x) = f(x), x ]0, 1[, u(0) = u

(1) = 0.
On va discretiser u

par la formule habituelle pour que le schema soit dordre 2.


Les conditions aux limites : pour u(0) = 0 on va ecrire u
0
= 0 pour u

(1) = 1 on va
discretiser de 2 mani`eres
premi`ere methode : on ecrit u
N+2
= u
N+1
dans la formule
2u
i
u
i+1
u
i1
h
2
= f
i
= f(x
i
), 1 i N + 1.
deuxi`eme methode : on ecrit
u
N+2
= u
N+1
+
h
2
2
u

(1) = u
N+1

h
2
2
f(1).
Programmer les deux schemas avec f(x) = x. Calculer la solution exacte et tracer
sur une meme gure la solution exacte et la solution numerique pour les deux cas.
Tracer lerreur en fonction du nombre de mailles pour les deux schemas en echelle
logarithmique. On tracera les deux droites de regression lineaire dont on calculera
les equations. Conclure.
Exercice 2.4.4
u

(x) + c(x)u(x) = f(x), 0 < x < 1, u(0) = , u(1) = . (1)


o` u f et c sont continues sur [0, 1] et et deux reels. On suppose de plus que
c(x) 0 pour tout x [0, 1].
1. Donner un schema de dierences nies pour resoudre (1) en prenant pour u

la meme approximation que dans le cours.


2. Ecrire ce schema sous forme matricielle Ax = b (faites attention pour la
premi`ere et derniere ligne).
3. On note (., .) le produit scalaire dans R
n
, montrer que pour tout v = (v
1
, ..., v
n
)
R
n
, on a
(Av, v) =
n1

1
c
i
v
2
i
+ n
2
(v
2
1
+
n1

i=2
(v
i
v
i1
)
2
)
et en deduire que A est inversible.
2.4 Exercices 17
4. Simulation numerique : prendre n = 100, sur [0, 2] c(x) = 1, f(x) = 6cos(3x)sin(x)+
11cos(x)sin(3x) de telle sorte que la solution exacte est u(x) = cos(x)sin(3x).
Ecrire un script qui calcule la solution par le schema de DF et qui ache la
solution exacte et numerique sur une meme gure.
18 Approximation de probl`emes elliptiques par la methode des dierences nies
Chapitre 3
Approximation de probl`emes
hyperboliques par la methode des
dierences nies
3.1 Equation de transport
3.1.1 Introduction
On consid`ere le probl`eme mod`ele
u
t
(x, t) + a
u
x
(x, t) = 0 x R, t 0 (1)
avec la condition initiale u(x, 0) = u
0
(x) x R.
Exercice 3 :
1. Montrer que u(x, t) = u
0
(x at) est la solution pour t 0.
2. En deduire que
inf
yR
u
0
(y) u(x, t) sup
yR
u
0
(y) x R, t 0.
3. Nous denissons la variation totale dune fonction par
V T(u) =
_
R
|u

(x)|dx.
Montrer que la solution u de (1) est `a variation constante.
Correction :
1.
u
t
(x, t) = au

0
(xat),
u
x
(x, t) = u

0
(xat) et u(x, 0) = u
0
(x) donc u solution
de (1) ;
2. u(x, t) = u
0
(x at) et x at R.
20 Approximation de probl`emes hyperboliques par la methode des dierences nies
3.
V T(u) =
_
R
|
u
x
(x, t)| dx =
_
R
|u

0
(x at)| dx =
_
R
|u

0
(x)| dx = V T(u
0
).
Nous allons chercher des schemas numeriques qui preservent ces deux proprietes.
3.1.2 Resolution de lequation de transport `a coecients constants
3.1.3 Approximation par DF
Le principe de la methode consiste `a calculer une approximation u
n
i
de la solution
exacte u de (1) au point x = ix, t = nt. En utilisant des developpement de taylor,
on a par exemple :
t
u
t
(x, t) = u(x, t + t) u(x, t) + O(t
2
),
2x
u
x
(x, t) = u(x + x, t) u(x x, t) + O(x
3
).
On en deduit un premier schema numerique :
u
n+1
i
= u
n
i
a
t
2x
(u
n
i+1
u
n
i1
), i Z. (1)
Il sagit dun schema explicite `a savoir si on connait la suite (u
n
) on en deduit la
suite (u
n+1
) de facon explicite. On dit aussi que le schema est centre en espace car
la formule qui approche la derivee partielle
u
x
(x, t) fait intervenir les points j 1 et
j + 1.
Etude de la stabilite au sens de la norme l
2
Pour etudier la stabilite on introduit la fonction en escalier v
n
denie par
v
n
(x) = v
n
i
pour (i
1
2
)x < x < (i +
1
2
)x.
Le produit scalaire sur L
2
qui est
(u, v) =
_
R
u(x)v(x) dx
coincide avec le produit scalaire de l
2
= {(v
j
)
jZ
,

j
|u
j
|
2
< +} qui est
(u, v) = h

j
u
j
v
j
.
Par consequent l
2
est isomorphe au sous espace de L
2
des fonctions constantes par
morceaux : la fonction v
n
peut etre assimilee `a la suite (v
n
i
)
iZ
.
3.1 Equation de transport 21
Denition 3.1.1 On dira que le schema numerique (1) est stable au sens de la
norme l
2
si
||v
n
||
L
2
(R)
C n 0
avec C constante independante de n.
Proposition 3.1.1 Le schema numerique (1) est inconditionnement instable au
sens de la norme l
2
.
Preuve : pour une fonction de u L
2
on peut considerer sa transformee de Fourier
F(u)() =
_
R
u(x)exp(ix)dx.
On rappelle que pour toute fonction u L
2
,
F(
q
(u))() = exp(iq)F(u)()
o` u
q
(u) = u(x + q).
Le schema en variable de Fourier secrit alors
F(v
n+1
)() = A()F(v
n
)()
o` u A() sappelle le coecient damplication et vaut
A() = 1 ia
t
x
sin(x).
Alors F(v
n
)() = (A())
n
F(v
0
)(). Si sin(x) = 0 alors |A()| > 1 donc le schema
est numeriquement instable car ||v
n
||
L
2 = ||F(v
n
)||
L
2 quand n tend vers
linni.
Etude dun schema implicite
A la place du schema (1) on consid`ere le schema implicite centre
u
n+1
i
= u
n
i
a
t
2x
(u
n+1
i+1
u
n+1
i1
), i Z. (2)
On parle de schema implicite car il faut resoudre un syst`eme lineaire pour obtenir
la suite (u
n+1
) `a partir de (u
n
).
Proposition 3.1.2 Le schema numerique (2) est stable au sens de la norme l
2
.
Proposition 3.1.3 Le schema numerique (2) est consistant avec lequation de trans-
port (1) et est dordre 2 en espace et un en temps.
La preuve des deux propositions est laissee au lecteur.
22 Approximation de probl`emes hyperboliques par la methode des dierences nies
3.2 Dautres schemas explicites, schema saute-mouton
3.2.1 Notion de CFL
Introduisons maintenant dautres schemas :
des schemas explicites : si a < 0 on decentre en aval
u
n+1
i
= u
n
i
a
t
x
(u
n
i+1
u
n
i
), i Z. (3)
si a > 0 on decentre en amont
u
n+1
i
= u
n
i
a
t
x
(u
n
i
u
n
i1
), i Z. (4)
le schema saute-mouton :
u
n+1
i
= u
n1
i
a
t
x
(u
n
i+1
u
n
i1
), i Z. (5)
Proposition 3.2.1 Les schemas numeriques (3) et (4) sont stables au sens de la
norme l

sous la condition CFL (Courant Friedrichs-Lax)


|a|
t
x
1.
Ils sont consistants avec lequation de transport dordre 1 en temps et espace.
Preuve : pour le schema (3) : on a
u
n+1
i
= u
n
i
(1 + a
t
x
) a
t
x
u
n
i+1
|u
n+1
i
| |u
n
i
|(1 + a
t
x
| a
t
x
|u
n
i+1
|.
do` u
|u
n+1
i
| ||u
n
||
l
.
Ainsi
||u
n
||
l
||u
0
||
l
= C.
Proposition 3.2.2 Le schema numerique saute-mouton (5) est consistant avec lequation
de transport dordre 2 en temps et espace. Il est stable au sens de la norme l
2
sous
la condition CFL (Courant Friedrichs-Lax)
|a|
t
x
1.
3.3 Equation des ondes 23
Preuve : pour la stabilite :
En variables de Fourier le schema secrit
_
F(v
n+1
)()
F(v
n
)()
_
=
_
2ia
t
x
sin(x) 1
1 0
__
F(v
n
)()
F(v
n1
)()
_
.
Sous la condition CFL les valeurs propres de la matrice est

1
= ia
t
x
sin(x) +
_
1 a
2
t
2
x
2
sin
2
(x)

2
= ia
t
x
sin(x)
_
1 a
2
t
2
x
2
sin
2
(x)
Comme |
1
| = |
2
| = 1 donc la puissance n
ieme
de la matrice est donc bornee. (A
n
est
bornee si et seulement si son rayon spectral (A) 1, (A) = max{|
k
|,
k
valeur propre de A}).
3.3 Equation des ondes
3.3.1 Formule de dAlembert
On sinteresse ici `a lapproximation de lequation des ondes :
_
_
_
1
c
2

2
u
t
2


2
u
x
2
= f(x, t), x R, t > 0,
u(x, t = 0) = u
0
(x), x R,
u
x
(x, t = 0) = u
1
(x), x R.
Dans tout ce qui suit, on suppose que les donnees initiales sont `a support compact
u
0
(x) = u
1
(x) = 0 |x| L.
Theor`eme 3.3.1 La solution du probl`eme est donnee par la formule de dAlembert
u(x, t) =
u
0
(x + ct) + u
0
(x ct)
2
+
1
2c
_
x+ct
xct
u
1
(s) ds+
1
2c
_
t
0
_
|yx|c(ts)
f(y, s)dy ds.
Remarque 3.3.1 Cette formule montre en particulier que la solution du probl`eme
de Cauchy (ie f = 0) se decompose sous la forme
u(x, t) = u
+
(x, t) + u

(x, t)
o` u
u
+
(x, t) = f(xct) correspond `a une onde qui se propage dans la direction des
x > 0,
u

(x, t) = g(x+ct) correspond `a une onde qui se propage dans la direction des
x < 0.
24 Approximation de probl`emes hyperboliques par la methode des dierences nies
Preuve du theor`eme : on se restreint au cas f = 0, si ce nest pas le cas la
demonstration reste semblalble mais plus technique. Lidee est dutiliser la relation

2
t
c
2

2
x
= (
t
c
x
)(
t
+ c
x
) cest `a dire voir lequation des ondes comme deux
equations de transport se propageant en sens inverse, et dintroduire des variables
qui permettent dintegrer directement :


t
+ c
x
et


t
c
x
cest `a dire
= x + ct
= x ct
et
U(, ) = u(x, t).
On a donc
x =
+
2
,
t =

2c
,
et

U =
x
u

x +
t
u

t =
1
2c
(
t
+ c
x
)u,

U =
x
u

x +
t
u

t =
1
2c
(
t
c
x
)u.
Lequation des ondes se reecrit

U(, ) = 0. ()
Les conditions initiales en t = 0 deviennent en =
U(, ) = u
0
(),

U(, )

U(, ) =
u
1
()
c
.
En integrant () respectivement par rapport `a puis on obtient :
(i)

U(, ) = G(),
(ii)

U(, ) = F()
et la deuxi`eme condition initiale devient
G() F() =
u
1
()
c
.
3.3 Equation des ondes 25
Integrons (i) par rapport `a entre
0
= et :
U(, ) U(, ) =
_

G(s) ds
ce qui se reecrit avec la CL
U(, ) u
0
() =
_

G(s) ds.
De meme, on int`egre (ii) par rapport `a entre
0
= et
U(, ) U(, ) =
_

F(s) ds
donc
U(, ) u
0
() =
_

F(s) ds
et en sommant on a
2U(, ) = u
0
() + u
0
() +
_

u
1
(s)
c
ds
ce qui donne la formule de dAlembert.
Exercice 3.3.1 On rappelle que la transformee de Fourier en espace de f est
F(f)(k) =

f(k) =
1

2
_
f(x)e
ikx
dx
et la transformee de Fourier inverse
f(x) =
1

2
_

f(k)e
ikx
dk.
1. Montrer que la transformee de la solution de lequation des ondes a lexpression
suivante :
u(k, t) = u
0
(k)cos(ckt) + u
1
(k)
sin(ckt)
ck
.
2. Montrer que
F(
x
0
f)(k) = e
ikx
0
f(k)
avec
x
0
f(x) = f(x x
0
)
F(f g)(k) =

2

f(k) g(k).
26 Approximation de probl`emes hyperboliques par la methode des dierences nies
3. Montrer que
1

2
F
1
(cos(ckt) =
1
2
((x ct) + (x + ct))
(on rappelle que

=
1

2
) et

H(k) =
1
i

2
vp(
1
k
) +
_

o` u H est la fonction dHeaviside et vp(


1
k
) la valeur principale de
1
k
denie par :
< vp(
1
k
), >= lim
0
_
|x|>
(k)
k
dk.
En deduire que
F(H(x x
0
) H(x + x
0
))(k) =
_
2

sin(kx
0
)
k
.
4. Conclure
3.3.2 Cone de dependance et propagation `a vitesse nie
Dapr`es la formule de dAlembert, on voit que pour calculer la solution au point
M = (x, t) on na besoin des conditions initiales et du second membre seulement
dans le cone de sommet M et de base [A, B] avec A = (x ct, 0) et B = (x + ct, 0)
appele cone de dependance D(M). On en deduit une propriete essentielle des ondes
qui est leur propagation `a vitesse nie. En eet, si on se donne f `a support dans
K = [a, b] en x et les conditions initiales u
0
et u
1
`a support dans K, la solution est
a support dans [a ct, b + ct].
3.3.3 Regularite du probl`eme de Cauchy f = 0
Dapr`es la formule de dAlembert, on voit que si u
0
C
k+1
(R) et u
1
C
k
(R)
alors u(., t) C
k
(R). Autrement dit, dans lequation des ondes,
t
u et c
x
u sont de
meme nature, et si on suppose que (
t
u(0), c
x
u(0)) C
k
(R) C
k
(R) alors on a
(
t
u(., t), c
x
u(., t)) C
k
(R) C
k
(R). On dit que lequation des ondes conserve la
regularite, et ceci est une caracteristique de la famille des equations hyperboliques
lineaires. Les equations paraboliques (equation de la chaleur) regularisent : meme
pour une donnee non reguli`ere, la solution est reguli`ere pour t > 0. Les equations hy-
perboliques non lineaires peuvent introduire des singularites, meme pour des donnees
tr`es reguli`eres (equations de B urgers et chocs).
3.3 Equation des ondes 27
3.3.4 Regularite de la solution avec un terme source
Si on compare aux probl`emes elliptiques, type Laplacien, il est naturel de se
demander si on gagne deux crans de regularite en passant de f a u? La reponse en
general est non... On va voir quon ne gagne quun cran de regularite. On nobtient
pas facilement dinformations `a partir de la formule explicite de la solution, mais
plutot `a partir de son expression en Fourier. On peut montrer que la solution du
probl`eme source verie
u(k, t) =
_
t
0
sin(ck(t s))
ck

f(k, s) ds
ce qui implique
c

u
x
(k, t) = i
_
t
0
sin(ck(t s))

f(k, s) ds
u
t
(k, t) =
_
t
0
cos(ck(t s))

f(k, s) ds
Par Cauchy-Schwarz on obtient alors :
|c

u
x
(k, t)|
2
t
_
t
0
|

f(k, s)|
2
ds,
|
u
t
(k, t)|
2
t
_
t
0
|

f(k, s)|
2
ds.
Finalement Plancherel nous permet de conclure :
||c
u
x
||
2
L
2(t) t
_
t
0
_
R
|f(k, s)|
2
dxds,
||
u
t
||
2
L
2(t) t
_
t
0
_
R
|f(k, s)|
2
dxds
ce qui montre que
f L
2
loc
(R
+
, L
2
(R)) =u L

(R
+
, H
1
(R)) W
1,
(R
+
, L
2
(R)).
3.3.5 Conservation de lenergie-Unicite
On denit lenergie par
E(t) =
1
2
_
R
(|
u
t
|
2
+|
u
x
|
2
) dx.
28 Approximation de probl`emes hyperboliques par la methode des dierences nies
Exercice 3.3.2 1- En absence de terme source (f = 0), montrer quil y a conser-
vation de lenergie, i.e.
E(t) = E(0) =
1
2
||u
1
||
2
+
1
2
||
u
0
x
||
2
, t > 0.
On pourra montrer ce resultat de deux facons. La premi`ere facon consiste a partir de
lequation des ondes, `a la multiplier par
t
u et `a integrer par parties. La deuxi`eme
demonstration se fait directement `a partir de la formule de dAlembert.
2- En deduire lunicite de la solution.
3- On rajoute maintenant un terme source f L
2
(R). Montrer que, `a tout instant,
lenergie reste bornee :
E(t)
1/2
E(0)
1/2
+ C
_
t
0
||f||(s) ds.
3.3.6 Approximation par DF
Exercice 3.3.3 On sinteresse `a lapproximation de lequation des ondes 1D :

2
u
t
2


2
u
x
2
= 0, x R, t > 0, (1).
On consid`ere pour (1) le schema numerique :
u
n+1
h
2u
n
h
+ u
n1
h
t
2
+ A

h
u
n
h
= 0
avec
A

h
u
h
(x) =
u(x + h) 2u(x) + u(x h)
h
2
(1)
u(x + 2h) 2u(x) + u(x 2h)
4h
2
, R.
1. Montrer que pour toute fonction u susamment reguli`ere, on a
u(x + h) 2u(x) + u(x h)
h
2
=
d
2
u
dx
2
(x) +
h
2
12
d
4
u
dx
4
(x) + O(h
4
).
2. En deduire tel que pour toute fonction u susamment reguli`ere
A

h
u
h
(x) =
d
2
u
dx
2
(x) + O(h
4
).
On notera
0
cette valeur de .
3. Determiner le symbole de A

h
u
h
(x), cest `a dire la fonction

A

h
telle que :
F(A

h
u)() =

A

h
Fu().
(on exprimera

A

h
uniquement `a laide de sin
2
(h/2) et on rappelle que
F(
qh
u
h
)() = e
iqh
u
h
(),
avec (
qh
u
h
)(x) = u
h
(x + qh)).
3.4 Exercices 29
4. Par la methode de Fourier, montrer que la condition de stabilite L
2
pour le
schema numerique pour =
0
est

3
2
.
(on montrera que u
n+1
h
() + (t
2

A

0
h
() 2) u
n
h
() + u
n1
h
() = 0 et

A

0
h
()
4
0
t
2
h
2
.)
3.4 Exercices
Exercice 3.4.1 Soit le schema de Lax-Friedrichs pour lequation de transport
v
n+1
i
=
v
n
i1
+ v
n
i+1
2
a
t
2x
(v
n
i+1
v
n
i1
).
1. Montrer que ce schema est consistant et donne lordre.
2. Sous la CFL
|a|
t
x
1
montrer que le schema est stable au sens de la norme L
2
.
3. Montrer que le schema verie le principe de maximum discret
inf
jZ
v
0
j
v
n
i
max
jZ
v
0
j
.
.
4. Montrer alors que la variation totale de la solution numerique
V T
n
=

jZ
|v
n
j
v
n
j1
|
est decroissante.
Exercice 3.4.2

Equation de convection
On se propose de resoudre numeriquement lequation de convection avec conditions
de periodicite au bord
_
_
_
u
t
+ V
u
x
= 0 pour tout (x, t) [a, b]]0, T]
u(t = 0, x) = u
0
(x) pour tout x R
u(t, a) = u(t, b) pour tout t R
+
(3.1)
On prendra a = 10, b = 10.
a. Quelle est la solution exacte de cette equation ?
b. Implementer le schema explicite centre de lequation dadvection. Verier quil
est inconditionnellement instable.
30 Approximation de probl`emes hyperboliques par la methode des dierences nies
c. Rendre le schema precedent L
2
stable en utilisant une version implicite du schema
(utiliser les fonctions lufact etlusolve(splu,b) pour resoudre le syst`eme lineaire).
On comparera la solution obtenue avec la solution exacte pour tout temps.
d. Implementer les schemas explicites decentres amont et aval.

Etudier stabilite et
convergence.
e. Meme questions pour les schemas de Lax-Friedrichs et Lax-Wendro. Comparer
le comportement de ces deux derniers schemas lorsque la condition initiale est un
creneau.
Conseils de programmation : Scilab est optimise pour eectuer rapidement des
operations sur les matrices et vecteurs. Il est donc fortement conseille deectuer
vos operations directement sur les vecteurs et non sur les elements de ces vecteurs.
Ainsi, il est beaucoup plus rapide (et clair) deectuer sous Scilab
u=v+w;
pour additionner les deux vecteurs v et w, que deectuer une boucle explicite
for i=1:size(v,c)
u(i)=v(i)+w(i);
end
De meme, il vaut mieux eectuer loperation
u(2:10)=v(1:9);
que
for i=1:9
u(i+1)=v(i);
end
pour decaler un vecteur sur la droite. En particulier, pour le travail demande ici,
seule la boucle sur la variable en temps est necessaire.
Exercice 3.4.3 (Simulations numeriques) On consid`ere le probl`eme de convection
et diusion :
u
t
(x, t) + a
u
x
(x, t)

2
u
x
2
(x, t) = 0 x R, t 0, u(x, 0) = u
0
(x).
On prend a = 1 et CFL = 0.6 Le temps physique de la simulation est T = 0.2s On
ajoute les conditions aux limites v
n
0
= v
n
1
, v
n
N+1
= v
n
N
de type Neumann ; comme le
domaine est non borne pour faire des calculs sur ordinateur, on se donne un domaine
de calcul par ex ici = [0, 1] et on ajoute des conditions aux limites qui laissent
sortir les ondes du domaine de calcul. Programmer en matlab ou scilab les schemas
3.4 Exercices 31
implicite, saute mouton Lax-Friedrichs et decentre pour les deux conditions initiales
suivantes
v
0
(x) =
_
_
_
0 si x < 0.375
16sin(4
x0.375
0.25
)
(x0.375)
2
(x0.625)
2
0.25
4
si 0.375 x 0.625
0 si x > 0.625
v
0
(x) =
_
1 si x < 0.5
0 si x > 0.5
Exercice 3.4.4 En vous inspirant du script du schema decentre amont programmer
le schema de Lax-Wendro
v
n+1
i
= v
n
i
V
t
2x
(v
n
i+1
v
n
i1
) + V
2
t
2
2x
2
(v
n
i+1
2v
n
i
+ v
n
i1
)
avec les donnees :
dx = 0.1 ; // dx = pas despace
V = 70 ; // vitesse de convection
c = 0.9 ; // c
dt = dx*c/V; // dt = pas de temps
Tnal=0.5 ; // Temps nal souhaite
lg=10 ; // Demi-longeur du domaine
nx = 2*lg/dx+1 ; // nx = nombre de noeuds
nt = int(Tnal/dt) ; // nt = nombre de pas de temps eectues.
Tnal=nt*dt ; // Temps nal.
//
// initialisation
//
x=linspace(-lg,lg,nx) ;
f0=creneau ;
//f0=bosse ;
Partie theorique:
1. Montrer que le schema est consistant `a lordre 2.
2. Calculer le coecient damplication et montrer que {A(); R} est une
ellipse dont les axes principaux sont horizontaux et verticaux. Calculer A(0),
32 Approximation de probl`emes hyperboliques par la methode des dierences nies
A(

2
) et A(
3
2
) et en deduire que le schema est stable pour la norme L
2
ssi
a
t
x
1.
Chapitre 4
Approximation dun probl`eme
parabolique par la methode des
dierences nies
4.1 Probl`eme mod`ele
On consid`ere le probl`eme mod`ele
u
t
(x, t)

2
u
x
2
(x, t) = f(x, t) x =]0, 1[, t 0 (1)
avec les conditions aux limites homog`enes de Dirichlet
u(0, t) = u(1, t) = 0, t 0,
et la condition initiale u(x, 0) = g(x) x . On suppose > 0.
4.2 Schema de Crank et Nicholson
4.2.1 Etablissement du schema
Soit un entier N denissons le pas despace x =
1
N+1
. On consid`ere le schema
le plus utilise, le schema de Crank et Nicholson :
u
n+1
j
= u
n
j
+
t
2x
2
(u
n
j+1
2u
n
j
+ u
n
j1
)
+
t
2x
2
(u
n+1
j+1
2u
n+1
j
+ u
n+1
j1
) + tf
n
j
1 j N, n 0
u
n
0
= u
n
N+1
= 0, n 0
et
u
0
j
= g
j
= g(x
j
), 0 j N + 1.
34 Approximation dun probl`eme parabolique par la methode des dierences nies
4.2.2 Etude theorique du schema de Crank et Nicholson : stabilite, con-
sistance
Proposition 4.2.1 Le schema numerique de Crank et Nicholson est stable au sens
de la norme l
2
et consistant avec (1) dordre 2 en temps et espace.
Preuve :
Etude de la consistance : on a
u(jx, (n + 1)t) u(jx, nt)
t


2x
2
[u((j+1)x, nt)2u(jx, nt)u((j1)x, nt)
+u((j + 1)x, (n + 1)t) 2u(jx, (n + 1)t) u((j 1)x, (n + 1)t)] =
u(jx, (n + 1)t) u(jx, nt)
t

2
[

2
u
x
2
(jx, nt)+

2
u
x
2
(jx, (n+1)t)]+O(x
2
).
Dautre part,
u(jx, (n + 1)t) u(jx, nt)
t
=
u
t
(jx, nt) + O(t)
et
u
t
(jx, (n +
1
2
)t) =
u
t
(jx, nt) +
t
2

2
u
t
2
(jx, nt) + O(t
2
)
do` u
u(jx, (n + 1)t) u(jx, nt)
t
=
u
t
(jx, (n +
1
2
)t) + O(t
2
).
Avec lestimation
1
2
[

2
u
x
2
(jx, nt) +

2
u
x
2
(jx, (n + 1)t)] =

2
u
x
2
(jx, (n +
1
2
)t) + O(t
2
)
on a le resultat
u(jx, (n + 1)t) u(jx, nt)
t


2x
2
[u((j+1)x, nt)2u(jx, nt)u((j1)x, nt)
+u((j + 1)x, (n + 1)t) 2u(jx, (n + 1)t) u((j 1)x, (n + 1)t)] =
u
t
(jx, (n +
1
2
)t)

2
u
x
2
(jx, (n +
1
2
)t + O(x
2
+ t
2
).
Etude de la stabilite :
Le schema de Crank et Nicholson peut aussi secrire sous la forme
U
n+1
= fF
n
+ U
n
tA(
U
n+1
+ U
n
2
)
4.2 Schema de Crank et Nicholson 35
avec
A =
1
h
2
_
_
_
_
_
2 1
1
.
.
.
.
.
.
.
.
.
.
.
.
1
1 2
_
_
_
_
_
.
Ainsi si on prend F = 0
U
n+1
= (I +
t
2
A)
n
(I

2
A)
n
U
0
.
Or les valeurs propres de
(I +
t
2
A)
1
(I

2
A)
sont les reels
2 t
k
2 + t
k
, 1 k N
avec

k
= 2
1
x
[1 cos(
k
N + 1
)], 1 k N.
Les
k
sont les valeurs propres de A.
Exercice 4.2.1 On consid`ere le probl`eme
u
t

2
u
x
2
= f(x, t), x R, t 0,
avec > 0 et la donnee initiale u(x, 0) = u
0
(x). On consid`ere le schema numerique
de DF
u
n+1
j+1
u
n
j
t
+
u
n
j
u
n
j1
x

u
n
j+1
2u
n
j
+ u
n
j1
x
2
= f(jx, nt), j Z, n N.
1. Calculer en variable de Fourier le schema numerique.
2. Calculer le coecient damplication et etudier la stabilite L
2
du schema.
3. Quelle est la precison du schema.
Exercice 4.2.2
1

Equation de la chaleur - Schema explicite
3 On se propose de resoudre numeriquement lequation de la chaleur
_
u
t

2
u
x
2
= 0 pour tout (x, t) R]0, T]
u(t = 0, x) = u
0
(x) pour tout x R.
(4.1)
36 Approximation dun probl`eme parabolique par la methode des dierences nies
On rappelle que la solution exacte de cette equation est connue et que
u(x, t) =
1

4t
_

u
0
(y) exp
_

(x y)
2
4t
_
dy. (4.2)
a.

Ecrire un script scilab qui calcul numeriquement la solution de lequation (4.1)
`a laide dun schema explicite centre dordre 2. An de tester la methode, on pourra
choisir
u
0
(x) = max(0, 1 x
2
),
= 1 et T = 1. Bien entendu, il est impossible dutiliser la methode des dierences
nies sur R tout entier. On se restreindra donc `a un gros domaine, par exemple
] 10, 10[ et on imposera les conditions u(10, t) = u(10, t) = 0 pour tout temps t.
A chaque iteration en temps (ou toutes les p iterations), on visualisera la solution
obtenue.
b. Verier numeriquement que la condition CFL
2t (x)
2
est necessaire et susante pour assurer la stabilite du schema.
c. Calculer numeriquement la solution exacte donnee par (4.2) au temps nal
t = T. Verier visuellement la convergence de la solution calculee par la methode
des dierences nies vers la solution exacte en superposant sur un meme graphique
les deux solutions obtenue pour t = T.
2

Equation de la chaleur - Schema Implicite
Le schema explicite precedent `a le desavantage de necessiter lusage de pas de temps
dautant plus petits que la discretisation en espace est ne. An de circonvenir `a ce
probl`eme, une solution consiste `a utiliser le schema implicite centre.
Reprendre toutes les questions precedentes avec le schema implicite centre. Verier
en particulier la stabilite du schema meme lorsque la condition CFL du schema ex-
plicite nest pas veriee.
Conseils de programmation : La matrice du syst`eme introduit est creuse. Cette
particularite doit absolument etre exploitee. Elle permet deconomiser de mani`ere
drastique capacites en temps de calcul et memoire. Pour la construction de la ma-
trice, utiliser spzeros, speye et loperateur colon. Pour la resolution du syst`eme
lineaire, utiliser la factorisation de Cholesky chfact(A) et chsolve
Chapitre 5
Approximation dun probl`eme
elliptique par la methode des
volumes nis
5.1 Probl`eme mod`ele, maillage volumes nis
On consid`ere le probl`eme suivant
u

(x) = f(x), ]0, 1[ (1)


u(0 = u(1) = 0, (2).
Denition 5.1.1 On appelle maillage volume nis de lintervalle [0, 1] un ensemble
de N mailles (K
i
)
i=1,N
telles que K
i
=]x
i1/2
, x
i+1/2
[, avec x
1/2
= 0 < x
3/2
< ... <
x
i1/2
< x
i+1/2
< ... < x
N+1/2
= 1, et on note h
i
= x
i+1/2
x
i1/2
. On se donne
egalement N points (x
i
)
i=1,N
situes dans les mailles K
i
. On a donc
0 = x
1/2
< x
1
< x
3/2
< ... < x
i1/2
< x
i
< x
i+1/2
< ... < x
N+1/2
= 1.
On notera h
i+1/2
= x
i+1
x
i
, et h = max
i=1,N
h
i+1/2
et pour des questions de
notations on posera egalement x
0
= 0 et x
N+1
= 1.
5.2 Schema volumes nis et notion de Flux numerique
On int`egre lequation (1) sur K
i
, et on obtient :
u

(x
i+1/2
) + u

(x
i1/2
) =
_
K
i
f(x) d x.
On pose
f
i
=
1
h
i
_
K
i
f(x) d x.
38 Approximation dun probl`eme elliptique par la methode des volumes nis
On introduit les variables discr`etes (u
i
)
i=1,N
, une par maille qui devraient etre de
bonne approximations de u(x
i
).
On a le schema numerique :
F
i+1/2
F
i1/2
= h
i
f
i
, i = 1, N,
o` u F
i+1/2
appele le ux numerique en x
i+1/2
devrait etre une bonne approximation
de u

(x
i+1/2
).
Le principe de la methode des volumes nis est darriver `a ecrire les ux numeriques
en fonctions des variables discr`etes (u
i
).
On pose alors
F
i+1/2
=
u
i+1
u
i
h
i+1/2
, i = 1, N
et
F
1/2
=
u
1
h
1/2
F
N+1/2
=
u
N
h
N+1/2
pour tenir compte des conditions aux limites de Dirichlet homog`enes. On peut aussi
ecrire :
F
i+1/2
=
u
i+1
u
i
h
i+1/2
, i = 0, N + 1
en posant u
0
= u
N+1
= 0.
On peut ecrire le schema sous forme matricielle
AU = b
avec U = (u
1
, ...u
N
), b
i
= f
i
, = 1, N et
A =
_
_
_
_
_
_
_
_
_
_
_
1
h
1
(
1
h
1/2

1
h
3/2
)
1
h
1
1
h
3/2
. . .
1
h
2
1
h
3/2
1
h
2
(
1
h
3/2

1
h
5/2
)
1
h
2
1
h
5/2
.
.
.
.
.
.

1
h
i
1
h
i1/2
1
h
i
(
1
h
i1/2

1
h
i+1/2
)
1
h
i
1
h
i+1/2
.
.
.
.
.
.
. . .
1
h
N
1
h
N1/2
1
h
N
(
1
h
N1/2

1
h
N+1/2
)
_
_
_
_
_
_
_
_
_
_
_
5.3 Analyse mathematique du schema
Proposition 5.3.1 Si f C([0, 1]) et la solution exacte u C
2
([0, 1]) alors le
schema volume nis (3) a une unqiue solution (u
i
).
5.3 Analyse mathematique du schema 39
Preuve : Avec f
i
= 0, le schema peut secrire

u
i+1
u
i
h
i+1/2
+
u
i
u
i1
h
i1/2
i = 1, N
avec u
0
= u
N+1
= 0. En multipliant par u
i
et en sommant de i = 1, N on obtient
N

i=1

u
i+1
u
i
h
i+1/2
+
N

i=1
u
i
u
i1
h
i1/2
= 0.
En eectuant un changement dindice sur la deuxi`eme somme, on obtient :
N

i=1

u
i+1
u
i
h
i+1/2
+
,

i=0
N 1
u
i+1
u
i
h
i+1/2
= 0.
En regroupant les termes , on a donc
N

i=1
(
(u
i+1
u
i
)
2
h
i+1/2
+
u
2
1
h
1/2
+
u
2
N
h
N+1/2
= 0.
Ceci demontre lunicite de (u
i
) et donc lexistence puisque le syst`eme est carre
dordre N. On rappelle quune matrice A est inversible ssi son noyau est reduit au
vecteur nul.
Lemme 5.3.1 (Consistance des Flux) Soit u C
2
([0, 1]) solution de lequation
(1). On note F
i+1/2
= u

(x
i+1/2
) le ux exact en x
i+1/2
et F

i+1/2
=
u
i+1
u
i
h
i+1/2
le
quotient direntiel qui approche la derivee premi`ere u

(x
i+1/2
). On dit que le ux
est consistant sil existe une constante C R
+
ne dependant que de u telle que
lerreur de consistance sur le ux denie par
R
i+1/2
= F
i+1/2
F

i+1/2
,
verie
|R
i+1/2
| Ch.
Preuve : utiliser des developpements de Taylor.
Denition 5.3.1 (Conservativite des ux) On dit que le schema est conservatif
si lorsque lon consid`ere une interface x
i+1/2
entre les 2 mailles K
i
et k
i+1
le ux
entrant est egal au ux sortant.
Theor`eme 5.3.1 Soit u C
2
([0, 1]) solution de lequation (1). On pose e
i
= u(x
i
)
u
i
, i = 1, N et e
0
= e
N+1
= 0. Il existe C 0 ne dependant que de u telle que
1.
N

i=1
(u
i+1
u
i
)
2
h
Ch
2
40 Approximation dun probl`eme elliptique par la methode des volumes nis
2.
N

i=1
e
2
i
Ch
3.
max
i=1,N
|e
i
| Ch.
Preuve : Ecrivons le schema volumes nis :
F
i+1/2
F
i1/2
= h
i
f
i
et lequation exacte integree sur la maille K
i
F
i+1/2
F
i1/2
= h
i
f
i
.
En les soustrayant on a :
F
i+1/2
F
i+1/2
F
i1/2
+ F
i1/2
= 0.
Do` u
F

i+1/2
F
i+1/2
F

i1/2
+ F
i1/2
= R
i+1/2
+ R
i1/2
.
ou encore

1
h
i+1/2
(e
i+1
e
i
) +
1
h
i1/2
(e
i
e
i1
) = R
i+1/2
+ R
i1/2
.
On multiplie par e
i
et on somme de 1 `a N :
N

i=1

1
h
i+1/2
(e
i+1
e
i
)e
i
+
N

i=1
+
1
h
i1/2
(e
i
e
i1
)e
i
=
N

i=1
R
i+1/2
e
i
+
N

i=1
R
i1/2
e
i
,
soit
N

i=1

1
h
i+1/2
(e
i+1
e
i
)e
i
+
N1

i=0
+
1
h
i+1/2
(e
i+1
e
i
)e
i+1
=
N

i=1
R
i+1/2
e
i
+
N1

i=0
R
i+1/2
e
i+1
.
En reordonnant les termes, on obtient
N

i=0
(e
i+1
e
i
)
2
h
i+1/2
=
N

i=0
R
i+1/2
(e
i+1
e
i
).
Or R
i+1/2
Ch donc :
N

i=0
(e
i+1
e
i
)
2
h
i+1/2
Ch
N

i=0
(e
i+1
e
i
)
_
h
i+1/2
_
h
i+1/2
5.4 Exercices 41
et par linegalite de Cauchy-Schwarz
N

i=0
(e
i+1
e
i
)
2
h
i+1/2
Ch(
N

i=0
(e
i+1
e
i
)
2
h
i+1/2
)
1/2
(
N

i=0
h
i+1/2
)
1/2
.
Or

N
i=0
h
i+1/2
)
1/2
= 1, on en deduit que :
N

i=0
(e
i+1
e
i
)
2
h
i+1/2
Ch(
N

i=0
(e
i+1
e
i
)
2
h
i+1/2
)
1/2
,
et donc
(
N

i=0
(e
i+1
e
i
)
2
h
i+1/2
)
1/2
Ch.
Pour 3) :
|e
i
| = |
i

j=1
e
j
e
j1
|
N

j=0
|e
j
e
j1
|.
Donc par CS
|e
i
| (
N

j=0
(e
j
e
j1
)
2
h
j+1/2
)
1/2
(
N

j=0
h
j+1/2
)
1/2
do` u 3), et 2) sen deduit immediatement.
5.4 Exercices
Exercice 5.4.1 On consid`ere le probl`eme
u

(x) = f(x), ]0, 1[ (1)


u(0 = a, u(1) = b, (2).
Ecrire les schemas dierences nis et volumes nis avec un pas constant en donnant
la matrice et le second membre.
Exercice 5.4.2 On sinteresse au conditionnement pour la norme euclidienne de la
matrice issue dune discretisation par Dierences Finies du probleme aux limites
suivant :
u

(x) + u(x) = f(x), x ]0, 1[, u(0) = u(1) = 0.(1)


Soit N N. On note U = (uj) j = 1...N une valeur approchee de la solution u
du probl`eme (1) aux points
j
N+1
, j = 1...N . On rappelle que la discretisation par
dierences nies de ce probleme consiste `a chercher U comme solution du syst`eme
lineaire AU = f(
j
N+1
), j = 1...N o` u la matrice A M
N
(R) est denie par A =
(N + 1)
2
B + Id, Id designe la matrice identite et
42 Approximation dun probl`eme elliptique par la methode des volumes nis
B =
_
_
_
_
_
_
_
_
2 1 0 . . . 0
1 2 1
.
.
.
0
.
.
.
.
.
.
.
.
.
0
.
.
.
1 2 1
0 . . . 0 1 2
_
_
_
_
_
_
_
_
1. ( Valeurs propres de la matrice B.) On rappelle que le probl`eme aux valeurs
propres
u

(x) = u(x), x ]0, 1[, u(0) = u(1) = 0.(2)


admet la famille (
k
, u
k
), k N

,
k
= (k)
2
et u
k
(x) = sin(kx) comme
solution. Montrer que les vecteurs U
k
= u
k
(
j
N+1
) j = 1...N sont des vecteurs
propres de la matrice B. En deduire toutes les valeurs propres de la matrice B.
2. En deduire les valeurs propres de la matrice A.
3. En deduire le conditionnement pour la norme euclidienne de la matrice A.
Exercice 5.4.3 (Non consistance des volumes nis) Montrer que la discretisation
de loperateur u

par le schema volumes nis nest pas toujours consistante au sens


des dierences nies, i.e. que lerreur de consistance denie par
R
i
=
1
h
i
[
1
h
i+1/2
(u(x
i+1
) u(x
i
)) +
1
h
i1/2
(u(x
i
) u(x
i1
))] u

(x
i
)
ne tend pas toujours vers 0 lorsque h tend vers 0.
5.5 Annexe I : Memento Scilab
Scilab peut-etre utilise directement en tapant les commandes en ligne, soit par lin-
termediaire de chier de fonctions (.sci) et de scripts (.sce), cest `a dire de listes
de commandes executables. La syntaxe de Scilab est tr`es proche de Matlab. Pour
connatre la fonction dune commande Scilab, taper help suivi du nom de la com-
mande. Par exemple
help help;
La commande apropos permet de rechercher les occurrences dun mot dans laide
de Scilab. Enn, rappelons quune commande suivie dun point virgule desactive
sa sortie texte. Quelques commandes utiles (consulter laide de scilab pour plus de
details)
Commandes diverses
exec(toto.sce) - Execute le script toto.sce
5.6 Annexe II : une petite biblioth`eque en scilab 43
getf(fonctions.sci) - Charge dans lenvironnement Scilab les fonctions denies
par le chier fonctions.sci
halt() - Eectue une pause jusqu`a lactivation du clavier
modulo(r,s) - Calcul le r modulo s
for ... end- Declaration dune boucle. exemple :
for i=1:nx
u[i]=i;
end
clear - Supprime les variables precedemment denies
exit - Pour quitter Scilab
Operations sur les vecteurs et matrices
linspace(x1,x2 ,n) - Creation dun vecteur colonne aux valeurs equireparties
: - Operateur dextraction de sous-matrices et sous-vecteurs. exemple :
u(1:10)=v(5:15)
Copie le vecteur (v
5
, . . . , v
15
) dans le vecteur
(u
1
, . . . , u
15
).
spzeros(n,p) - Creation dune matrice creuse nulle de taille n p.
speye(n,n) - Creation dune matrice identite creuse de taille n n.
spcho=chfact(A) - Factorisation de Cholesky de la matrice creuse A
chsolve(spcho,b) - Calcul A
1
b, o` u spcho=chfact(A)
splu = lufact(A) - Factorisation LU de la matrice creuse A
lusolve(splu,b) - Calcul A
1
b, o` u splu=lufact(A)
Commandes graphiques
xinit() - Creation dune nouvelle fenetre graphique
xdel() - Suppression dun fenetre graphique
xbasc() - Rafrachit la fenetre graphique
plotframe - Creation dun cadre dans la fenetre graphique, exemple :
plotframe([0,1,0,1],[4,2,4,2],titre)
cree un syst`eme de coordonnees dans le carre unite muni
du titre titre.
plot2d - Pour ache une ou plusieurs courbes. exemple : plot2d(x,y,1,"000")
xtitle - Denit le titre du graphique. exemple : xtitle(titre)
5.6 Annexe II : une petite biblioth`eque en scilab
function us=shift(typ,u)
//decale le tableau u de +1 ou -1
//avec condition aux limites de Dirichlet
select typ
case +1 then //shift +1
44 Approximation dun probl`eme elliptique par la methode des volumes nis
[m, n] = size(u);
us(1 :n-1) = u(2 :n) ;
us(n) = 0. ;
case -1 then //shift -1
[m, n] = size(u);
us(2 :n) = u(1 :n-1) ;
us(1) = 0. ; else
error(shift de +1 ou -1 ?)
end ;
endfunction ;
function us=shiftp(typ,u)
//decale le tableau u de +1 ou -1
//avec condition aux limites periodiques
select typ
case +1 then //shift +1
[m, n] = size(u);
us(1 :n-1) = u(2 :n) ;
us(n) = u(1) ;
case -1 then //shift -1
[m, n] = size(u);
us(2 :n) = u(1 :n-1) ;
us(1) = u(n) ;
else
error(shift de +1 ou -1 ?)
end ;
endfunction ;
function us=shift2d(typ,u)
//decale le tableau u de +1 ou -1
//dans les directions nord, sud, est, ouest
//avec condition aux limites de Dirichlet
select typ
case n then //shift nord
[m, n] = size(u);
us(1 :m,1 :n-1) = u(1 :m,2 :n) ;
us(1 :m,n) = 0. ;
case s then //shift sud
[m, n] = size(u);
us(1 :m,2 :n) = u(1 :m,1 :n-1) ;
us(1 :m,1) = 0. ;
case e then //shift est
5.6 Annexe II : une petite biblioth`eque en scilab 45
[m, n] = size(u);
us(1 :m-1,1 :n) = u(2 :m,1 :n) ;
us(m,1 :n) = 0. ;
case o then //shift ouest
[m, n] = size(u);
us(2 :m,1 :n) = u(1 :m-1,1 :n) ;
us(1,1 :n) = 0. ;
else
error(shift nord, sud, est, ouest ?)
end ;
endfunction ;
function y=creneau(x)
y = (abs(x) < 3) 2 1;
endfunction ;
function y=bosse(x)
y = max(0., 1. x 2);
endfunction ;
function y=noyau(x,t)
y = exp(x 2/(4 t))/sqrt(4 pi t);
endfunction ;
function y=phase(x,lg)
y = x 2 lg int((x lg)/(2 lg));
endfunction ;
function f=source(x,y)
f = (50 (((x 0.5) 2)

ones(y) + ones(x)

((y 0.5) 2)) < 1) 5;


endfunction ;
46 Approximation dun probl`eme elliptique par la methode des volumes nis
Bibliographie
[1] P. G. Ciarlet, Introduction `a lanalyse numerique et matricielle, Masson,
1988.
[2] P. G. Ciarlet, The nite element method for elliptic problem, North Holland,
1978.
[3] G. Allaire, S. M. Kaber , Alg`ebre lineaire numerique, Ellipses, 2002.
[4] G. Allaire, S. M. Kaber , Introduction `a Scilab, Exercices pratiques corriges
dalg`ebre lineaire, Ellipses, 2002.
[5] P. A. Raviart, Introduction `a lanalyse numerique des equations aux derivees
partielles, Masson, 1992.
[6] A. Le Pourhiet, Resolution des equations aux derivees partielles, Cepadues
Editions, 1988.
[7] B. Lucquin, O. Pironneau, Introduction au calcul scientique, Masson,
1996.
[8] S. Nicaise Analyse numerique et equations aux derivees partielles, Dunod,
2000.
[9] L. Sainsaulieu, Calcul Scientique,Masson, 1996.
[10] J. Rappaz, M. Picasso, Introduction `a lanalyse numerique, Presses poly-
techniques et unversitaires romandes, 1998.
[11] C. Zuily, Probl`emes de distributions, Hermann, 1978.