Vous êtes sur la page 1sur 47

Master MAP M1 Math APPLIQUEE UE2 EDP2 2010/2011

COURS METHODES DAPPROXIMATION


DES EQUATIONS AUX DERIVEES PARTIELLES
PAR DIFFERENCES FINIES ET VOLUMES FINIS

DAVEAU CHRISTIAN 1

Temps t= 0.44118

Temps t= 0.5
LDG
uex

LDG
uex

1.2

1.2

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0.2

0.4

0.6

0.8

0.2

0.4

0.6

1. Universit
e de Cergy-Pontoise, D
epartement de math
ematique, 95302, Cergy-Pontoise, cedex France.

0.8

Table des mati`


eres
1 Introduction
1.1 Definition dune equation aux derivees partielles (e.d.p) . . . . . . . .
1.2 Exemples et classification si lordre est 2. . . . . . . . . . . . . . .

5
5
5

2 Approximation de probl`
emes elliptiques par la m
ethode des differences finies
2.1 Introduction du mod`ele . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 En une dimension despace . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Etude de lexistence et unicite de la solution . . . . . . . . . .
2.2.2 Approximation par la methode des differences finies (DF) . . .
2.2.3 Etude mathematique de la methode des DF : stabilite au sens
de la norme l , consistance . . . . . . . . . . . . . . . . . . .
2.3 En deux dimension despace . . . . . . . . . . . . . . . . . . . . . . .
2.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11
13
15

3 Approximation de probl`
emes hyperboliques par la m
ethode des
diff
erences finies
3.1 Equation de transport . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Resolution de lequation de transport `a coefficients constants .
3.1.3 Approximation par DF . . . . . . . . . . . . . . . . . . . . . .
3.2 Dautres schemas explicites, schema saute-mouton . . . . . . . . . . .
3.2.1 Notion de CFL . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Equation des ondes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Formule de dAlembert . . . . . . . . . . . . . . . . . . . . . .
3.3.2 Cone de dependance et propagation `a vitesse finie . . . . . . .
3.3.3 Regularite du probl`eme de Cauchy f = 0 . . . . . . . . . . . .
3.3.4 Regularite de la solution avec un terme source . . . . . . . . .
3.3.5 Conservation de lenergie-Unicite . . . . . . . . . . . . . . . .
3.3.6 Approximation par DF . . . . . . . . . . . . . . . . . . . . . .
3.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19
19
19
20
20
22
22
23
23
26
26
27
27
28
29

7
7
7
7
10

`
TABLE DES MATIERES

4 Approximation dun probl`


eme parabolique par la m
ethode des diff
erences
finies
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 m
ethode
umes finis
5.1 Probl`eme mod`ele, maillage volumes finis . . . . . . . . . . .
5.2 Schema volumes finis et notion de Flux numerique . . . . . .
5.3 Analyse mathematique du schema . . . . . . . . . . . . . . .
5.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Annexe I : Memento Scilab . . . . . . . . . . . . . . . . . . .
5.6 Annexe II : une petite biblioth`eque en scilab . . . . . . . . .

des vol.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

37
37
37
38
41
42
43

Chapitre 1

Introduction
1.1

D
efinition dune
equation aux d
eriv
ees partielles (e.d.p)

Cest une equation dont linconnue est une fonction et portant sur les derivees
partielles de cette fonction :
linconnue : u : Rn R
lequation F (x, u(x), Du(x), ...Dp u(x)) = 0 x Rn (ou ) avec
2
p
F : Rn R Rn .. Rn R est donnee. p sappelle lordre de cette edp.

1.2

Exemples et classification si lordre est 2.

Les edp sont des transcriptions mathematiques de phenom`enes intervenant en


physique, chimie, finance, biologie....
On distingue trois grandes categories dedp :
1. les edp de type elliptique dont le prototype est lequation de Poisson
u(x) =

n
X
2u
i=1

x2i

(x) = f (x) x Rn .

2. les edp de type parabolique dont le prototype est lequation de la chaleur :


T
(x, t) T (x, t) = 0 x Rn , t > 0, > 0.
t
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
u
(x, t) + a (x, t) = 0 x Rn , t > 0, a R
t
x

Introduction

lequation des ondes :


2u
2u
(x,
t)

(x, t) = 0 x Rn , t > 0.
t2
x2
Si on consid`ere une edp dordre 2 `a coefficients constants du type
a

2u
2u
2u
u
u
(x,
t)
+
b
(x,
t)
+
c
(x, t) + d (x, t) + e (x, t) + f u = 0
2
2
x
xy
y
x
y

avec a, b, c, d, e, f des reels donnes alors si la forme quadratique


q(x, y) = ax2 + 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 m
ethode des
differences finies
2.1

Introduction du mod`
ele

Le probl`eme mod`ele est le suivant : soit un domaine borne de Rn 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
X
2u
i=1

x2i

(x) = f (x) x Rn .

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
2.2.1

En une dimension despace


Etude de lexistence et unicit
e de la solution

Le probl`eme devient
u00 (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
Z 1
u(x) =
G(x, y)f (y) dy x [0, 1] (2)
0

Approximation de probl`
emes elliptiques par la m
ethode des differences finies

o`
u G sappelle la fonction de Green du probl`eme et est definie par

y(1 x) si 0 y x,
G(x, y) =
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) :
Z 1
Z x
Z 1
du
d
d
=
(
G(x, y)f (y) dy) =
(
y(1 x)f (y) dy +
x(1 y)f (y) dy) =
dx
dx 0
dx 0
x
Z x
Z 1
x(1 x)f (x)
yf (y) dy x(1 x)f (x) +
(1 y)f (y) dy =
0

f (y) dy
x

yf (y) dy.
0

Notons que u C 1 ([0, 1]).

d2 u
= f (x).
dx2
Donc u C 2 ([0, 1]) et est solution de (1).
Remarque 2.2.1 On aurait pu etre tenter decrire
Z 1
du
d
=
G(x, y)f (y) dy
dx
0 dx
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 suffit de montrer que pour f = 0 la solution
de (1) est nulle : si u1 et u2 sont solutions alors

d2
(u1 u2 )(x) = 0, (u1 u2 )(0) = (u1 u2 )(1) = 0.
dx

Pour montrer ce resultat il suffit de montrer que toute solution de (1) secrit sous la
forme (2). En effet
Z
1

x [0, 1],

G(x, y)0 dy = 0.
0

Soit u solution de (1) en integrant deux fois on a


Z x Z s
u(x) =
(
f (y) dy) ds + ax + b
0

avec a et b `a Rdeterminer
avec les conditions aux limites u(0) = u(1) = 0. On obtient
1 Rs
b = 0 et a = 0 ( 0 f (y) dy) ds.

2.2 En une dimension despace

Do`
u x [0, 1],

u(x) = x

Z s
Z x Z s
(
f (y) dy) ds
(
f (y) dy) ds

(F ubini) = x

Z
(

f (y) ds) dy

0
x

(
0

f (y) ds) dy
y

(on inverse lordre dintegration)


Z 1
Z x
=x
(1 y)f (y) dy
(x y)f (y) dy)
Z

f (y)[x(1 y) (x y)X[0,x] (y)] dy

=
0

o`
u X[0,x] est la fonction indicatrice de [0, x]. Soit G : [0, 1]2 R definie 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.
Th
eor`
eme 2.2.1 Lapplication T : C 0 ([0, 1]) C 2 ([0, 1]), f 7 u solution de (1)
est continue.
Preuve : T est lineaire (exo) il suffit 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]) = supx[0,1] |u(x)|
et ||u||C 2 ([0,1]) = ||u||C 0 ([0,1]) + ||u0 ||C 0 ([0,1]) + ||u00 ||C 0 ([0,1]) . Soit f C 0 ([0, 1]) et u
solution de (1), dapr`es la proposition precedente
Z 1
G(x, y)f (y) dy,
u(x) =
0

f (y) dy

u (x) =
x

et

0
1

yf (y) dy
0

u00 (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 m
ethode des differences finies

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 ) [x0 , x0 + ] avec
x0 [0, 1] et  > 0, on consid`ere la solution u de (1) alors
x ]0, 1[, u(x) > 0.
Preuve : il suffit de remarquer que G(x, y) > 0 pour tout (x, y) ]0, 1[2 . Donc
Z 1
Z x0 +
u(x) =
G(x, y)f (y) dy =
G(x, y)f (y) dy > 0 x [0, 1].
0

x0

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 definir en quel sens
lequation est verifiee 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 m
ethode des diff
erences finies (DF)

Nous introduisons un maillage de [0, 1] : pour N fixe, on introduit un pas de


discretisation h = 1/(N + 1) et nous posons xj = 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(xi ) pour i = 1, N .
La premi`ere etape consiste `a trouver une formule qui permet dapprocher la
derivee u00 en chacun des points xj `a laide des valeurs (u(xj ))j=1,N . Pour cela, on
utilise des developpements de Taylor de u :
u(x + h) = u(x) + hu0 (x) +

h3
h4
h2 00
u (x) + u(3) (x) + u(4) ()
2
6
24

2.2 En une dimension despace

11

avec [x, x + h].


u(x h) = u(x) hu0 (x) +

h2 00
h3
h4
u (x) u(3) (x) + u(4) ()
2
6
24

avec [x h, x]. On en deduit


u00 (x) =

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


+ O(h3 ) (2).
2
h

Le principe de la methode consiste `a calculer un vecteur U = (U1 , ..., UN ) tels que


Ui soit une bonne approximation de u(xi ). En faisant x = xi dans (2) on obtient le
schema numerique

Uj+1 2Uj + Uj1


= Fj = f (xj ) j = 1, N (3)
h2

avec les conditions aux limites qui permettent de determiner U0 et UN +1


U0 = UN +1 = 0.
Ce schema secrit sous forme matricielle
AU = F
avec A matrice tridiagonale symetrique

1 1
A= 2
h

et inversible dordre N donnee par

1
.. ..

.
.

.
.. ..
.
. 1
1 2

On veut calculer un vecteur U = (U1 , ..., UN ) tel que les nombres |Uj U (xj )|
soient petits. On va meme prouver que ces quantites |Uj U (xj )| tendent uniformement vers 0 lorsque h tend vers 0.
2.2.3

Etude math
ematique de la m
ethode des DF : stabilit
e 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.
Definition 2.2.1 On dira que le schema numerique (3) est stable au sens de la
norme l si
||U ||l = supj=1,N |Uj | C
avec C constante independante de N .

12

Approximation de probl`
emes elliptiques par la m
ethode des differences finies

Definition 2.2.2 Le schema numerique (3) est consistant avec lequation (1) si pour
toute fonction u suffisamment reguli`ere, on a
| u00 (xj ) +

u(xj+1 ) 2u(xj ) + u(xj1 )


| Chp j = 1, N
2
h

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])
| u00 (xj ) +

u(xj+1 ) 2u(xj ) + u(xj1 )


h2
|

maxx[0,1] |u(4) (x)| j = 1, N


h2
12

preuve : Exercice 2.
Definition 2.2.3 On dira quune matrice A 0 si on a Aij 0 i, j.
Lemme 2.2.1 Soit U Rn tel V = AU 0. Alors U 0.
Preuve : Soit i [[1, N ]] lindice tel que Ui = maxj=1,N Uj . Supposons Ui > 0.
Examinons trois cas :
si i = 1. 2U1 U2 = h2 V1 0. Mais U1 U2 si bien que 2U1 U2 U1 ce qui
contredit U1 > 0.
si i = N , meme traitement
si 2 i N 1. Nous avons 2Ui Ui+1 Ui1 = h2 Vi 0. Dautre part
2Ui Ui+1 Ui1 = (Ui Ui+1 ) + (Ui Ui1 ) 0. Donc 2Ui Ui+1 Ui1 = 0,
do`
u Ui = Ui+1 = Ui1 . 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 A1 = (bij ) on a
A1 0 et
X
1
0<
bij , i = 1, N.
8
j=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 coefficients de linverse sont tous positifs ou nuls en utilisant la base canonique
de RN .
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(x1 ), ...v(xN )). Ainsi
X

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

2.3 En deux dimension despace

Preuve :
|Ui | = |

13

1
bij Fj | supj=1,N |Fj |.
8
j=1,N

Proposition 2.2.7 La methode est convergente et on a si u C 4 ([0, 1])


maxi=1,N |u(xi ) Ui |

h2
maxx[0,1] |u(4) (x)|.
96

Preuve : Soit Ej = Uj U (xj ) lerreur numerique ; On a dapr`es la proposition 2.2.1


|

2EJ Ej+1 Ej1


h2
|

maxx[0,1] |u(4) (x)| j = 1, N.


h2
12

En posant Vj =

2EJ Ej+1 Ej1


h2

on a
Ei =

bij Vj

j=1,N

si bien que
|Ei | (

bij )maxj=1,N |Vj | i = 1, N.

j=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 definit les pas despace dans
les 2 directions par hx = Na+1 et hy = Mb+1 . On pose
xi = ihx , 0 i N + 1, yj = jhy , 0 j M + 1.
Nous cherchons maintenant une approximation Ui,j du reel u(xi , yj ) pour chaque
couple (i, j). En utilisant un developpement de Taylor, on a

2u(xi , yj ) u(xi+1 , yj ) u(xi1 , yj )


2u
(xi , yj ) =
+ O(h2x ),
2
x
h2x

14

Approximation de probl`
emes elliptiques par la m
ethode des differences finies

2u
2u(xi , yj ) u(xi , yj+1 ) u(xi , yj1 )
(x
,
y
)
=
+ O(h2y ).
i
j
y 2
h2x
Ainsi on a le schema numerique suivant :

2Ui,j Ui+1,j Ui1,j 2Ui,j Ui,j+1 Ui,j1


+
= Fi,j = f (xi , yj ) 1 i N, 1 j M
h2x
h2y
avec les conditions aux limites qui se traitent de la facon suivante
U0,j = UN +1,j = 0, 0 j M + 1,
Ui,0 = Ui,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

B C
.
.

C .. ..

A=

... ...

C
C B
avec
2

h12
h2x +h2y
x

...
...
h12

,
B=

..
..
1
.
. h2

x
2
h12 h2 +h
2
x
x
y

1
h2 0
y

.. ..
0

.
.

C=

... ...

0
0 h12
y

et U et F les vecteurs definis par U = (U1 , U2 , ..., UM ), F = (F1 , F2 , ..., FM ) o`


u
Uj = (U1,j , ...UN,j ), Fj = (F1,j , ...FN,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])
maxi=1,N, j=1,M |u(xi , yj ) Ui,j | C(h2x + h2y ).

2.4 Exercices

2.4

15

Exercices

Exercice 2.4.1 Montrer que le schema en DF


uj+2 + 16uj+1 30uj + 16uj1 uj2
12h2
est precis dordre 4 pour lapproximation de u00 .
Exercice 2.4.2 Soit la matrice dite du

1 1
A= 2
h

Laplacien carree dordre n 1 :

1
.. ..

.
.

.
.. ..
.
. 1
1 2

Nous allons chercher les valeurs propres et accessoirement les vecteurs propres de
A.
1. Soit p = (p1 , ..., pn1 ) un vecteur propre associe `a la valeur propre , donner
les relations verfiees par pk pour 1 k n 1. en posant p0 = 0 et pn = 0.
2. On cherche des solutions particuli`eres sous la forme pk = sin(k), k = 0, .., n.
En deduire en fonction de .
3. Avec la condition de bord pn = 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
cond2 (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
cond2 (A)

4
.
2 h2

En deduire que limn+ cond2 (An ) = +. On dira quune matrice est bien
conditionnee si pour une norme donnee cond(A) = |A||A1 | 1 et mal conditionnee si cond(A) >> 1. Conclure pour la matrice du Laplacien. Le conditionnement permet de quantifier 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
19
1 4 5 1

x = 11 .
8 4 1 1
14
1 4 3 6
14

16

Approximation de probl`
emes elliptiques par la m
ethode des differences finies

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 diffusion :
u00 (x) = f (x), x ]0, 1[, u(0) = u0 (1) = 0.
On va discretiser u00 par la formule habituelle pour que le schema soit dordre 2.
Les conditions aux limites : pour u(0) = 0 on va ecrire u0 = 0 pour u0 (1) = 1 on va
discretiser de 2 mani`eres
premi`ere methode : on ecrit uN +2 = uN +1 dans la formule
2ui ui+1 ui1
= fi = f (xi ), 1 i N + 1.
h2
deuxi`eme methode : on ecrit
h2 00
h2
u (1) = uN +1 f (1).
2
2
Programmer les deux schemas avec f (x) = x. Calculer la solution exacte et tracer
sur une meme figure 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.
uN +2 = uN +1 +

Exercice 2.4.4
u00 (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 differences finies pour resoudre (1) en prenant pour u00
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 Rn , montrer que pour tout v = (v1 , ..., vn )
Rn , on a
n1
n1
X
X
2 2
2
(vi vi1 )2 )
(Av, v) =
ci vi + n (v1 +
1

et en deduire que A est inversible.

i=2

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 affiche la
solution exacte et numerique sur une meme figure.

18

Approximation de probl`
emes elliptiques par la m
ethode des differences finies

Chapitre 3

Approximation de probl`
emes
hyperboliques par la m
ethode des
diff
erences finies
3.1
3.1.1

Equation de transport
Introduction

On consid`ere le probl`eme mod`ele


u
u
(x, t) + a (x, t) = 0 x R, t 0 (1)
t
x
avec la condition initiale u(x, 0) = u0 (x) x R.
Exercice 3 :
1. Montrer que u(x, t) = u0 (x at) est la solution pour t 0.
2. En deduire que
infyR u0 (y) u(x, t) supyR u0 (y) x R, t 0.
3. Nous definissons la variation totale dune fonction par
Z
V T (u) =
|u0 (x)|dx.
R

Montrer que la solution u de (1) est `a variation constante.


Correction :
(x, t) = au00 (x at), u
(x, t) = u00 (x at) et u(x, 0) = u0 (x) donc u solution
1. u
t
x
de (1) ;
2. u(x, t) = u0 (x at) et x at R.

20 Approximation de probl`
emes hyperboliques par la m
ethode des diff
erences finies

3.

u
V T (u) =
| (x, t)| dx =
R x

Z
R

|u00 (x

Z
at)| dx =

|u00 (x)| dx = V T (u0 ).

Nous allons chercher des schemas numeriques qui preservent ces deux proprietes.
3.1.2

R
esolution de l
equation de transport `
a co
efficients constants

3.1.3

Approximation par DF

Le principe de la methode consiste `a calculer une approximation uni 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
(x, t) = u(x, t + t) u(x, t) + O(t2 ),
t

u
(x, t) = u(x + x, t) u(x x, t) + O(x3 ).
x
On en deduit un premier schema numerique :
2x

un+1
= uni a
i

t n
(u uni1 ), i Z. (1)
2x i+1

Il sagit dun schema explicite `a savoir si on connait la suite (un ) on en deduit la


suite (un+1 ) de facon explicite. On dit aussi que le schema est centre en espace car
la formule qui approche la derivee partielle u
(x, t) fait intervenir les points j 1 et
x
j + 1.
Etude de la stabilit
e au sens de la norme l2

Pour etudier la stabilite on introduit la fonction en escalier v n definie par


1
1
v n (x) = vin pour (i )x < x < (i + )x.
2
2
Le produit scalaire sur L2 qui est

(u, v) =

u(x)v(x) dx
R

P
coincide avec le produit scalaire de l2 = {(vj )jZ , j |uj |2 < +} qui est
X
(u, v) = h
u j vj .
j

Par consequent l2 est isomorphe au sous espace de L2 des fonctions constantes par
morceaux : la fonction v n peut etre assimilee `a la suite (vin )iZ .

3.1 Equation de transport

21

Definition 3.1.1 On dira que le schema numerique (1) est stable au sens de la
norme l2 si
||v n ||L2 (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 l2 .
Preuve : pour une fonction de u L2 on peut considerer sa transformee de Fourier
Z
F(u)() =
u(x)exp(ix)dx.
R

On rappelle que pour toute fonction u L2 ,


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 coefficient damplification et vaut
A() = 1 ia

t
sin(x).
x

Alors F(v n )() = (A())n F(v 0 )(). Si sin(x) 6= 0 alors |A()| > 1 donc le schema
est numeriquement instable car ||v n ||L2 = ||F(v n )||L2 quand n tend vers
linfini.
Etude dun sch
ema implicite

A la place du schema (1) on consid`ere le schema implicite centre


un+1
= uni a
i

t n+1
(u
un+1
i1 ), i Z. (2)
2x i+1

On parle de schema implicite car il faut resoudre un syst`eme lineaire pour obtenir
la suite (un+1 ) `a partir de (un ).
Proposition 3.1.2 Le schema numerique (2) est stable au sens de la norme l2 .
Proposition 3.1.3 Le schema numerique (2) est consistant avec lequation de transport (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 m
ethode des diff
erences finies

3.2
3.2.1

Dautres sch
emas explicites, sch
ema saute-mouton
Notion de CFL

Introduisons maintenant dautres schemas :


des schemas explicites : si a < 0 on decentre en aval
un+1
= uni a
i

t n
(u uni ), i Z. (3)
x i+1

si a > 0 on decentre en amont


un+1
= uni a
i

t n
(u uni1 ), i Z. (4)
x i

le schema saute-mouton :
un+1
= un1
a
i
i

t n
(u uni1 ), i Z. (5)
x i+1

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
1.
x

Ils sont consistants avec lequation de transport dordre 1 en temps et espace.


Preuve : pour le schema (3) : on a
un+1
= uni (1 + a
i

t
t n
)a
u
x
x i+1

|un+1
| |uni |(1 + a
i

t
t n
|a
|u |.
x
x i+1

do`
u
|un+1
| ||un ||l .
i
Ainsi
||un ||l ||u0 ||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 l2 sous
la condition CFL (Courant Friedrichs-Lax)
|a|

t
1.
x

3.3 Equation des ondes

23

Preuve : pour la stabilite :


En variables de Fourier le schema secrit
 



t
F(v n+1 )()
F(v n )()
2ia x
sin(x) 1
=
.
F(v n )()
F(v n1 )()
1
0
Sous la condition CFL les valeurs propres de la matrice est
r
t
t2
1 = ia
sin(x) + 1 a2
sin2 (x)
x
x2
r
t
t2
2 = ia
sin(x) 1 a2
sin2 (x)
x
x2
Comme |1 | = |2 | = 1 donc la puissance nieme de la matrice est donc bornee. (An est
bornee si et seulement si son rayon spectral (A) 1, (A) = max{|k |, k valeur propre de A}).

3.3
3.3.1

Equation des ondes


Formule de dAlembert

On sinteresse ici `a lapproximation de lequation des ondes :

2
2
c12 t2u xu2 = f (x, t), x R, t > 0,
u(x, t = 0) = u0 (x), x R,

u
(x, t = 0) = u1 (x), x R.
x
Dans tout ce qui suit, on suppose que les donnees initiales sont `a support compact
u0 (x) = u1 (x) = 0 |x| L.
Th
eor`
eme 3.3.1 La solution du probl`eme est donnee par la formule de dAlembert
Z
Z Z
u0 (x + ct) + u0 (x ct) 1 x+ct
1 t
u(x, t) =
+
u1 (s) ds+
f (y, s)dy ds.
2
2c xct
2c 0 |yx|c(ts)
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 (x ct) 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 m
ethode des diff
erences finies

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
t2 c2 x2 = (t cx )(t + cx ) 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 + cx et t cx
cest `a dire
= x + ct
= x ct
et
U (, ) = u(x, t).
On a donc

+
,
2

,
t=
2c

x=

et

1
(t + cx )u,
2c
1
U = x u x + t u t = (t cx )u.
2c
Lequation des ondes se reecrit
U = x u x + t u t =

U (, ) = 0. ()

Les conditions initiales en t = 0 deviennent en =


U (, ) = u0 (),
u1 ()
.
c
En integrant () respectivement par rapport `a puis on obtient :
U (, ) U (, ) =

(i) U (, ) = G(),
(ii) U (, ) = F ()
et la deuxi`eme condition initiale devient
G() F () =

u1 ()
.
c

3.3 Equation des ondes

25

Integrons (i) par rapport `a entre 0 = et :


Z
U (, ) U (, ) =
G(s) ds

ce qui se reecrit avec la CL


Z

U (, ) u0 () =

G(s) ds.

De meme, on int`egre (ii) par rapport `a entre 0 = et


Z
U (, ) U (, ) =
F (s) ds

donc

U (, ) u0 () =

F (s) ds

et en sommant on a
Z
2U (, ) = u0 () + u0 () +

u1 (s)
ds
c

ce qui donne la formule de dAlembert.


Exercice 3.3.1 On rappelle que la transformee de Fourier en espace de f est
Z
1
F(f )(k) = f(k) =
f (x)eikx dx
2
et la transformee de Fourier inverse
1
f (x) =
2

Z
f(k)eikx dk.

1. Montrer que la transformee de la solution de lequation des ondes a lexpression


suivante :
sin(ckt)
.
u(k, t) = u0 (k)cos(ckt) + u1 (k)
ck
2. Montrer que
F(x0 f )(k) = eikx0 f(k)
avec x0 f (x) = f (x x0 )
F(f g)(k) =

2 f(k)
g (k).

26 Approximation de probl`
emes hyperboliques par la m
ethode des diff
erences finies

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

1 )
2

et

1
1

H(k)
= vp( ) +
k
i 2

o`
u H est la fonction dHeaviside et vp( k1 ) la valeur principale de
Z
1
(k)
< vp( ), >= lim0
dk.
k
k
|x|>

1
k

definie par :

En deduire que
r
F(H(x x0 ) H(x + x0 ))(k) =

2 sin(kx0 )
.

4. Conclure
3.3.2

C
one de d
ependance et propagation `
a vitesse finie

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 finie. En effet, si on se donne f `a support dans
K = [a, b] en x et les conditions initiales u0 et u1 `a support dans K, la solution est
a support dans [a ct, b + ct].
3.3.3

R
egularit
e du probl`
eme de Cauchy f = 0

Dapr`es la formule de dAlembert, on voit que si u0 C k+1 (R) et u1 C k (R)


alors u(., t) C k (R). Autrement dit, dans lequation des ondes, t u et cx u sont de
meme nature, et si on suppose que (t u(0), cx u(0)) C k (R) C k (R) alors on a
(t u(., t), cx 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 hyperboliques 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

3.3.4

27

R
egularit
e 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 verifie
Z t
sin(ck(t s))
u(k, t) =
f (k, s) ds
ck
0
ce qui implique

Z t

u
sin(ck(t s))f(k, s) ds
c (k, t) = i
x
0
Z t
u
(k, t) =
cos(ck(t s))f(k, s) ds
t
0

Par Cauchy-Schwarz on obtient alors :


Z t

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

|f(k, s)|2 ds.


0

Finalement Plancherel nous permet de conclure :


Z tZ
u 2
|f (k, s)|2 dx ds,
||c ||L2 (t) t
x
0
R
u
|| ||2L2 (t) t
t

Z tZ
0

|f (k, s)|2 dx ds

ce qui montre que


f L2loc (R+ , L2 (R)) = u L (R+ , H 1 (R)) W 1, (R+ , L2 (R)).
3.3.5

Conservation de l
energie-Unicit
e

On definit lenergie par


1
E(t) =
2

Z
(|
R

u 2
u
| + | |2 ) dx.
t
x

28 Approximation de probl`
emes hyperboliques par la m
ethode des diff
erences finies

Exercice 3.3.2 1- En absence de terme source (f = 0), montrer quil y a conservation de lenergie, i.e.
1
1 u0 2
|| , t > 0.
E(t) = E(0) = ||u1 ||2 + ||
2
2 x
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 L2 (R). Montrer que, `a tout instant,
lenergie reste bornee :
Z t
1/2
1/2
E(t) E(0) + C
||f ||(s) ds.
0

3.3.6

Approximation par DF

Exercice 3.3.3 On sinteresse `a lapproximation de lequation des ondes 1D :


2u 2u
2 = 0, x R, t > 0, (1).
t2
x
On consid`ere pour (1) le schema numerique :
un+1
2unh + un1
h
h
+ Ah unh = 0
t2
avec
u(x + h) 2u(x) + u(x h)
u(x + 2h) 2u(x) + u(x 2h)
(1)
, R.
2
h
4h2
1. Montrer que pour toute fonction u suffisamment reguli`ere, on a

Ah uh (x) =

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


d2 u
h2 d4 u
=
(x)
+
(x) + O(h4 ).
h2
dx2
12 dx4
2. En deduire tel que pour toute fonction u suffisamment reguli`ere
Ah uh (x)

d2 u
= 2 (x) + O(h4 ).
dx

On notera 0 cette valeur de .


3. Determiner le symbole de Ah uh (x), cest `a dire la fonction Ah telle que :
F(Ah u)() = Ah Fu().
(on exprimera Ah uniquement `a laide de sin2 (h/2) et on rappelle que
F(qh uh )() = eiqh uh (),
avec (qh uh )(x) = uh (x + qh)).

3.4 Exercices

29

4. Par la methode de Fourier, montrer que la condition de stabilite L2 pour le


schema numerique pour = 0 est

.
h
2
2 0
(on montrera que un+1
unh () + uhn1 () = 0 et Ah 0 ()
h () + (t Ah () 2)
40 t2
.)
h2

3.4

Exercices

Exercice 3.4.1 Soit le schema de Lax-Friedrichs pour lequation de transport


vin+1 =

n
n
vi1
+ vi+1
t n
n
a
(v vi1
).
2
2x i+1

1. Montrer que ce schema est consistant et donne lordre.


2. Sous la CFL

t
1
x
montrer que le schema est stable au sens de la norme L2 .
|a|

3. Montrer que le schema verifie le principe de maximum discret


infjZ vj0 vin maxjZ vj0 .
.
4. Montrer alors que la variation totale de la solution numerique
X
n
V Tn =
|vjn vj1
|
jZ

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
=0
pour tout (x, t) [a, b]]0, T ]
t + V u
x
(3.1)
u(t = 0, x) = u0 (x) pour tout x R

u(t, a) = u(t, b)
pour tout t R+
On prendra a = 10, b = 10.
a. Quelle est la solution exacte de cette equation ?
b. Implementer le schema explicite centre de lequation dadvection. Verifier quil
est inconditionnellement instable.

30 Approximation de probl`
emes hyperboliques par la m
ethode des diff
erences finies

c. Rendre le schema precedent L2 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-Wendroff. Comparer
le comportement de ces deux derniers schemas lorsque la condition initiale est un
creneau.
Conseils de programmation : Scilab est optimise pour effectuer rapidement des
operations sur les matrices et vecteurs. Il est donc fortement conseille deffectuer
vos operations directement sur les vecteurs et non sur les elements de ces vecteurs.
Ainsi, il est beaucoup plus rapide (et clair) deffectuer sous Scilab
u=v+w;
pour additionner les deux vecteurs v et w, que deffectuer une boucle explicite
for i=1:size(v,c)
u(i)=v(i)+w(i);
end
De meme, il vaut mieux effectuer 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 diffusion :
u
2u
u
(x, t) + a (x, t) 2 (x, t) = 0 x R, t 0, u(x, 0) = u0 (x).
t
x
x
On prend a = 1 et CF L = 0.6 Le temps physique de la simulation est T = 0.2s On
n
n
ajoute les conditions aux limites v0n = v1n , vN
+1 = vN 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

0 si x < 0.375

(x0.375)2 (x0.625)2
x0.375
v0 (x) =
16sin(4 0.25 )
si 0.375 x 0.625
0.254

0 si x > 0.625

v0 (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-Wendroff
vin+1 = vin V

t n
t2 n
n
n
(vi+1 vi1
)+V2
(v 2vin + vi1
)
2x
2x2 i+1

avec les donnees :


dx = 0.1 ; // dx = pas despace
V = 70 ; // vitesse de convection
cfl = 0.9 ; // cfl
dt = dx*cfl/V ; // dt = pas de temps
Tfinal=0.5 ; // Temps final souhaite
lg=10 ; // Demi-longeur du domaine
nx = 2*lg/dx+1 ; // nx = nombre de noeuds
nt = int(Tfinal/dt) ; // nt = nombre de pas de temps effectues.
Tfinal=nt*dt ; // Temps final.
//
// initialisation
//
x=linspace(-lg,lg,nx) ;
f0=creneau ;
//f0=bosse ;
Partie th
eorique:
1. Montrer que le schema est consistant `a lordre 2.
2. Calculer le coefficient damplification 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 m
ethode des diff
erences finies

A( 2 ) et A( 3
) et en deduire que le schema est stable pour la norme L2 ssi
2
a

t
1.
x

Chapitre 4

Approximation dun probl`


eme
parabolique par la m
ethode des
diff
erences finies
4.1

Probl`
eme mod`
ele

On consid`ere le probl`eme mod`ele


u
2u
(x, t) 2 (x, t) = f (x, t) x =]0, 1[, t 0 (1)
t
x
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
4.2.1

Sch
ema de Crank et Nicholson
Etablissement du sch
ema

Soit un entier N definissons le pas despace x = N 1+1 . On consid`ere le schema


le plus utilise, le schema de Crank et Nicholson :
t
(un 2unj + unj1 )
un+1
= unj +
j
2x2 j+1
t
n
+
1 j N, n 0
(un+1 2un+1
+ un+1
j
j1 ) + tfj
2x2 j+1
un0 = unN +1 = 0, n 0
et
u0j = gj = g(xj ), 0 j N + 1.

34

Approximation dun probl`


eme parabolique par la m
ethode des diff
erences finies

4.2.2

Etude th
eorique du sch
ema de Crank et Nicholson : stabilit
e, consistance

Proposition 4.2.1 Le schema numerique de Crank et Nicholson est stable au sens


de la norme l2 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)

[u((j+1)x, nt)2u(jx, nt)u((j1)x, nt)


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

u
1
u
t 2 u
(jx, (n + )t) =
(jx, nt) +
(jx, nt) + O(t2 )
t
2
t
2 t2

do`
u
u(jx, (n + 1)t) u(jx, nt)
u
1
=
(jx, (n + )t) + O(t2 ).
t
t
2
Avec lestimation
1 2u
2u
2u
1
[ 2 (jx, nt) + 2 (jx, (n + 1)t)] =
(jx, (n + )t) + O(t2 )
2
2 x
x
x
2
on a le resultat
u(jx, (n + 1)t) u(jx, nt)

[u((j+1)x, nt)2u(jx, nt)u((j1)x, nt)


t
2x2
+u((j + 1)x, (n + 1)t) 2u(jx, (n + 1)t) u((j 1)x, (n + 1)t)] =
u
1
2u
1
(jx, (n + )t) 2 (jx, (n + )t + O(x2 + t2 ).
t
2
x
2
Etude de la stabilite :
Le schema de Crank et Nicholson peut aussi secrire sous la forme
U n+1 = f F n + U n tA(

U n+1 + U n
)
2

4.2 Sch
ema de Crank et Nicholson

avec

35

1
.
.
1
1 . . . .
A= 2
.. ..
h
. 1
.
1 2
2

Ainsi si on prend F = 0
U n+1 = (I +

t n
n 0
A) (I
A) U .
2
2

Or les valeurs propres de


(I +
sont les reels

t 1

A) (I
A)
2
2

2 tk
, 1kN
2 + tk

avec

k
1
[1 cos(
)], 1 k N.
x
N +1
Les k sont les valeurs propres de A.
k = 2

Exercice 4.2.1 On consid`ere le probl`eme


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

= f (jx, nt), j Z, n N.
t
x
x2

1. Calculer en variable de Fourier le schema numerique.


2. Calculer le coefficient damplification et etudier la stabilite L2 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
2
xu2 = 0
pour tout (x, t) R]0, T ]
t
u(t = 0, x) = u0 (x) pour tout x R.

(4.1)

36

Approximation dun probl`


eme parabolique par la m
ethode des diff
erences finies

On rappelle que la solution exacte de cette equation est connue et que




Z
(x y)2
1
u0 (y) exp
dy.
u(x, t) =
4t
4t

(4.2)

a. Ecrire
un script scilab qui calcul numeriquement la solution de lequation (4.1)
`a laide dun schema explicite centre dordre 2. Afin de tester la methode, on pourra
choisir
u0 (x) = max(0, 1 x2 ),
= 1 et T = 1. Bien entendu, il est impossible dutiliser la methode des differences
finies 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. Verifier numeriquement que la condition CFL
2t (x)2
est necessaire et suffisante pour assurer la stabilite du schema.
c. Calculer numeriquement la solution exacte donnee par (4.2) au temps final
t = T . Verifier visuellement la convergence de la solution calculee par la methode
des differences finies 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 fine. Afin 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. Verifier
en particulier la stabilite du schema meme lorsque la condition CFL du schema explicite nest pas verifiee.
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 matrice, 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 m
ethode des
volumes finis
5.1

Probl`
eme mod`
ele, maillage volumes finis

On consid`ere le probl`eme suivant


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

(2).

Definition 5.1.1 On appelle maillage volume finis de lintervalle [0, 1] un ensemble


de N mailles (Ki )i=1,N telles que Ki =]xi1/2 , xi+1/2 [, avec x1/2 = 0 < x3/2 < ... <
xi1/2 < xi+1/2 < ... < xN +1/2 = 1, et on note hi = xi+1/2 xi1/2 . On se donne
egalement N points (xi )i=1,N situes dans les mailles Ki . On a donc
0 = x1/2 < x1 < x3/2 < ... < xi1/2 < xi < xi+1/2 < ... < xN +1/2 = 1.
On notera hi+1/2 = xi+1 xi , et h = maxi=1,N hi+1/2 et pour des questions de
notations on posera egalement x0 = 0 et xN +1 = 1.

5.2

Sch
ema volumes finis et notion de Flux num
erique

On int`egre lequation (1) sur Ki , et on obtient :


Z
0
0
u (xi+1/2 ) + u (xi1/2 ) =
f (x) d x.
Ki

On pose
1
fi =
hi

Z
f (x) d x.
Ki

38

Approximation dun probl`


eme elliptique par la m
ethode des volumes finis

On introduit les variables discr`etes (ui )i=1,N , une par maille qui devraient etre de
bonne approximations de u(xi ).
On a le schema numerique :
Fi+1/2 Fi1/2 = hi fi , i = 1, N,
o`
u Fi+1/2 appele le flux numerique en xi+1/2 devrait etre une bonne approximation
de u0 (xi+1/2 ).
Le principe de la methode des volumes finis est darriver `a ecrire les flux numeriques
en fonctions des variables discr`etes (ui ).
On pose alors
Fi+1/2 =
et
F1/2 =

ui+1 ui
, i = 1, N
hi+1/2

u1
uN
FN +1/2 =
h1/2
hN +1/2

pour tenir compte des conditions aux limites de Dirichlet homog`enes. On peut aussi
ecrire :
ui+1 ui
Fi+1/2 =
, i = 0, N + 1
hi+1/2
en posant u0 = uN +1 = 0.
On peut ecrire le schema sous forme matricielle
AU = b
avec U = (u1 , ...uN ), bi = fi , = 1, N et

A=

5.3

1
( 1
h1 h1/2

1
)
h3/2

1
h11 h3/2
1 1
h2 h3/2

...
1
1
1
(
h5/2
)
h2 h3/2
..
.
1
h1i hi1/2
..
.
...

1
h12 h5/2
..
.
1
1
1
(

)
hi hi1/2
hi+1/2
..
.
1
1
hN hN 1/2

1
h1i hi+1/2
1
( 1
hN hN 1/2

1
)
hN +1/2

Analyse math
ematique du sch
ema

Proposition 5.3.1 Si f C([0, 1]) et la solution exacte u C 2 ([0, 1]) alors le


schema volume finis (3) a une unqiue solution (ui ).

5.3 Analyse math


ematique du sch
ema

39

Preuve : Avec fi = 0, le schema peut secrire

ui+1 ui ui ui1
+
i = 1, N
hi+1/2
hi1/2

avec u0 = uN +1 = 0. En multipliant par ui et en sommant de i = 1, N on obtient


N
X
i=1

ui+1 ui X ui ui1

+
= 0.
hi+1/2
hi1/2
i=1
N

En effectuant un changement dindice sur la deuxi`eme somme, on obtient :


N
X
i=1

ui+1 ui X
ui+1 ui

N 1
+
= 0.
hi+1/2
h
i+1/2
i=0
,

En regroupant les termes , on a donc


N
X
(ui+1 ui )2
u2
u2N
(
+ 1 +
= 0.
hi+1/2
h1/2 hN +1/2
i=1

Ceci demontre lunicite de (ui ) 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
ui
?
(1). On note F i+1/2 = u0 (xi+1/2 ) le flux exact en xi+1/2 et Fi+1/2
= uhi+1
le
i+1/2
0
quotient diffrentiel qui approche la derivee premi`ere u (xi+1/2 ). On dit que le flux
est consistant sil existe une constante C R+ ne dependant que de u telle que
lerreur de consistance sur le flux definie par
?
Ri+1/2 = F i+1/2 Fi+1/2
,

verifie
|Ri+1/2 | Ch.
Preuve : utiliser des developpements de Taylor.
Definition 5.3.1 (Conservativite des flux) On dit que le schema est conservatif
si lorsque lon consid`ere une interface xi+1/2 entre les 2 mailles Ki et ki+1 le flux
entrant est egal au flux sortant.
Th
eor`
eme 5.3.1 Soit u C 2 ([0, 1]) solution de lequation (1). On pose ei = u(xi )
ui , i = 1, N et e0 = eN +1 = 0. Il existe C 0 ne dependant que de u telle que
1.
N
X
(ui+1 ui )2
Ch2
h
i=1

40

Approximation dun probl`


eme elliptique par la m
ethode des volumes finis

2.

N
X

e2i Ch

i=1

3.
maxi=1,N |ei | Ch.
Preuve : Ecrivons le schema volumes finis :
Fi+1/2 Fi1/2 = hi fi
et lequation exacte integree sur la maille Ki
F i+1/2 F i1/2 = hi fi .
En les soustrayant on a :
F i+1/2 Fi+1/2 F i1/2 + Fi1/2 = 0.
Do`
u
?
?
Fi+1/2
Fi+1/2 Fi1/2
+ Fi1/2 = Ri+1/2 + Ri1/2 .

ou encore

1
hi+1/2

(ei+1 ei ) +

1
hi1/2

(ei ei1 ) = Ri+1/2 + Ri1/2 .

On multiplie par ei et on somme de 1 `a N :


N
X

i=1

1
hi+1/2

(ei+1 ei )ei +

N
X

i=1

1
hi1/2

(ei ei1 )ei =

N
X

Ri+1/2 ei +

N
X

i=1

i=1

N
X

N
1
X

Ri1/2 ei ,

soit
N
X
i=1

1
hi+1/2

(ei+1 ei )ei +

N
1
X
i=0

1
hi+1/2

(ei+1 ei )ei+1 =

Ri+1/2 ei +

i=1

En reordonnant les termes, on obtient


N
X
(ei+1 ei )2
i=0

hi+1/2

N
X

Ri+1/2 (ei+1 ei ).

i=0

Or Ri+1/2 Ch donc :
N
X
(ei+1 ei )2
i=0

hi+1/2

Ch

N
X
(ei+1 ei ) q
p
hi+1/2
h
i+1/2
i=0

i=0

Ri+1/2 ei+1 .

5.4 Exercices

41

et par linegalite de Cauchy-Schwarz


N
X
(ei+1 ei )2
i=0

Or

PN
i=0

hi+1/2

Ch(

N
X
(ei+1 ei )2
i=0

hi+1/2

1/2

N
X

hi+1/2 )1/2 .

i=0

hi+1/2 )1/2 = 1, on en deduit que :


N
X
(ei+1 ei )2
i=0

et donc

hi+1/2

N
X
(ei+1 ei )2 1/2
Ch(
) ,
hi+1/2
i=0

N
X
(ei+1 ei )2 1/2
(
) Ch.
hi+1/2
i=0

Pour 3) :
|ei | = |

i
X

ej ej1 |

j=1

Donc par CS

N
X

|ej ej1 |.

j=0

N
N
X
(ej ej1 )2 1/2 X
|ei | (
) (
hj+1/2 )1/2
hj+1/2
j=0
j=0

do`
u 3), et 2) sen deduit immediatement.

5.4

Exercices

Exercice 5.4.1 On consid`ere le probl`eme


u00 (x) = f (x), ]0, 1[ (1)
u(0 = a, u(1) = b,

(2).

Ecrire les schemas differences finis et volumes finis 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 Differences Finies du probleme aux limites
suivant :
u00 (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 N j+1 , j = 1...N . On rappelle que la discretisation par
differences finies de ce probleme consiste `a chercher U comme solution du syst`eme
u la matrice A MN (R) est definie par A =
lineaire AU = f ( N j+1 ), j = 1...N o`
2
(N + 1) B + Id, Id designe la matrice identite et

42

Approximation dun probl`


eme elliptique par la m
ethode des volumes finis

0
... 0

..
1 2 1 .

..
..
..
B=
. 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
u00 (x) = u(x), x ]0, 1[, u(0) = u(1) = 0.(2)
admet la famille (k , uk ), k N , k = (k)2 et uk (x) = sin(kx) comme
solution. Montrer que les vecteurs Uk = uk ( N j+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 finis) Montrer que la discretisation
de loperateur u00 par le schema volumes finis nest pas toujours consistante au sens
des differences finies, i.e. que lerreur de consistance definie par
Ri =

1
1
1
[
(u(xi+1 ) u(xi )) +
(u(xi ) u(xi1 ))] u00 (xi )
hi hi+1/2
hi1/2

ne tend pas toujours vers 0 lorsque h tend vers 0.

5.5

Annexe I : M
emento Scilab

Scilab peut-etre utilise directement en tapant les commandes en ligne, soit par lintermediaire de fichier 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 commande. Par exemple
help help;
La commande apropos permet de rechercher les occurrences dun mot dans laide
de Scilab. Enfin, 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 definies


par le fichier fonctions.sci
halt() - Effectue 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 definies
exit - Pour quitter Scilab
Op
erations 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 (v5 , . . . , v15 ) dans le vecteur
(u1 , . . . , u15 ).
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 A1 b, o`
u spcho=chfact(A)
splu = lufact(A) - Factorisation LU de la matrice creuse A
lusolve(splu,b) - Calcul A1 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 affiche une ou plusieurs courbes. exemple : plot2d(x,y,1,"000")
xtitle - Definit 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 m
ethode des volumes finis

[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

[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)0 ones(y) + ones(x)0 ((y 0.5) 2)) < 1) 5;
endfunction ;

45

46

Approximation dun probl`


eme elliptique par la m
ethode des volumes finis

Bibliographie
[1] P. G. Ciarlet, Introduction `a lanalyse numerique et matricielle, Masson,
1988.
[2] P. G. Ciarlet, The finite 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 scientifique, Masson,
1996.
[8] S. Nicaise Analyse numerique et equations aux derivees partielles, Dunod,
2000.
[9] L. Sainsaulieu, Calcul Scientifique,Masson, 1996.
[10] J. Rappaz, M. Picasso, Introduction `a lanalyse numerique, Presses polytechniques et unversitaires romandes, 1998.
[11] C. Zuily, Probl`emes de distributions, Hermann, 1978.