La Méthode des Éléments Finis: TD1
Ibrahim ALAME
8/11/2021
1 Problème de Dirichlet
Considérons le problème de Dirichlet
d2 u
− 2 + 4u = 4 sur Ω,
dx (1)
u(0) = u(1) = 0
où Ω =]0, 1[.
1. — Équation sans second membre : −u′′ + 4u = 0 donc u0 = A ch(2x) + B sh(2x).
— La solution particulière constante : up = 4/4 = 1
— D’où u = 1 + A ch(2x) + B sh(2x)
— Les conditions initiales donnent : A = −1 et B = th1.
— La solution est donc
2
u= shx sh(1 − x)
ch1
y
2. Multiplions les deux membres de l’équation différentielle par une fonction v ∈ V :
d2 u
− · v + 4u · v = 4 v
dx2
intégrons les deux membres sur Ω :
Z 1 2 Z 1 Z 1
d u
− 2
· v dx + 4 u · v dx = 4 v dx
0 dx 0 0
1
Faisons une intégration par partie de la première intégrale :
1 1 Z 1 Z 1
d2 u
Z
du du dv du dv
2
· v dx = · v − · dx = − · dx
0 dx dx 0 0 dx dx 0 dx dx
car v(0) = v(1) = 0. Donc
Z 1 Z 1 Z 1
du dv
· dx + 4 u · v dx = 4 v dx
0 dx dx 0 0
Si on pose Z 1 Z 1
a(u, v) = (u′ v ′ + 4uv) dx et ℓ(v) = 4 v dx (2)
0 0
Alors
∀v ∈ V, a(u, v) = ℓ(v) (3)
3. Une fonction v ∈ Vh est affine par morceaux elle est donc complètement déterminée par ses n
valeurs aux points xj , 1 ≤ j ≤ n. Donc dim Vh = n.
y
v2
v1 vj
x
0=x0 xj 1=xn+1
La famille (φi )1≤i≤n est libre. En effet ;
n
X n
X n
X
λi φi = 0 =⇒ λi φi (xj ) = 0 =⇒ λi δij = λj = 0
i=1 i=1 i=1
Donc (φi )1≤i≤n est une base de Vh .
4. Pour 1 ≤ i ≤ n, fonction φi est donnée analytiquement par
1 − |x−x i|
si x ∈ [xi−1 , xi+1 ]
φi (x) = h (4)
0 sinon
y
φj
x
0=x0 xj 1=xn+1
2
5. On a uh ∈ Vh , donc uh s’écrit comme combinaison linéaire des vecteurs de base :
n
X
uh = λ i φi
i=1
On identifie les coefficients λj en évaluant cette dernière égalité en xj pour 1 ≤ j ≤ n :
n
X n
X
uh (xj ) = λi φi (xj ) =⇒ uj = λi δij = λj
i=1 i=1
D’où
n
X
uh = ui φi
i=1
Le problème approché s’écrit :
Trouver uh ∈ Vh solution de
(5)
∀vh ∈ Vh , a(uh , vh ) = ℓ(vh )
On fait vh = φi :
a(uh , φi ) = ℓ(φi ) , 1≤i≤n
n
X
a( uj φj , φi ) = ℓ(φi ), 1≤i≤n
j=1
Par linéarité de a par rapport à la première variable :
n
X
uj a(φj , φi ) = ℓ(φi ), 1≤i≤n
j=1
La méthode d’approximation variationnelle du problème de Dirichlet se ramène donc à un sys-
tème linéaire :
I
X
a(φj , φi )uj = ℓ(φi ), 1≤i≤n
j=1
En tenant compte du seul fait que le support d’une fonction φj , est l’intervalle [xj−1 , xj+1 ], ce
système prend la forme
a(φ1 , φ1 )u1 + a(φ2 , φ1 )u2 = ℓ(φ1 )
a(φ1 , φ2 )u1 + a(φ2 , φ2 )u2 + a(φ3 , φ2 )u3 = ℓ(φ2 )
···
a(φi−1 , φi )ui−1 + a(φi , φi )ui + a(φi+1 , φi )ui+1 = ℓ(φi )
···
a(φn−1 , φn )un−1 + a(φn , φn )un = ℓ(φn )
— si |i − j| > 1
3
y
φi φj
x
0=x0 xi xj 1=xn+1
alors a(φi , φj ) = 0.
— si j = i + 1
y
φi φj
x
0=x0 xi xj 1=xn+1
alors xj
x − xi x − xi
Z
1 1
a(φi , φi+1 ) = − +4 1− dx
xi h h h h
x−xi
On fait le changement de variable t = h :
Z 1
1 1 2
a(φi , φi+1 ) = h − 2 + 4 (1 − t) t dt = − + h
0 h h 3
— si i = j
y
φi =φj
x
0=x0 xi =xj 1=xn+1
alors " 2 2 #
xi+1
|x − xi |
Z
1
a(φi , φi ) = ± +4 1− dx
xi−1 h h
Z 1 Z 1
1 2 1 2 2 8
a(φi , φi ) = h 2
+ 4(1 − |t|) dt = 2h 2
+ 4(1 − t) dt = + h
−1 h 0 h h 3
pour le second membre, on peut utiliser l’aire du triangle
Z xi+1
2h × 1
ℓ(φi ) = 4 φi (x)dx = 4 · = 4h
xi−1 2
Le système s’écrit matriciellement
4
2 + 83 h2 −1 + 23 h2 ···
0 0
.. .. u1 1
−1 + 2 h2 2 + 38 h2 −1 + 23 h2
3
. .
u2
1
.. .. .. .. 2 ..
= 4h
0 . . . 0
. .
.. ..
. . −1 + 32 h2 2 + 38 h2 2 2
−1 + 3 h
un 1
0 ··· 0 −1 + 23 h2 2 + 83 h2
Pour n = 3, h = 14 , le système s’écrit :
2 + 16 1
−1 + 24 0 u1 1
−1 + 1 1 1 1
24 2+ 6 −1 + 24 u2 = 1
1 1 4
0 −1 + 24 2+ 6 u3 1
En multipliant par 24, on obtient le système simplifié
52 −23 0 u1 6
−23 52 −23 u2 = 6
0 −23 52 u3 6
225 294
D’où u1 = u3 = 823 ≃ 0.273 et u2 = 823 ≃ 0.357.
y
u2 ≃0,357
u1 ≃0,273 u3 ≃0,273
x
0=x0 x1 =0,25 x2 =0,50 x3 =0,75 x4 =1
2 Problème de Neumann
1. Multiplions les deux membres de l’équation différentielle par une fonction v ∈ V puis intégrons
les deux membres sur [0, 1] :
Z 1 Z 1 Z 1
d du
− (1 + x) v dx + uv dx = v dx
0 dx dx 0 0
5
Après une intégration par partie on obtient :
Z 1 Z 1 Z 1
du dv
(1 + x) · dx + uv dx = v dx
0 dx dx 0 0
car u′ (0) = u′ (1) = 0. Si on pose
Z 1 Z 1
′ ′
a(u, v) = ((1 + x)u v + uv) dx et ℓ(v) = v dx (6)
0 0
Alors
∀v ∈ V, a(u, v) = ℓ(v) (7)
2. Le problème approché s’écrit :
Trouver uh ∈ Vh solution de
(8)
∀vh ∈ Vh , a(uh , vh ) = ℓ(vh )
Pn+1
On fait v = φi et uh = j=0 uj φj , on obtient grâce à la bilinéarité de a :
n+1
X
a(φj , φi )uj = ℓ(φi ), 0≤i≤n+1 (9)
j=0
Compte tenu du support des fonctions de la base (φi )i le système linéaire prend la forme
a(φ0 , φ0 )u0 + a(φ1 , φ0 )u1 = ℓ(φ0 )
a(φ0 , φ1 )u0 + a(φ1 , φ1 )u1 + a(φ2 , φ1 )u2 = ℓ(φ1 )
···
a(φi−1 , φi−2 )ui−1 + a(φi , φi )ui + a(φi+1 , φi )ui+1 = ℓ(φi )
···
a(φn , φn+1 )un + a(φn+1 , φn+1 )un+1 = ℓ(φn+1 )
3. Calcul de a(φi , φj ) :
— si |i − j| > 1
y
φi φj
x
0=x0 xi xj 1=xn+1
alors a(φi , φj ) = 0.
— si j = i + 1
y
φi φj
x
0=x0 xi xj 1=xn+1
6
alors xj
x − xi x − xi
Z
1 1
a(φi , φi+1 ) = (1 + x) − + 1− dx
xi h h h h
x−xi
On fait le changement de variable t = h :
Z 1
1 + ih + th 1 1 1
a(φi , φi+1 ) = h − + (1 − t) t dt = − − i − + h
0 h2 h 2 6
— si i = j = 0
y
φi =φj =φ0
x
0=x0 xi 1=xn+1
alors " 2 #
Z x1
1 x 2
a(φ0 , φ0 ) = (1 + x) − + 1− dx
x0 h h
Z 1
1 + th 2 1 1 1
a(φ0 , φ0 ) = h 2
+ (1 − t) dt = + + h
0 h h 2 3
— si i = j = n + 1
y
φi =φj =φ0
x
0=x0 xi 1=xn+1
alors 2 " 2 #
xn+1
x − xn
Z
1
a(φn+1 , φn+1 ) = (1 + x) + dx
xn h h
Z 1
1 + nh + th 2 1 1 1
a(φn+1 , φn+1 ) = h 2
+ (1 − t) dt = + n + + h
0 h h 2 3
— si i = j
y
φi =φj
x
0=x0 xi =xj 1=xn+1
7
alors " 2 2 #
xi+1
|x − xi |
Z
1
a(φi , φi ) = (1 + x) ± + 1− dx
xi−1 h h
Z 1 Z 1
1 + ih + th 2 1 + ih 2 2 2
a(φi , φi ) = h 2
+ (1 − |t|) dt = 2h 2
+ (1 − t) dt = +2i+ h
−1 h 0 h h 3