Ecole Polytechnique, Promotion 2007
Analyse numérique et optimisation (MAP 431)
Contrôle Hors Classement du mardi 7 avril 2009
Corrigé proposé par G. Allaire
1 Différences finies
1. On vérifie sans peine que la fonction définie, pour (x, t) ∈ (0, 1) × R+
∗ , par
u(t, x) = u0 (x − at) + f (t − x/a) ,
est bien solution de l’équation d’advection, de classe C 1 . Cette solution est bien
unique car la différence entre deux solutions, notée w(t, x), vérifie
∂w ∂w
+a =0 pour (x, t) ∈ (0, 1) × R+
∗,
∂t ∂x
w(t, 0) = 0 pour t ∈ R+
∗,
w(0, x) = 0 pour x ∈ (0, 1).
En multipliant alors cette équation par w et en intégrant par parties en espace,
utilisant la condition aux limites w(t, 0) = 0, on obtient
1 d
Z 1 a
w2 (t, x) dx + w2 (t, 1) = 0,
2 dt 0 2
d’où l’on déduit que la fonction
Z 1
t 7→ w2 (t, x) dx
0
est décroissante. Comme elle est positive et nulle à l’instant initial, elle est toujours
nulle, donc w(t, x) ≡ 0, ce qui prouve l’unicité de la solution.
2. On utilise la relation
n+1/2 n+1/2
un+1
j = −unj + uj+1/2 + uj−1/2 (1)
a∆t
pour obtenir, en notant c = ∆x ,
n+1/2 n+1/2
(1 + c)uj+1/2 + (1 − c)uj−1/2 = 2unj . (2)
Ce schéma peut paraitre implicite pour calculer les inconnues au temps tn+1/2 en
fonction de celles au temps tn (on trouve ensuite les les inconnues au temps tn+1
grâce à la relation (1)). Il n’en est rien car la matrice du système linéaire associé à
(2) est triangulaire et on peut donc résoudre explicitement (2) en progressant dans
le sens des (j + 1/2) croissants. On part de la condition aux limites
n+1/2
u1/2 = f (tn+1/2 )
1
n+1/2
et on calcule de proche en proche la nouvelle valeur uj+1/2 en fonction de la précédente
n+1/2
uj−1/2 .
3. On calcule les erreurs de troncature des deux relations du schéma
u(tn+1 , xj ) − u(tn , xj ) u(tn+1/2 , xj+1/2 ) − u(tn+1/2 , xj−1/2 )
E1 = +a
∆t ∆x
et
E2 = u(tn+1 , xj ) + u(tn , xj ) − u(tn+1/2 , xj+1/2 ) − u(tn+1/2 , xj−1/2 )
pour trouver, en faisant un développement de Taylor autour du point (tn+1/2 , xj ),
∂u ∂u
E1 = +a (tn+1/2 , xj ) + O (∆t)2 + (∆x)2
∂t ∂x
et
E2 = O (∆t)2 + (∆x)2
ce qui prouve que le schéma est consistant et d’ordre 2.
4. On multipliera la première relation du schéma par (un+1
j + unj ) pour obtenir
n+1/2 n+1/2
|un+1
j |2 − |unj |2 uj+1/2 − uj−1/2
+ a(un+1
j + unj ) = 0.
∆t ∆x
n+1/2 n+1/2
On utilise la deuxième relation un+1 j + unj = uj+1/2 + uj−1/2 pour simplifier le
deuxième terme de l’égalité précédente
n+1/2 n+1/2
|un+1
j |2 − |unj |2 |uj+1/2 |2 − |uj−1/2 |2
+a = 0.
∆t ∆x
En sommant en j on obtient
n+1/2 n+1/2 2
N |un+1 |2 − |un |2
X j j
|uN +1/2 |2 − |u1/2 |
+a = 0.
j=1
∆t ∆x
Utilisant la condition aux limites et sachant que a > 0 on en déduit
N N
∆x|un+1 |2 ≤ ∆x|unj |2 + a∆t|f (tn+1/2 )|2 ,
X X
j
j=1 j=1
qui conduit au résultat désiré par sommation en n.
L’intérêt de ce schéma (dit de Carlson) est qu’il est inconditionnellement stable
et explicite.
2
2 Formulation variationnelle
1. Soit le problème aux limites
un − un−1
− ∆un = 0 dans Ω
∆t (3)
u =0 sur ∂Ω.
n
Pour obtenir une formulation variationnelle de (3) on multiplie l’équation par une
fonction test v quelconque, s’annulant sur le bord ∂Ω, et on intègre par parties. On
obtient Z Z
−1
∇un · ∇v + (∆t) un v dx = (∆t)−1 un−1 v dx. (4)
Ω Ω
Par ailleurs, pour que tous les termes dans (4) aient un sens on choisit H01 (Ω) comme
espace de Hilbert. Finalement, la formulation variationnelle proposée est : trouver
un ∈ H01 (Ω) tel que
Z Z
∇un · ∇v + (∆t) −1
un v dx = (∆t)−1 un−1 v dx ∀ v ∈ H01 (Ω). (5)
Ω Ω
On vérifie maintenant les hypothèses du théorème de Lax-Milgram 3.3.1. On
définit une forme linéaire
Z
L(v) = (∆t)−1 un−1 v dx
Ω
et une forme bilinéaire
Z
a(u, v) = ∇u · ∇v + (∆t)−1 uv dx
Ω
qui sont clairement continues par application de l’inégalité de Cauchy-Schwarz pour
majorer les intégrales. Vérifions maintenant la coercivité de la forme bilinéaire. On
a Z
a(v, v) = |∇v|2 + (∆t)−1 v 2 dx
Ω
≥ νkvk2H 1 (Ω)
avec ν = min(1, (∆t)−1 ). Ainsi, il existe une unique solution un ∈ H01 (Ω) de la
formulation variationnelle (5).
2. Vérifions maintenant que cette solution de la formulation variationnelle est bien
une solution du problème (3). Pour cela on admet que un ∈ H 2 (Ω). On utilise la
formule de Green (4.22) qui implique que (5) est équivalent à
Z
−∆un + (∆t)−1 (un − un−1 ) v dx = 0. (6)
Ω
On choisit v quelconque dans Cc∞ (Ω) et on en déduit par application du Corollaire
4.2.2 que
−∆un (x) + (∆t)−1 un (x) = (∆t)−1 un−1 (x)
3
comme fonctions de L2 (Ω), ce qui implique que cette égalité a lieu presque partout
dans Ω. La condition aux limites de Dirichlet se retrouve, à cause du théorème de
trace 4.3.13, puisque un ∈ H01 (Ω). On a donc bien retrouvé le système (3) au sens
”presque partout”.
3. On choisit v = un dans la formulation variationnelle (5) et on minore le terme en
gradient pour obtenir
Z Z
2
(∆t)−1
|un | dx ≤ (∆t)−1 un−1 un dx .
Ω Ω
Par application de l’inégalité de Cauchy-Schwarz au membre de droite on en déduit
kun kL2 (Ω) ≤ kun−1 kL2 (Ω) ,
d’où le résultat par récurrence sur n.
4. On choisit v = un dans la formulation variationnelle (5) mais, cette fois-ci, on
écrit
1 1 1
(un − un−1 )un = (un − un−1 )2 + (un )2 − (un−1 )2 .
2 2 2
2
On minore le terme en (un − un−1 ) pour obtenir
1 1
Z Z Z
|un |2 dx + ∆t |∇un |2 dx ≤ |un−1 |2 dx .
2 Ω Ω 2 Ω
En sommant par rapport à n on obtient une somme ”téléscopique” qui donne
n
1 1
Z Z Z
|un |2 dx + |∇uk |2 dx ≤ |u0 |2 dx .
X
∆t
2 Ω k=1 Ω 2 Ω
En passant à la limite tn → t lorque ∆t → 0, et avec l’hypothèse faite de convergence
uniforme des un (x) vers u(t, x), on en déduit
Z tZ
1 1
Z Z
2 2
|u(t, x)| dx + |∇u(s, x)| dx ds ≤ |u0 (x)|2 dx .
2 Ω 0 Ω 2 Ω
5. Le schéma d’Euler explicite devrait s’écrire, pour n ≥ 1,
un − un−1
− ∆un−1 = 0 dans Ω
u =0
∆t
n sur ∂Ω.
Mais la condition aux limites n’a pas de sens car, justement, un se calcule explicite-
ment en fonction de un−1 sans résoudre d’équation aux dérivées partielles, grâce à
la formule
un = un−1 + ∆t∆un−1 .
Ce schéma ne peut qu’être instable car on ”perd” de la régularité sur un à chaque
itération ! Plus précisément, choisissons u0 défini, pour un nombre d’onde k ∈ RN ,
par
u0 (x) = ei k·x .
4
On montre facilement par récurrence que
un (x) = (1 − ∆t|k|2 )n ei k·x .
Aussi petit soit notre choix de ∆t on peut trouver k ∈ RN tel que |1 − ∆t|k|2 | > 1
et donc Z
lim |un |2 dx = +∞.
n→+∞ Ω
On pourrait objecter que u0 ne vérifie pas la condition aux limites de Dirichlet dans
ce contre-exemple de stabilité. Outre le fait que cela n’est pas nécessaire dans le cas
du schéma implicite (et de manière générale, voir chapitre 8 du polycopié), on peut
travailler un peu plus en montrant le même résultat pour u0 (x) = ei k·x φ(x) où φ est
une fonction non nulle, de classe C ∞ à support compact. Nous laissons au lecteur
courageux le soin de faire les calculs exacts...