Cours EF GC4
Cours EF GC4
Deuxième année
2023-2024
Imad EL MAHI
Adresse : Complexe Universitaire, Hay El Qods, B.P 669, 60000 Oujda, Maroc
Table des matières
2
2.8.2 Formulation variationnelle discrète . . . . . . . . . . . . . . . . . . 51
2.8.3 Espace d'approximation Vh (Eléments Finis P1 ) . . . . . . . . . . . 52
3
Chapitre 1
Quelques notions sur les espaces
fonctionnels
Introduction
Un grand nombre de problèmes issus de la physique et mécanique peuvent être décrits
par des systèmes d'équations aux dérivées partielles (EDP) auquelles sont associées des
conditions initiales et des conditions limites. On s'intéresse généralement à la convergence
de ces systèmes en réponse à ces conditions initiales et aux limites. Quelle est la réponse
du système à ces conditions ? c'est-à-dire comment se comporte la solution ? Il faut donc
s'assurer que la solution du système reste dans l'espace dans lequel on travaille si les
conditions avec lesquelles on a lancé le système appartiennent à cet espace.
La question qui se pose est donc la suivante : si une famille de solutions appartient à un
espace, la solution limite appartient elle aussi à cet espace ?
Pour garantir ceci il faut que l'espace dans lequel on travaille ne possède pas de trou,
c'est-à-dire qu'il n'y a aucun élément manquant. On parle d'espace complet. D'autre
part, la convergence vers la solution physique du problème sera atteinte lorsque la norme
de l'erreur soit assez petite. L'espace du travail doit donc être muni d'une norme.
Un espace vectoriel normé complet est dit Espace de Banach.
Un espace vectoriel muni d'un produit scalaire et complet pour la norme issue de ce
produit scalaire est dit Espace de Hilbert.
Evidemment, un espace de Hilbert est un espace de Banach.
4
Dénition 1.1.1 Soit E un espace vectoriel sur R.
On dit qu'une application ϕ : E × E −→ R dénit un produit scalaire sur E si elle
vérie
(x, y) 7−→ ϕ(x, y)
les propriétés suivantes :
i/ ϕ est bilinéaire sur E , c'est-à-dire :
3 ϕ(λx + µy, z) = λϕ(x, z) + µϕ(y, z)
∀ (x, y, z) ∈ E :
ϕ(x, λy + µz) = λϕ(x, y) + µϕ(x, z)
5
2. Dans Cn , le produit scalaire hermitien usuel est déni par :
n
X
< x, y >= xi yi = x1 y1 + x2 y2 + . . . + xn yn
i=1
Exemples :
Si E = R, la valeur absolue est une norme.
Si E = C ; le module dénit une norme.
Si E = Rn ; on peut le faire munir de l'une des normes suivantes, et qui sont souvent
utilisées :
Pour x ∈ Rn ; x = (x1 , . . . , xn )
n
X
kxk1 = |xi |
i=1
n
!1/2
X
kxk2 = x2i dite norme euclidienne
i=1
En général :
n
!1/p
X
kxkp = |xi |p
i=1
kxk∞ = sup |xi |
1≤i≤n
6
Norme euclidienne
À partir d'un produit scalaire < . , . >, on peut dénir une norme dite norme euclidienne
par : √
kxk = < x, x >
Exercice 1
Montrer que k.k : E −→ R est bien une norme sur E.
√
x 7−→ kxk = < x, x >
Normes équivalentes
On dira que deux normes k.k1 et k.k2 sont équivalentes s'il existe
Exercice 2
Montrer que les normes k.k1 , k.k2 et k.k∞ dénies sur Rn sont équivalentes.
Remarque :
Dans un espace de dimension nie toutes les normes sont équivalentes.
(Attention ceci n'est pas le cas dans un espace de dimension innie)
Propriétés de la norme
P1 Soit k.k une norme sur E . On a :
1. ∀ (x, y) ∈ E 2 ; |kxk − kyk| ≤ kx − yk
P2 Soit k.k une norme euclidienne associée à un produit scalaire < . , . >.
On a ∀ (x, y) ∈ E 2 ,
1. | < x, y > | ≤ kxk kyk Inégalité de Cauchy-Shwarz.
7
Preuve
P1 Il sut d'écrire les deux égalités :
kxk = k(x − y) + yk ≤ kx − yk + kyk ⇒ kxk − kyk ≤ kx − yk
=⇒ |kxk − kyk| ≤ kx−yk
kyk = k(y − x) + xk ≤ ky − xk + kxk ⇒ kyk − kxk ≤ kx − yk
P2 1. On commence par montrer l'inégalité dans le cas où le nombre < x, y > est
réel. Il sut d'écrire que :
< x + λy, x + λy > ≥ 0 ∀λ ∈ R
Dans le cas où < x, y > n'est pas réel, on peut se ramener au cas précédent
en multipliant le vecteur x par un complexe de module 1 (par exemple par
< x, y >
).
| < x, y > |
2. Il sut de montrer que kx + yk2 ≤ (kxk + kyk)2
ce qui équivaut à
soit
< x, y > ≤ kxkkyk qui est vrai.
3. Facile
8
Cette écriture a un sens. En eet, comme
Remarque :
On voit donc qu'une suite de Cauchy est une suite d'éléments de E qui se rapprochent
l'une de l'autre à partir d'un certain rang. Les suites de Cauchy peuvent donc converger.
En fait, elles convergent si leur limite reste dans l'espace E .
Exemples :
1. R et C sont des espaces complets.
2. Q n'est pas complet. En eet :
Du fait de la densité√de Q dans R, on peut trouver une suite (un ) d'éléments de
Q qui converge vers 2. (u√ n ) est donc une suite de Cauchy dans Q. Mais (un ) ne
converge pas dans Q car 2 ∈ / Q.
Exercice 3
Montrer que l'ensemble C ([a, b]) des fonctions continues sur [a, b] n'est pas complet.
9
1.2.2 Espace de Banach
Dénition 1.2.3 Un espace vectoriel normé et complet est dit espace de Banach.
Et on a la propriété suivante :
Propriété
L'espace L1 (Ω) muni de la norme k.k1 est un espace de Banach.
Exemple 1.2.2 L'ensemble Rn muni du produit scalaire usuel est un espace de Hilbert.
Proposition 1.2.1
Tout espace de Hilbert est un espace de Banach.
Preuve
Evident. A partir d'un produit scalaire sur E , on peut dénir une norme.
10
1.3.1 Espaces de fonctions intégrables
Soit Ω un ouvert de Rn .
On note par Lp (Ω) (p ∈ N∗ ) l'espace des fonctions réelles u dénies sur Ω telles
que : Z
|u(x)|p dx < +∞ ( c-à-d existe )
Ω
Ici l'intégrale est dans Rn . C'est une intégrale simple si n = 1, intégrale double si
n = 2, intégrale triple si n = 3.
L'espace Lp (Ω) peut être muni de la norme dénie par :
Z 1/p
p p
∀ u ∈ L (Ω) ; kukLp (Ω) = |u(x)| dx
Ω
En particulier :
pour p = 1 : L1 (Ω) est nommé espace des fonctions absolument intégrables (ou som-
mables) :
Z
1
L (Ω) = u : Ω → R / |u(x)| dx < +∞
Ω
Z
1
∀ u ∈ L (Ω) ; kukL1 (Ω) = |u(x)| dx
Ω
pour p = +∞ : On dénit aussi l'espace L∞ (Ω) qui est l'espace des fonctions bornées sur
Ω c'est-à-dire :
À cet espace, on associe une norme dite norme innie dénie par :
Théorème 1.3.1 Lp (Ω) muni de la norme k.kLp (Ω) est un espace de Banach (c'est-à-dire
qu'il est complet).
11
L2 (Ω) peut être muni du produit scalaire < . , . >L2 (Ω) déni par :
Z
2
∀ u, v ∈ L (Ω) ; < u, v >L2 (Ω) = u(x)v(x) dx
Ω
et On a le théorème suivant :
Propriétés
1. Si u, v ∈ L2 (Ω) alors u v ∈ L1 (Ω).
2. Si u, v ∈ L2 (Ω) alors u + v ∈ L2 (Ω).
3. Si λ ∈ R ; u ∈ L2 (Ω) alors λu ∈ L2 (Ω).
12
Dénition 1.4.2 On note par D(Ω) l'ensemble des fonctions ϕ de Ω dans R, de classe
C ∞ , et à support borné (donc compact).
Exemple 1.4.4
La fonction nulle : θ : R −→ R est une fonction test c-à-d θ ∈ D(R)
x 7−→ 0
∞
θ ∈ C (R)
En eet : supp (θ) = ∅ qui est fermé borné donc compact.
Exemple 1.4.5
La fonction de Schwartz : supp (ϕ) = [−1, 1] bornée.
On peut montrer aussi que ϕ ∈ C ∞ (R) et donc ϕ ∈ D(R).
La fonction ϕ peut être représentée graphiquement comme suit :
φ( x )
−1 1 x
∂ 2u
2 2 ∂u 2 2
H (Ω) = u ∈ L (Ω) ; ∈ L (Ω) ; ∈ L (Ω) ; ∀ i, j = 1, . . . , n
∂xi ∂xi ∂xj
13
En particulier, en dimension 1, c'est-à-dire si Ω est un ouvert de R alors :
H 0 (Ω) = L2 (Ω)
Et on a le théorème suivant :
Théorème 1.5.1 L'espace H 1 (Ω) peut être muni du produit scalaire suivant :
∀u, v ∈ H 1 (Ω) ; < u, v >H 1 (Ω) = < u, v >L2 (Ω) + < ∇u, ∇v >L2 (Ω)
∂Ω étant la frontière de Ω.
Par exemple si n = 1 et Ω =]a, b[ ouvert de R alors :
H01 (]a, b[) = u ∈ H 1 (]a, b[) , u(a) = u(b) = 0
Preuve
Soit x ∈ (a, b), on a :
Z x
u0 (t) dt car u ∈ H01 (a, b)
u(x) =
a
14
En élevant au carré et en utilisant l'inégalité de Cauchy-Schwarz, on a :
Z x 2
2 0
u (x) = u (t) dt
a
Z x Z x
02
≤ u (t) dt 1 dt
a a
2
= (x − a) ku0 kL2 (a,b)
On intègre entre a et b :
Z b Z b
2
2
u (x) dx = (x − a) ku0 kL2 (a,b) dx
a a
(b − a)2 0 2
= ku kL2 (a,b)
2
On obtient alors :
b−a
kukL2 (a,b) ≤ √ ku0 kL2 (a,b)
2
En dimension supérieure à 1, on a :
est une norme sur l'espace H01 (Ω), équivalente à la norme k · k sur H01 (Ω) induite de celle
de H 1 (Ω), c.a.d qu'il existe deux constantes C1 et C2 telles que
C1 | u |1 ≤ kukH 1 (Ω) ≤ C2 | u |1
Preuve
1/2
kukH 1 (Ω) = kuk2L2 (Ω) + k∇uk2L2 (Ω)
| u |1 = k∇ukL2 (Ω)
15
=⇒ kuk2H 1 (Ω) ≤ (1 + C 2 ) | u |21
√
=⇒ kukH 1 (Ω) ≤ 1 + C 2 | u |1 (2)
Lemme 1.7.1
Il existe une constante C telle que :
ku| ∂Ω kL2 (∂Ω) ≤ C k∇ukH 1 (Ω)
L'ensemble des traces au bord des fonctions de H 1 (Ω) est noté H 1/2 (∂Ω).
Ω
Formule de Stokes
Z Z Z
div(u) v dΩ = − u · ∇v dΩ + (u · n) v dσ
Ω Ω ∂Ω
ici u est un vecteur et v une fonction.
16
La formule de Stokes est une généralisation à un espace à plusieurs dimensions de la
formule d'intégration par parties :
Z b Z b
0
u v dx = − u v 0 dx + [uv]ba
a a
En particulier :
Si v=1, on obtient :
Z Z
div(u) dΩ = u · n dσ
Ω ∂Ω
17
Chapitre 2
Méthode des Éléments nis
La méthode des éléments nis est une méthode d'approximation des équations aux dérivées
partielles et est l'une des trois méthodes les plus utilisées, avec les méthodes des diérences
nies et de volumes nis. Cette méthode est apparue dans les années 50 et a été appliquées
au départ par les ingénieurs et les mécaniciens pour le calcul de l'aérodynamique autour
des avions. La méthode des éléments nis est actuelement la méthode de base en calcul
de structures et en génie civil.
2.1.1 Exemple en 1D
On considère l'équation diérentielle (dite de poisson) avec conditions aux limites du type
Dirichlet :
−u00 (x) = f (x) pour a < x < b
(P ) (2.1)
u(a) = u(b) = 0 f ∈ L2 ([a, b])
Dénition 2.1.1 On appelle solution classique (ou solution forte) du problème (P ) une
fonction u de classe C 2 ([a, b]) vériant :
∀ x ∈]a, b[ ; −u00 (x) = f (x)
u(a) = u(b) = 0
Multiplions l'équation (2.1) par une fonction v assez régulière et intégrons entre a et b,
on aura : Z b Z b
00
− u (x) v(x) dx = f (x) v(x) dx
a a
On intègre par partie, on obtient :
Z b Z b
0 0 0 b
u (x) v (x) dx − [u (x) v(x)]a = f (x) v(x) dx
a a
18
Si on prend la fonction v de sorte à vérier la condition initiale, c'est-à-dire telle que
v(a) = v(b) = 0, alors on obtient :
Z b Z b
0 0
u (x) v (x) dx = f (x) v(x) dx
a a
On voit que les intégrales dans cette équation ont un sens dès lors que u et v ∈ H01 ([a, b]).
2.1.2 Exemple en 2D
Soit Ω un domaine régulier de R2 .
On note par ∂Ω la frontière de Ω et n la normale unitaire extérieure à ∂Ω.
Ω
19
En utilisant la formule de Green, on aura :
ZZ Z ZZ ZZ
∂u
∇u · ∇v dxdy − v dσ + u v dxdy = f v dxdy
Ω ∂Ω ∂n Ω Ω
∂u
or la CL : = 0 sur ∂Ω =⇒
∂n
ZZ ZZ ZZ
∇u · ∇v dxdy + uv dxdy = f v dxdy
Ω Ω Ω
Ici les termes de cette équation ont un sens dès lors que u, v ∈ H 1 (Ω).
La formulation variationnelle du problème (P ) s'écrit alors :
20
Alors le problème variationnel :
Trouver u ∈ V telle que
(Q)
a(u, v) = L(v) ∀v ∈ V
admet une solution unique u dans V .
Rappels
a(λu + µv, w) = λa(u, w) + µa(v, w)
a est bilinéaire ⇐⇒
a(u, λv + µw) = λa(u, v) + µa(u, w)
Ces composantes ui de uh dans la base (ϕi )1≤i≤N seront calculées en résolvant un système
linéaire.
Expliquons ceci :
Soit (ϕ1 , ϕ2 , . . . , ϕN ) une base de Vh .
Si l'on décompose la solution approchée uh dans cette base :
N
X
uh (x) = ui ϕi (x)
i=1
21
le problème approché (Qh ) s'écrit :
Comme L est linéaire alors, pour que cette relation soit vraie ∀ vh ∈ Vh , il faut et il sut
qu'elle le soit pour chacune des fonctions de base de Vh .
Le problème variationnel approché devient alors :
Remarque 2.3.1 On peut montrer que la matrice A est dénie positive c'est-à-dire :
→
−
(X t AX ≥ 0 et X t AX = 0 ⇒ X = 0 )
22
Preuve
a(ϕ1 , ϕ1 ) a(ϕ2 , ϕ1 ) . . . a(ϕN , ϕ1) x1
a(ϕ1 , ϕ2 ) a(ϕ2 , ϕ2 ) . . . a(ϕN , ϕ2) x2
X t AX = (x1 , x2 , . . . , xN )
.. ..
. .
a(ϕ1 , ϕN ) a(ϕ2 , ϕN ) . . . a(ϕN , ϕN ) xN
N N
!
X X
= xj a(ϕi , ϕj )xi a bilinéaire ⇒
j=1 i=1
N N
!
X X
= a xi ϕ i , ϕ j xj
i=1 j=1
= a(u, u) ≥ αkuk2 (car a est coercive)
On déduit donc que
X t AX ≥ 0
De plus :
N
X
t 2
X AX = 0 =⇒ αkuk = 0 =⇒ u = 0 =⇒ xi ϕi = 0
i=1
=⇒ xi = 0 ∀ i = 1, . . . , N car (ϕi )1≤i≤N est une base de Vh
→
−
=⇒ X = 0 D'où le résultat.
23
avec Z b
u0 (x) v 0 (x) dx
a(u, v) =
Za b
L(v)
= f (x) v(x) dx
a
L'espace d'approximation Vh est tel que Vh ⊂ H01 ([a, b]), on peut alors choisir Vh ⊂
C 0 ([a, b]) (fonctions continues sur [a, b]).
x 0=a x1 x2 xN x N +1 =b
Exemple de vh :
vh
v h ( a)=0 v h ( b)=0
a b
24
xN
x2
Le problème variationnel discret s'écrit alors :
Théorème 2.4.1
Les fonctions de l'espace Vh sont entièrement déterminées par leurs valeurs aux
n÷uds x1 , x2 , . . . , xN .
dim Vh = N est une base de Vh (ϕi )1≤i≤N est dénie par
ϕi ∈ Vh
1 si i = j
ϕi (xj ) = δij =
0 si i 6= j
(Symbole de Kronecker)
Preuve
i/ Soit vh ∈ Vh alors vh ∈ P1 sur chaque [xi , xi+1 ].
c'est-à-dire : vh (x) = αx + β pour x ∈ [xi , xi+1 ].
A partir des valeurs v(xi ) et v(xi+1 ), on peut déterminer d'une manière unique α
et β et donc vh (x).
Il s'en suit que la fonction vh est entièrement déterminée sur [a, b] par ses valeurs aux
points x1 , x2 , . . . , xN . Ces valeurs vh (xi ) aux n÷uds sont appelées degrés de liberté
de l'espace Vh .
ii/ La fonction de base (ϕi ) peut être représentée comme suit :
alors
N
X
pour x = xi on a : λj ϕj (xi ) = 0 ⇒ λi = 0 (i = 1, . . . , N )
j=1
25
Montrons que (ϕi )1≤i≤N est génératrice de Vh .
N
X
Soit vh ∈ Vh , et posons ω(x) = vh (xj ) ϕj (x)
j=1
on a bien sûr ω ∈ Vh .
De plus ∀ i = 1, . . . , N ; ω(xi ) = vh (xi )
or d'après i/ les fonctions de Vh sont entièrement déterminées d'une manière unique par
leurs valeurs aux points xi (i = 1, . . . , N ).
Il s'en suit que vh = ω .
c'est-à-dire :
XN
vh (x) = vh (xj ) ϕj (x)
j=1
a x i−1 xi x i+1 b
26
Il sut d'écrire
sur chaque [xj , xj+1 ]
ϕi (x) = αx + β
1 si i = j
x 0=a ϕi (xj ) = δij = x N =b
0 si i 6= j
On obtient facilement
si x ≤ xi−1 ou x ≥ xi+1
0
x − xi−1
ϕi (x) = si xi−1 ≤ x ≤ xi
h
xi+1 − x
si xi ≤ x ≤ xi+1
h
on a : Z b
aij = ϕ0i (x) ϕ0j (x) dx
a
Comme le support de la fonction de base ϕi , qui est l'ensemble des points où ϕi n'est pas
nulle, est égal à [xi−1 , xi+1 ]
alors on a :
aij = 0 si j ≤ i − 2 ou j ≥ i + 2 c'est-à-dire si |i − j| ≥ 2
Pour déterminer la matrice A, il reste donc à évaluer les termes aii , ai i+1 , ai−1 i . Cette
matrice A est donc tridiagonale.
Z b
aii = ϕ0i (x) ϕ0i (x) dx
Za xi+1
= ϕ02
i (x) dx
xi−1
Z xi Z xi+1
1 1 1 1
= · dx + (− ) (− ) dx
xi−1 h h xi h h
1 1
= 2 · h+ 2 h
h h
2
=
h
Z b
ai i+1 = ϕ0i (x) ϕ0i+1 (x) dx
Za xi+1
1 1 1
= (− ) . dx = − 2 . h
xi h h h
1
= −
h
27
Z b
ai−1 i = ϕ0i−1 (x) ϕ0i (x) dx
Za xi
1 1
= (− ) . dx
xi−1 h h
1
= −
h
La matrice de rigidité A du système est tridiagonale et s'écrit :
2 −1 0 ... 0
−1 2 −1 0 ... 0
0 −1 2 −1 0 . . . 0
1 0
A=
h .. .. . . . . . . . .
. . . . . .
0
.
. . −1 2 −1
0 0 . . . 0 −1 2
(Dans notre cas par exemple H(ϕi , ϕj ) = ϕ0i (x) ϕ0j (x))
Les aij peuvent être calculés en sommant sur chaque élément [xk , xk+1 ] du maillage, c'est-
à-dire :
XN Z xk+1
aij = H(ϕi , ϕj ) dx
k=0 xk
XN
(k)
= aij (2.2)
k=0
Une manière assez simple mais très coûteuse de déterminer la matrice A, est de calculer
chaque coecient aij en utilisant (2.2), par l'algorithme :
pour i = 1 à N faire
←− Boucles sur les n÷uds
pour j = 1 à N faire
aij = 0
pour k = 0 à N faire ←− Boucle sur les éléments
(k)
calculer aij
(k)
aij = aij + aij
Fin pour
Fin pour
Fin pour
28
(k)
Cet algorithme nécessite un nombre de calcul des aij de l'ordre de N 2 × (N + 1). Si le
nombre de n÷uds N = 100 =⇒ ' 106 calcul.
(k)
Toutefois, l'algorithme tel qu'il est écrit ci-dessus calcule une grande perte des aij qui
(k)
sont nuls. Or les aij sont nuls si et seulement si les n÷uds i et j appartiennent à l'élément
k.
Une manière plus simple et moins coûteuse est de boucler sur les éléments k (ici les
(k)
segments) pour ne calculer que les termes aij utiles, mettre ces termes dans des matrices
de rigidité élémentaire associées à chaque élément k , puis procéder à l'assemblage de ces
matrices élémentaires dans une matrice A globale.
x 0=a x1 x2 xN x N +1 =b
En pratique
On se place sur l'élément 0.
r1
x0 x1
Z x1 Z x1 2
(0) 1 1
On calcule a11 = ϕ01 (x)ϕ01 (x) dx = dx = .
x0 x0 h h
Et on a la matrice de rigidité élémentaire associée à l'élément 0 :
(0) 1
(a11 ) =
h
Dans la matrice globale, elle est vue comme suit :
(0)
a11 0 . . . 0 1 0 ... 0
1 0 0 . . . 0
0 0 . . . 0
A(0) = =
... ..
. .. h
.. .
.
0 0 ... 0 0 0 ... 0
Sur l'élément 1 :
29
ρ1 ρ2
x1 x2
r2 r3
x2 x3
30
(2) (2) (2) (2)
On calcule a22 , a23 , a32 , a33
=⇒ Matrice de rigidité élémentaire associée à l'élément 2 :
(2) (2)
a22 a23 1 −1
1
=
h
(2) (2)
a32 a33 −1 1
On obtient alors la matrice de rigidité globale en assemblant les matrices de rigidité dans
chaque élément, par :
N
X
A = A(k)
k=0
2 −1 0 0 ... 0
−1 2 −1 0 . . . 0
..
.
1 0 −1 2 −1
= . ..
.. . . . . . . . . .
h .
0 . . . 0 −1 2
Si la fonction f est simple alors ces intégrales peuvent être calculées d'une manière expli-
cite. Par contre si f a une forme compliquée alors le calcul de ces intégrales doit se faire
par une méthode numérique.
Z b
On utilise les méthodes dites de quadrature numérique qui consistent à approcher f (x) dx
a
par :
Z b Xn
f (x) dx ' ωi f (xi )
a i=0
où les xi sont des points de [a, b] distincts (ce ne sont pas les noeuds du maillage) et les
ωi sont les poids d'interpolation.
31
On commence par utiliser la formule de Chasles :
Z b n−1 Z
X xi+1
f (x) dx = f (x) dx
a i=0 xi
Rx
puis on évalue xii+1 f (x) dx sur chaque segment [xi , xi+1 ] en utilisant une des formules de
quadrature suivantes :
Z xi+1 Z b n−1
X
f (x) dx ' (xi+1 − xi ) f (xi ) =⇒ f (x) dx ' (xi+1 − xi ) f (xi )
xi a i=0
32
Z xi+1 Z b n−1
X
f (x) dx ' (xi+1 − xi ) f (xi+1 ) =⇒ f (x) dx ' (xi+1 − xi ) f (xi+1 )
xi a i=0
Ces deux formules sont sont exactes pour les fonctions f constantes.
Z xi+1 Z b n−1
xi + xi+1 X xi + xi+1
f (x) dx ' (xi+1 − xi ) f ( ) =⇒ f (x) dx ' (xi+1 − xi ) f ( )
xi 2 a i=0
2
Cette formule est exacte pour les polynômes de degré ≤ 1.
xi+1
xi+1 − xi
Z
f (x) dx ' ( ) (f (xi ) + f (xi+1 ))
xi | 2 {z }
33
Formule de Simpson
Cette formule utilise une interpolation P2 aux points xi , xi +x2 i+1 , xi+1 c'est-à-dire fait passer
un polynôme de degré 2 par les points (xi , f (xi )), xi +x2 i+1 , f ( xi +x2 i+1 ) et (xi+1 , f (xi+1 ))
La formule s'écrit :
Z xi+1
xi+1 − xi xi + xi+1
f (x) dx = ( ) f (xi ) + 4f ( ) + f (xi+1 )
xi 6 2
Cette formule est exacte pour les polynômes de degré ≤ 2.
Pour retrouver la formule de Simpson, il sut d'écrire :
Z xi+1 Z xi+1 xi+1
ax3 bx2
2
f (x) dx ' (ax + bx + c) dx = ( + + cx)
xi xi 3 2 xi
34
2.5.1 Méthodes directes
Méthode de Gauss
Cette méthode consiste à écrire la matrice A sous la forme :
Lower
A = LU
Upper
Étape 1 :
Mettre à 0 tous les coecients se trouvant sur la 1ère colonne à partie de la ligne 2 c'est-
à-dire pour i ≥ 2
(1)
(2) (1) ai1 (1)
aij = aij − (1) a1j pour j = 1, . . . , n
a11
(1)
(2) (1) ai1 (1)
bi = bi − (1) b1
a11
On obtient :
(1) (1) (1) (1)
a11 a12 . . . a1n b1
(2) (2) (2)
0 a22 ... a2n b2
(2)
A = b(2) =
(2) (2)
(2)
0 a32 . . . a3n b3
.. .. .. .. ..
. . . . .
(2) (2) (2)
0 an2 . . . ann bn
⇐⇒ A(2) X = b(2)
35
Étapes suivantes :
On répète le procédé sur les autres colonnes :
(k)
(k+1) (k) aik (k)
aij = aij − (k)
· akj
akk
(k)
(k+1) (k) aik (k)
bi = bi − (k)
· bk
akk
pour i = k + 1, . . . , n
j = k, . . . , n
36
n
1 X
x1 = (b1 − a1j xj )
a11
j=2
n
1
X
x2 = a (b2 −
a2j xj )
22
⇐⇒ j=1
j6=2
.
..
n−1
1
X
(bn −
x = anj xj )
n
ann j=1
Méthode de Jacobi
1. Initialisation du vecteur
(0)
x1
(0)
X (0) = x2
..
.
(0)
xn
2. Si on appelle X (k) le vecteur à l'itération k , alors le vecteur X (k+1) à l'itération
(k + 1) est obtenu par :
n
(k+1) 1 X (k)
(b1 −
x1 = a1j xj )
a11 j=2
..
.
n
(k+1) 1 X (k)
xi
= (bi − aij xj )
aii
j=1,j6=i
Méthode de Gauss-Seidel
1. Initialisation du vecteur
(0)
x1
(0)
X (0) x2
=
.
.
.
(0)
xn
(k+1)
2. Dans le procédé de Gauss-Seidel, une fois une valeur xi à l'itération (k + 1) est
calculée, on l'utilise pour calculer les autres valeurs à la même itération.
37
L'algorithme s'écrit :
pour i = 1, . . . n
i−1 n
(k+1) 1 X (k+1)
X (k)
xi = (bi − aij xj − aij xj )
aii j=1 j=i+1
n pour
Remarque 2.5.1 Si la matrice A est à diagonale strictement dominante, alors ces mé-
thodes itératives convergent quelque soit le choix du vecteur initial X (0) .
Une matrice A est à diagonale dominante si :
n
X
|aii | ≥ |aij | ∀ i(1 ≤ i ≤ n)
j=1
j6=i
38
2.6.1 Formulation variationnelle
On multiplie par une fonction v assez régulière et on intègre sur [a, b] :
Z b Z b Z b
00
−u v dx + uv dx = f v dx
a a a
soit Z b Z b Z b
0 0
u v dx + uv dx = f v dx + βv(b) − αv(a)
a a a
Le problème variationnel s'écrit alors :
Trouver u ∈ H 1 ([a, b])/
(Q)
a(u, v) = L(v) ∀v ∈ H 1 ([a, b])
avec Z b Z b
0 0
a(u, v) = u v dx + uv dx
a a
Z b
L(v) = f v dx + βv(b) − αv(a)
a
x 0=a x1 x2 xN x N +1 =b
b−a
∆x = ; xi = xi−1 + ∆x
N +1
= a + i ∆x (i = 0, . . . , N + 1)
On introduit l'espace d'approximation Vh (Eléments nis P1 ) par :
Vh = vh : [a, b] → R ; vh ∈ C 0 ([a, b])/vh |[xi ,xi+1 ] ∈ P1 ∀ i = 0, . . . , N
39
2.6.3 Fonctions de base de Vh
De la même manière que précédemment, on montre que :
dim Vh = N + 2 (ni)
1 si i = j
ϕi (xj ) =
0 sinon
ϕ0 :
x 0=a x1 x2 xN x N +1 =b
ϕi (1 ≤ i ≤ N ) :
ϕN +1 :
x 0=a x1 x2 xN x N +1 =b
Trouver uh ∈ Vh /
Z b Z b Z b
0 0
(Qh ) uh vh dx + uh vh dx = f vh dx + βvh (b) − αvh (a) ∀ vh ∈ Vh
a a a
| {z } | {z }
a(uh ,vh ) L(vh )
40
et en exprimant le fait que le problème discret (Qh ) serait vrai pour tous les vh ∈ Vh si et
seulement si il l'est pour toutes les fonctions de base ϕj (j = 0, . . . , N + 1), le problème
variationnel discret s'écrit alors :
Trouver U = (u0 , u1 , . . . , uN +1 ) /
t
NX+1
ui a(ϕi , ϕj ) = L(ϕj ) ∀ j = 0, . . . , N + 1
i=0
ou encore :
AU = b qui est un système linéaire (N + 2) × (N + 2)
La matrice A = (aij ) 0≤i,j≤N +1 s'écrit :
Z b Z b
0 0
aij = a(ϕi , ϕj ) = ϕi (x)ϕj (x) dx + ϕi (x)ϕj (x) dx
|a } |a
matrice de rigidité Matrice de masse
{z {z }
Réponse
On va procéder ici par assemblage :
On a : Z b Z b
0 0
aij = ϕi (x)ϕj (x) dx + ϕi (x)ϕj (x) dx
a a
x 0=a x1 x2 xN x N +1 =b
41
On se place sur l'élément 0 :
ρ0 ρ1
x0 x1
(0) (0)
a00 a01
=⇒ La matrice sur l'élément 0 est :
(0) (0)
a11 a10
Z x1 Z x1
(0) 0 0
a00 = ϕ0 (x)ϕ0 (x) dx + ϕ0 (x)ϕ0 (x) dx
x0 x0
2
Z x1 Z x1 2
1 x1 − x
= − dx + dx
x0 h x0 h
x
(x1 − x)3 1
1 1
= + −
h h2 3 x0
1 h
= +
h 3
Z x1 Z x1
(0)
a01 = ϕ00 (x)ϕ01 (x) dx + ϕ0 (x)ϕ1 (x) dx
Zx0x1 Z x1 x0
1 1 x 1 − x x − x0
= − dx + . dx
x0 hh x0 h h
Z x1
1 1
= − + 2 (x1 − x)(x − x0 ) dx
h h x0
Z x1
1 1
= − + 2 (x1 − x0 + x0 − x)(x − x0 ) dx
h h x0
( x x )
(x − x0 )2 1 (x − x0 )3 1
1 1
= − + 2 (x1 − x0 ) −
h h 2 x0 3 x0
3 3
1 1 h h
= − + 2 −
h h 2 3
1 h
= − +
h 6
Z x1 Z x1
(0)
a10 = ϕ01 (x)ϕ00 (x) dx
+ ϕ1 (x)ϕ0 (x) dx
x0 x0
x1 Z x1
x − x0 x1 − x
Z
1 1
= − dx + . dx
x0 h h x0 h h
1 h
= − +
h 6
42
Z x1 Z x1
(0)
a11 = ϕ01 (x)ϕ01 (x) dx + ϕ21 (x) dx
x0 x0
2
x1 Z x1 2
x − x0
Z
1
= dx + dx
x0 h x0 h
x
1 (x − x0 )3 1
1
= +
h h2 3 x0
1 h
= +
h 3
x1 x2
(1) (1)
a11 a12
=⇒ La matrice sur l'élément 1 est :
(1) (1)
a21 a22
Z x2 Z x1
(1)
a11 = ϕ01 (x)ϕ01 (x) dx + ϕ1 (x)ϕ1 (x) dx
x1 x1
Z x2
2 Z x2 2
1 x2 − x
= − dx + dx
x1 h x1 h
x
(x2 − x)3 2
1 1
= + −
h h2 3 x1
1 h
= +
h 3
43
Z x2 Z x1
(1)
a12 = ϕ01 (x)ϕ02 (x) dx + ϕ1 (x)ϕ2 (x) dx
Zx1x2 x2
x1
x2 − x x − x1
Z
1 1
= − dx + . dx
x1 hh x1 h h
1 h
= − +
h 6
(1) 1 h
a21 = − +
h 6
(1) 1 h
a22 = +
h 3
La matrice de l'élément 1 est :
1 h
− h1 + h
h
+ 3 6
− h1 + h
6
1
h
+ h
3
0 ··· ··· 0 − h + h6 h1 + h3
1
44
2.7 Approximation éléments nis P2
Reprenons l'exemple de l'équation de poisson (1D) avec CL de Dirichlet :
−u00 = f dans ]a, b[
(P )
u(a) = u(b) = 0
Nous allons choisir une approximation d'ordre plus élevé que celle P1 .
Considérons alors le sous-espace d'approximation Vh :
Vh = vh ∈ C 0 ([a, b])/vh |[xi ,xi+1 ] ∈ P2 ∀ i = 0, . . . , N et vh (a) = vh (b) = 0
Dans la MEF P1 , les fonctions vh étaient supposées anes sur chaque [xi , xi+1 ], et donc
il susait de connaître les valeurs en xi et xi+1 pour déterminer vh sur [xi , xi+1 ].
Dans la MEF P2 , pour déterminer vh sur [xi , xi+1 ] on doit avoir la valeur de vh en 3 points
de l'intervalle [xi , xi+1 ].
On introduit alors un point milieu de [xi , xi+1 ] noté xi+1/2 :
xi + xi+1 h
xi+1/2 = = xi + ∀ i = 0, . . . , N
2 2
Dénition 2.7.1 Le triplet formé par ([xi , xi+1 ], P2 , {xi , xi+1/2 , xi+1 }) est appelé élément
ni.
[xi , xi+1 ] : l'élément.
P2 : le type d'interpolation.
{xi , xi+1/2 , xi+1 } : les n÷uds constituant les degrés de liberté.
Fonctions de base
Comme pour la MEF P1 , nous allons choisir des fonctions de base (ϕ1/2 , ϕ1 , ϕ3/2 , ϕ2 , . . . , ϕN , ϕN +1/2 )
telles que :
ϕi (xj ) = δij
ϕi+1/2 (xj+1/2 ) = δij
ϕi , ϕi+1/2 ∈ C 0 ([a, b])
x 0=a x 1/ 2 x1 x 3 /2 x2 xN x N +1 / 2 x N +1 =b
Pour ce choix de fonctions de base, on parle d'éléments nis de Lagrange, et on dira que
l'élément ni ([xi , xi+1 ], P2 , {xi , xi+1/2 , xi+1 }) est un élément ni de Lagrange.
45
Théorème 2.7.1
dim Vh = N + N + 1 = 2N + 1
et la base éléments nis de Vh est donnée par :
(ϕ1/2 , ϕ1 , ϕ3/2 , ϕ2 , . . . , ϕN , ϕN +1/2 )
avec
2 (x − xi−1 )(x − xi−1/2 )
si
xi−1 ≤ x ≤ xi
h2
ϕi (x) = 2 (xi+1 − x)(xi+1/2 − x)
si xi ≤ x ≤ xi+1
h2
ailleurs
0
et
4 (xi+1 − x)(x − xi )
ϕi+1/2 (x) = si xi ≤ x ≤ xi+1
h2
0 ailleurs
1 1
Trouver uh ∈ Vh /
(Qh )
a(uh , vh ) = L(vh ) ∀ vh ∈ V h
avec
Z b
a(uh , vh ) = u0h (x) vh0 (x) dx
a
Z b
L(vh ) = f (x) vh (x) dx
a
46
En exprimant le fait que le problème variationnel discret est vrai si et seulement si il l'est
pour toutes les fonctions de base (ϕj/2 ) 0≤j≤2N +1 , ce problème discret s'écrit :
AU = b
Élément 0 Élément N
x 0=a x 1/ 2 x1 x 3 /2 x2 xN x N +1 / 2 x N +1 =b
47
Calcul de la matrice de rigidité A par assemblage
Z b
A = (aij ) 1≤i,j≤2N +1 avec aij = ϕ0i/2 (x) ϕ0j/2 (x) dx
a
ρ1 / 2 ρ1
x0 x 1/ 2 x1
(0) (0)
a11 a12
on calcule
(0) (0)
a21 a22
Z x1 Z x1
(0) (0)
a11 = ϕ01/2 (x) ϕ01/2 (x) dx ; a12 = ϕ01/2 (x) ϕ01 (x) dx
Zx0x1 Zx0x1
(0) (0)
a21 = ϕ01 (x) ϕ01/2 (x) dx ; a22 = ϕ01 (x) ϕ01 (x) dx
x0 x0
ρ1 ρ3/ 2 ρ2
x1 x 3 /2 x2
48
(1) (1) (1)
a22 a23 a24
on calcule a32 a33 a34
(1) (1) (1)
(1) (1) (1)
a42 a43 a44
Z x2 Z x2
(1) 0 0 (1)
a22 = ϕ1 (x) ϕ1 (x) dx ; a23 = ϕ01 (x) ϕ03/2 (x) dx
x1 x1
..
.
Z x2 Z x2
(1) (1)
a42 = ϕ02 (x) ϕ01 (x) dx ; a43 = ϕ02 (x) ϕ03/2 (x) dx
x1 x1
0 ··· 0
En récapitulatif
La résolution d'une EDP ou EDO par la méthode des éléments nis consiste à :
1. Écrire la formulation variationnelle continue.
2. Choisir un maillage du domaine de calcul, puis dénir un espace d'approximation
Vh selon le type d'éléments nis (P1 ou P2 ).
3. Écrire le problème variationnel approché =⇒ Système linéaire A U = b.
4. Calcul de la matrice A et le second membre b du système linéaire.
5. Résolution du système linéaire A U = b.
Le vecteur inconnu U est constitué par les degrés de liberté.
6. Représenter graphiquement la fonction U c'est-à-dire les ui en fonction des xi .
49
2.8 Méthode des Eléments Finis en dimension 2
Soit Ω un domaine régulier en 2D.
On note par ∂Ω la frontière de Ω et n la normale unitaire extérieure à ∂Ω.
Ω
On veut utiliser la méthode des éléments nis pour approximer la solution du problème
aux limites suivant :
−∆u(x, y) + c(x, y) u(x, y) = f (x, y) pour (x, y) ∈ Ω̊
(P )
u(x, y) = 0 pour (x, y) ∈ ∂Ω
Ces intégrales ont un sens dès lors que l'on prend u, v ∈ H01 (Ω). Le problème variationnel
s'écrit alors :
L(v) = f v dxdy
Ω
50
2.8.2 Formulation variationnelle discrète
Maillage de Ω :
An de construire un espace d'approximation de dimension nie, on commence tout
d'abord par réaliser un maillage de Ω à l'aide de triangles Ki . On peut aussi utiliser des
rectangles ou même des éléments mixtes "triangles-rectangles". Ces éléments Ki doivent
constituer un "recouvrement" de Ω, c'est-à-dire
Ne
[
Ω̄ = Ki
i=1
i,j+1
i,j+1
i-1,j i+1,j i-1,j i,j i+1,j
i,j
i,j-1 i,j-1
2 8 Matrice de connexion
Eléments Noeuds
4
7 3 1 4 3 6
6
5 2 1 6 5
1
6 3 7 1 5
2
5
. . . .
3 4 . . . .
7 1
51
Figure 2.3 Maillages conformes (à gauche), maillages non conformes (à droite).
(H2 ) : Les éléments du maillage doivent être susament réguliers. S'il s'agit de triangles
par exemple, cela signie qu'ils doivent être les plus proches de l'équilatéralité ou du moins
ne pas avoir d'angles trop grands. Rappelons que la plupart des schémas numériques dé-
diés pour le traitement de la diusion dans les équations de Navier-Stokes nécessitent des
conditions assez restrictives sur les angles des triangles.
P1 = p : R 2 → R ; p(x, y) = α + βx + γy .
Proposition
Soit K un triangle non dégénéré de sommets A1 , A2 , A3 (c.a.d A1 , A2 et A3 ne sont pas
alignés).
Il existe un unique polynôme p ∈ P1 prenant des valeurs xées aux sommets de K .
Preuve :
A1(x1 ,y1)
A2(x2 ,y2)
A3(x3 ,y3)
52
Notons par f1 , f2 , f3 les valeurs prises par p anx n÷uds A1 , A2 , A3 .
p(x1 , y1 ) = f1 α + βx1 + γy1 = f1
p(x2 , y2 ) = f2 ⇐⇒ α + βx2 + γy2 = f2
p(x3 , y3 ) = f3 α + βx3 + γy3 = f3
1 x1 y 1
∆= 1 x2 y 2 = det(K)
1 x3 y 3
| det(K)|
S(K) =
2
et comme le triangle K est supposé non dégénéré alors
S(K) 6= 0
Donc ∆ 6= 0
Par conséquent, le système admet une solution unique α, β, γ . D'ou l'existence et l'unicité
du polynôme p ∈ P1 .
Espace d'approximation Vh :
On considere Vh comme suit (E.F P1 ) :
n o
Vh = vh ∈ C (Ω)/ vh|Ki ∈ P1 ; ∀ i = 1, . . . , Ne et vh = 0 sur ∂Ω
0
Base de Vh :
Pour construire une base de Vh , nous allons procéder comme dans le cas 1D.
Notons par :
NS le nombre de sommets du maillage.
NSint le nombre de sommets internes du maillage (c.a.d non situés sur ∂Ω).
Proposition :
La famille (ϕ1 , ϕ2 , . . . , ϕNSint ) est une base de Vh .
53
1
ji
Ai
uh (x, y) = ui ϕi (x, y)
i=1
Trouver u1 , u2 , . . . , uNSint /
NSint
(Qh ) X
ui a (ϕi , ϕj ) = L (ϕj ) ∀ j = 1, . . . , NSint
i=1
ou encore : AU = b
avec :
• A = (aij )1≤i,j≤NSint
ZZ ZZ
aij = a (ϕi , ϕj ) = ∇ϕi · ∇ϕj dxdy + c ϕi ϕj dxdy
Ω Ω
X Z Z ZZ
= ∇ϕi · ∇ϕj dxdy + c ϕi ϕj dxdy
K∈Th K K
• b = (bj )1≤j≤NSint
ZZ
bj = f ϕj dxdy
Ω ZZ
X
= f ϕi dxdy
K∈Th K
Les intégrales intervenants dans le second membre b sont généralement évaluées numéri-
quement par des formules de quadratures, par exemple celles de Gauss.
54