Académique Documents
Professionnel Documents
Culture Documents
Travaux dirigés N◦ 7
Formulations variationnelles dans les espaces de Sobolev, méthode des éléments finis
Exercice 1 On considère le problème
Trouver u ∈ C 0 ([0, 1]) ∩ C 2 (]0, 1[) telle que
−u00 (x) + u(x) = f (x) pour x ∈]0, 1[,
(P )
u(0) = u(1),
u0 (0) = u0 (1),
1
3) On considère le problème
2
Université Pierre et Marie Curie Bases des méthodes numériques
Master de Sciences & Technologies MM006
Mention Mathématiques & Applications Cours : E. Godlewski et E. Trélat
Année universitaire 2011–2012 Travaux dirigés et télé-enseignement : C. Audiard
On peut intégrer par parties puisque v ∈ C 1 ([0, 1]) et u00 = u − f ∈ C 0 ([0, 1]),
Z 1 Z 1 Z 1
0 1 0 0
[−u (x)v(x)]0 + u (x)v (x)dx + u(x)v(x)dx = f (x)v(x)dx,
0 0 0
Z 1 Z 1 Z 1
0 0 0 0
−u (1)v(1) + u (0)v(0) + u (x)v (x)dx + u(x)v(x)dx = f (x)v(x)dx.
0 0 0
On va maintenant utiliser la densité de C 1 ([0, 1]) dans H 1 (0, 1) pour obtenir le même résultat
pour tout v ∈ H 1 (0, 1). Prennons donc un v ∈ H 1 (0, 1) fixée et considérons une suite de
fonctions vn ∈ C 1 ([0, 1]) telle que kvn − vk1 → 0 quand n → +∞. Pour chaque vn , on a la
relation précédente (avec v remplacée par vn ), ce qu’on utilise pour voir que
Z 1 Z 1 Z 1
0 0 0
u (0)(v(0) − v(1)) + u (x)v (x)dx + u(x)v(x)dx − f (x)v(x)dx
0 0 0
Z 1
0
= u (0)(v(0) − vn (0) − (v(1) − vn (1))) + u0 (x)(v 0 (x) − vn0 (x))dx
0
Z 1 Z 1
+ u(x)(v(x) − vn (x))dx − f (x)(v(x) − vn (x))dx
0 0
Z 1 Z 1 Z 1
0 0 0
+u (0)(vn (0) − vn (1)) + u (x)vn (x)dx + u(x)vn (x)dx − f (x)vn (x)dx
0 0 0
Z 1
0
= u (0)(v(0) − vn (0) − (v(1) − vn (1))) + u0 (x)(v 0 (x) − vn0 (x))dx
0
Z 1 Z 1
+ u(x)(v(x) − vn (x))dx − f (x)(v(x) − vn (x))dx.
0 0
3
Z 1
u(x)(v(x) − vn (x))dx ≤ kuk0 kv − vn k0
0
Z 1
f (x)(v(x) − vn (x))dx ≤ kf k0 kv − vn k0
0
et donc ces trois termes tendent vers 0 car kvn − vk1 → 0 quand n → +∞. Enfin, l’injection
continue H 1 (]0, 1[) ,→ C 0 ([0, 1]) signifie qu’il existe une constante C telle que
max |v(x)| ≤ Ckvk1 pour tout v ∈ H 1 (]0, 1[).
x∈[0,1]
Donc, en particulier,
max |v(x) − vn (x)| ≤ Ckv − vn k1 .
x∈[0,1]
Donc on voit que : 1) u0 ∈ L2 (0, 1), car u ∈ H 1 (0, 1) ; 2) u0 satisfait la formule pour admettre
une dérivée au sens faible qui se propose d’être donnée par u(x) − f (x) ; 3) u(x) − f (x) est
bien de la classe L2 (0, 1), car f ∈ C 0 ([0, 1]) ⊂ L2 (0, 1) et u ∈ H 1 (0, 1) ⊂ L2 (0, 1). Donc
u0 ∈ H 1 (0, 1) (i.e., u ∈ H 2 (0, 1)) et u00 = u − f . En plus, u − f est une fonction continue,
puisque u ∈ H 1 (0, 1) ⊂ C 0 ([0, 1]) et f ∈ C 0 ([0, 1]), donc u est en fait deux fois dérivable au
sens classique et −u00 + u = f .
Pour tout v ∈ C 1 ∩ V on a aussi
Z 1 Z 1
0 0
u (x)v (x)dx = (f (x) − u(x))v(x)dx
0 0
4
mais v ∈ V , donc (u0 (1) − u0 (0))v(0) = 0, donc en prenant v(x) = 1, qui est bien ∈ V , on
obtient u0 (1) = u0 (0). Comme par ailleurs u ∈ V , on a u(1) = u(0), donc u est solution du
problème continu (P ).
2) Montrons tout d’abord que V est un espace de Hilbert : c’est un sous-espace vectoriel de
H 1 (0, 1), car v(0) = v(1) est stable par combinaison linéaire. Par ailleurs soit l’application
L : H 1 (0, 1) → R,
v 7→ v(1) − v(0).
L est linéaire et comme on a l’injection continue de H 1 (0, 1) dans C 0 ([0, 1]), on sait qu’il
existe C > 0 tel que pour tout v ∈ H 1 (0, 1) (cf. cours),
max |v(x)| ≤ C||v||H 1 (0,1) . (1)
[0,1]
Donc
|L(v)| = |v(1) − v(0)| ≤ |v(1)| + |v(0)| ≤ 2 max |v(x)| ≤ 2C||v||H 1 (0,1) ,
[0,1]
donc L est continue. Donc V = Ker(L) est fermé et complet car c’est un sous-espace vectoriel
fermé d’un espace complet.
Par ailleurs l(v) est une forme linéaire continue par Cauchy–Schwarz,
Z 1
|l(v)| =
f (x)v(x)dx ≤ ||f ||L2 (0,1) ||v||L2 (0,1) ≤ ||f ||L2 (0,1) ||v||H 1 (0,1) , (2)
0
donc le problème hu, viH 1 (0,1) = l(v) pour tout v ∈ V a une solution unique u ∈ V par le
théorème de représentation de Riesz.
3) Pour montrer que (F V ) (et alors aussi (P )) admet une solution unique, on peut aussi
procéder comme suit. On a montré dans la question précédente que V est un espace de
Hilbert. Ensuite, la forme bilinéaire a est continue
|a(u, v)| = |hu, viH 1 (0,1) | ≤ ||u||H 1 (0,1) ||v||H 1 (0,1) = M ||u||H 1 (0,1) ||v||H 1 (0,1) ∀ u, v ∈ H 1 (0, 1)
avec M = 1 et elliptique
a(u, u) = hu, uiH 1 (0,1) = ||u||2H 1 (0,1) = α||u||2H 1 (0,1) ∀ u ∈ H 1 (0, 1)
avec α = 1. En utilisant la continuité de la forme linéaire l donnée par (2), on peut donc
directement appliquer le théorème de Lax–Milgram pour conclure l’existence et l’unicité de
la solution du problème variationnel (F V ). A noter que la différence principale est que cette
deuxième démonstration s’applique aussi au cas où la forme a n’est pas symétrique.
4) Oui. Les deux démonstrations précédentes s’appliquement directemet aussi au cas f ∈
L2 (0, 1). A noter que dans ce cas, la formulation classique (P ) n’a plus de sense. On a par
contre Z 1 Z 1
0 0
u (x)φ (x)dx = − (u(x) − f (x))φ(x)dx
0 0
pour tout φ ∈ D(0, 1), donc u (x) admet une dérivée faible, donc u ∈ H 2 (0, 1) et u00 (x) =
0
u(x) − f (x) pour presque tout x ∈ (0, 1) (cf. la question 1) pour les détails). On dit que le
problème (P ) a une solution forte.
5
5) Si f ∈ H 1 (0, 1), alors u − f ∈ H 1 (0, 1) et donc u00 ∈ H 1 (0, 1), donc u ∈ H 3 (0, 1).
6) On définit la discrétisation xi = ih pour h = 1/(N + 1), N ≥ 1, et on introduit l’espace
Vh = {vh ∈ C 0 ([0, 1]); vh|[xi ,xi+1 ] ∈ P1 ([xi , xi+1 ]); vh (0) = vh (1)}.
Par le cours on sait que Vh ∈ V (fonctions continues sur [0, 1] et C 1 par morceaux). On
considère les fonctions chapeaux pour i = 1, 2, . . . , N
(x − xi−1 )/h pour x ∈ [xi−1 , xi ],
φi (x) = (xi+1 − x)/h pour x ∈ [xi , xi+1 ],
0 ailleurs
En
PNeffet la relation ci-dessus est clairement vraie pour tous les points xi . Les restrictions de
+1
i=1 vh (xi )φi (x) et de vh à chaque intervalle [xi , xi+1 ] sont des polynômes de degré 1 égaux
aux extrémités de ces intervalles donc égaux sur tout l’intervalle.
On a donc une base de Vh , qui est donc de dimension N +1. On cherche la solution approchée
uh sous la forme de ses coefficients dans cette base. On l’écrit
N
X +1 N
X +1
uh (x) = uh (xi )φi (x) = ui φi (x),
i=1 i=1
où on note ui = uh (xi ). La solution approchée est définie par trouver uh ∈ Vh telle que
pour tout vh ∈ Vh on ait huh , vh iH 1 (0,1) = l(vh ) . Cette solution existe et est unique car Vh
est un sous-espace vectoriel de dimension finie de V donc un espace de Hilbert et on peut
utiliser aussi sur Vh le théorème de représentation de Riesz ou celui de Lax–Milgram.
6
En faisant varier les fonctions test vh dans la base φi , on obtient N + 1 équations pour
i = 1, . . . , N + 1
N
X +1
uj hφj , φi iH 1 (0,1) = l(φi ).
j=1
Remarquer que hφj , φi iH 1 (0,1) est non nul pour |i − j| ≤ 1 seulement ou encore si i = 1 et
j = N + 1 ou j = 1 et i = N + 1. On calcule les coefficients de la matrice tridiagonale du
système :
Z 1
2
||φi ||H 1 (0,1) = (φi (x)2 + φ0i (x)2 )dx
Z0 xi Z xi+1
2 2 2
= ((x − xi−1 ) /h + 1/h )dx + ((xi+1 − x)2 /h2 + 1/h2 )dx
xi−1 xi
2 2h
= +
h 3
pour i = 1, . . . , N et
Z 1
hφi , φi−1 i2H 1 (0,1) = (φi (x)φi−1 (x) + φ0i (x)φ0i−1 (x))dx
Z0 xi
= ((x − xi−1 )(xi − x)/h2 − 1/h2 )dx
xi−1
−1 h
= +
h 6
pour i = 2, . . . , N + 1. Pour les extrémités de l’intervalle on calcule en particulier
Z 1
2
||φN +1 ||H 1 (0,1) = (φN +1 (x)2 + φ0N +1 (x)2 )dx
0
Z h Z 1
2 2 2
= ((h − x) /h + 1/h )dx + ((x − 1 + h)2 /h2 + 1/h2 )dx
0 1−h
2 2h
= +
h 3
et
Z h
hφN +1 , φ1 i2H 1 (0,1) = ((h − x)x/h2 − 1/h2 )dx
0
−1 h
= + .
h 6
On peut maintenant mettre le système sous forme matricielle
2 2h −1 h −1
+ h6
h
+ 3 h
+6 0 ... 0 h
u1 l(φ1 )
−1 h 2 2h −1 h
h +6 h+ 3 ... ...
+ 0
.. u.2 l(φ. 2 )
h 6
... ... ... ...
0 . .. =
.. .. .
. ... ... ... ...
0 uN
l(φ N )
0 . .. . .. −1 h 2 2h −1 h
h
+6 h+ 3 h
+ 6 uN +1 l(φN +1 )
−1 h −1 h 2 2h
h
+ 6
0 . . . 0 h
+ 6 h
+ 3
7
P
Remarque : La solution approchée uh = i ui φi vérifie bien les conditions de périodicité
uh (0) = uh (1) puisqu’on les a mises dans l’espace fonctionnel V et aussi dans Vh . Par contre
elle ne vérifie pas nécessairement les conditions sur la dérivée. En effet, la solution approchée
est dérivable par morceaux sur chaque intervalle [xi , xi+1 ]. On aura
et
Donc
hu − uh , vh iH 1 (0,1) = 0 ∀ vh ∈ Vh .
Il vient alors que dans notre cas, uh est directement la projection orthogonale de u sur Vh
pour le produit scalaire h·, ·iH 1 (0,1) , cf. le cours. Par la définition de la projection orthogonale,
on a alors directement
||u − uh ||H 1 (0,1) = inf ||u − vh ||H 1 (0,1) .
vh ∈Vh
pour tout vh ∈ Vh , ce qui donne, en réalisant que α = M = 1 dans notre cas, cf. question 3,
8) On reprend les étapes pour l’étude du problème initial. On multiplie l’équation différen-
tielle par v ∈ C 1 ([0, 1]) et on intègre sur [0, 1],
Z 1 Z 1 Z 1
00
− u (x)v(x)dx + u(x)v(x)dx = f (x)v(x)dx.
0 0 0
On peut intégrer par parties puisque v ∈ C 1 ([0, 1]) et u00 = u − f ∈ C 0 ([0, 1]),
Z 1 Z 1 Z 1
0 1 0 0
[−u (x)v(x)]0 + u (x)v (x)dx + u(x)v(x)dx = f (x)v(x)dx,
0 0 0
Z 1 Z 1 Z 1
0 0 0 0
−u (1)v(1) + u (0)v(0) + u (x)v (x)dx + u(x)v(x)dx = f (x)v(x)dx.
0 0 0
8
Comme u0 (1) + r = u0 (0), on obtient finalement
Z 1 Z 1 Z 1
0 00
u (0)(v(0) − v(1)) + u (x)v(x)dx + u(x)v(x)dx = f (x)v(x)dx − rv(0)
0 0 0
et par densité de C 1 ([0, 1]) dans H 1 (0, 1) comme en question 1), on obtient le même résultat
pour tout v ∈ H 1 (0, 1). On garde le même espace de fonctions tests
car φ(0) = 0. Donc u0 ∈ L2 admet une dérivée au sens faible f (x) − u(x) qui se trouve être
continue, puisque u ∈ H 1 (0, 1) ⊂ C 0 et f ∈ C 0 , donc u est en fait deux fois dérivable au
sens classique et −u00 + u = f .
Pour tout v ∈ C 1 ∩ V on a aussi
Z 1 Z 1
0 0
u (x)v (x)dx = (f (x) − u(x))v(x)dx − rv(0)
0 0
mais v ∈ V , donc (u0 (1) − u0 (0) + r)v(0) = 0 donc en prenant v(x) = 1 qui est bien ∈ V , on
obtient u0 (1) + r = u0 (0). Comme par ailleurs u ∈ V , on a u(1) = u(0), donc u est solution
du problème continu (Pr ).
La forme linéaire l(v) reste continue par Cauchy–Schwarz
Z 1 Z 1
|l(v)| = f (x)v(x)dx − rv(0) ≤ f (x)v(x)dx + |rv(0)|
0 0
≤ ||f ||L2 (0,1) ||v||L2 (0,1) + |rv(0)| ≤ (||f ||L2 (0,1) + |r| C)||v||H 1 (0,1) ,
où C vient de l’injection continue de H 1 (0, 1) dans C 0 , cf. (1). Donc là encore le problème
hu, viH 1 (0,1) = l(v) a une solution unique sur V par le théorème de représentation de Riesz.
L’approximation par éléments finis se fait exactement de la même manière avec la nouvelle
forme linéaire pour le second membre.
9
Corrigé 2 1) On rappelle que H01 (R) est défini comme la fermeture de D(R) dans H 1 (R).
⊥
Donc par la définition de l’orthogonal de H01 (R) dans H 1 (R) si v ∈ H01 (R) , alors
donc Z Z
0 0
∀φ ∈ D(R) vφ =− vφ,
R R
ce qui signifie que v 0 admet v ∈ H 1 (R) comme dérivée faible. Donc v ∈ H 2 (R). En fait
comme v 00 = v ∈ H 1 (R) ⊂ C 0 (R), on a même v(x) = Aex + Be−x . Maintenant, la condition
⊥
v ∈ H 1 (R) ⊂ L2 (R) impose A = B = 0. Donc H01 (R) = {0}. Comme H01 (R) est un sous-
⊥
espace vectoriel de H 1 (R), on en déduit H01 (R) ⊕ H01 (R) = H 1 (R), donc H01 (R) = H 1 (R).
2) Il faut montrer Z
lim (ηn φ − φ)2 dx = 0.
n→∞ R
d’où le résultat.
3) On montre maintenant que si u est une solution classique de (P ), alors u est dans H 1 (R).
Pour cela on multiplie l’équation différentielle par uηn et on intègre sur R. On peut le faire
puisque ηn est à support compact et u ∈ C 2 (R). On a
Z
(−u00 (x) + u(x) − f (x))u(x)ηn (x) = 0.
|x|≤2n
On utilise ensuite le fait que ηn (−2n) = ηn (2n) = 0 par la continuité de ηn et que (ηn )0 (x) =
η 0 (x/n)/n,
Z Z Z
0 2 1 0 0
u (x) ηn (x)dx + u (x)u(x)η (x/n)dx + (u(x) − f (x))u(x)ηn (x)dx = 0.
|x|≤2n n |x|≤2n |x|≤2n
On note que u(x)u0 (x) = (u(x)2 )0 /2 et on intègre le terme correspondant par parties,
Z Z Z
0 2 1 2 0 0
u (x) ηn (x)dx + (u(x) ) η (x/n)dx + (u(x) − f (x))u(x)ηn (x)dx = 0,
|x|≤2n 2n |x|≤2n |x|≤2n
10
d’où
Z
1
u0 (x)2 ηn (x)dx + (u(x))2 η 0 (x/n) |x|=2n
|x|≤2n 2n
Z Z
1
− 2 u(x)2 η 00 (x/n)dx + (u(x) − f (x))u(x)ηn (x)dx = 0.
2n |x|≤2n |x|≤2n
On utilise le fait que η 0 (−2) = η 0 (2) = 0 par la continuité de η 0 et on réordonne les termes
qui restent,
Z Z
0 2
u (x) ηn (x)dx + u(x)2 ηn (x)dx =
Z |x|≤2n Z |x|≤2n
1
2
u(x)2 η 00 (x/n)dx + f (x)u(x)ηn (x)dx.
2n |x|≤2n |x|≤2n
On étudie maintenant les deux termes de droite. Pour le premier terme, on pose C =
sup[−2,2] |η 00 (x)|. Comme η 00 (x) = 0 sur [−1, 1], on a
Z Z
1 2 00 C
2
u(x) η (x/n)dx ≤ 2 u(x)2 dx
2n |x|≤2n 2n n≤|x|≤2n
∀ > 0 ∃N ; ∀x ≥ N |u(x)| ≤ ,
donc
C2
Z
C C
∀ > 0 ∃N ; ∀n > N u(x)2 dx ≤ 2n2
= ,
2n2 n≤|x|≤2n 2n2 n
d’où finalement Z
1
lim u(x)2 η 00 (x/n)dx = 0.
n→∞ 2n2 |x|≤2n
11
d’où on tire, en combinant les résultats précédents
Z Z Z
1 2 0 2 1 2 00 1
(u(x) + u (x) )dx ≤ 2 u(x) η (x/n)dx + |f (x)|2 dx.
2 |x|≤n 2n |x|≤2n 2 |x|≤2n
donc u ∈ H 1 (R).
4) Multiplions l’équation différentielle par une fonction test prise dans D(R) et intégrons
sur R
Z Z Z
00
− u φ + uφ = f φ,
Z R Z R ZR
0 0
u φ + uφ = f φ.
R R R
Les termes de bord disparaissent parce que φ est à support compact dans R. Par densité de
D(R) dans H01 (R) = H 1 (R) on a donc la formulation variationnelle
Z
1 1
Trouver u ∈ H (R) telle que ∀v ∈ H (R) hu, viH 1 (R) = fv
R
soit u0 φ0 = − (u − f )φ
R R
et comme u ∈ H 1 (R) et f ∈ L2 (R), ceci entraine que u0 admet une dérivée faible u00 =
u − f ∈ L2 (R). Comme u ∈ H 2 (R) ⊂ C 0 (R), il suffit que f soit en plus dans C 0 (R) pour
que u00 soit dans C 0 (R) et que u soit solution du problème au sens classique. La condition
aux limites u(x) → 0 n’est pas complètement triviale, en particulier c’est n’est pas une
conséquence de u ∈ L2 . Il faut plutôt raisonner comme suit : comme H 1 (R) = H01 (R), D est
dense dans H 1 (R), en particulier cela implique
Z x
u(x)2
1
∀ u ∈ H (R) : = uu0 dx
2 −∞
Z x
0 = lim uu0 dx = lim u2 (x)/2.
x→∞ −∞ x
12