0% ont trouvé ce document utile (0 vote)
217 vues6 pages

Résolution d'une EDP par éléments finis

Le document présente un travail d'introduction aux éléments finis en MATLAB pour résoudre l'équation différentielle dans le domaine [0, 3]. Il décrit la discrétisation du domaine, l'interpolation des fonctions, et l'établissement des matrices élémentaires nécessaires pour formuler le problème sous forme intégrale. Enfin, il conclut avec la formulation d'un système d'équations linéaires pour la solution approchée.

Transféré par

bxjb9xmxgv
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
217 vues6 pages

Résolution d'une EDP par éléments finis

Le document présente un travail d'introduction aux éléments finis en MATLAB pour résoudre l'équation différentielle dans le domaine [0, 3]. Il décrit la discrétisation du domaine, l'interpolation des fonctions, et l'établissement des matrices élémentaires nécessaires pour formuler le problème sous forme intégrale. Enfin, il conclut avec la formulation d'un système d'équations linéaires pour la solution approchée.

Transféré par

bxjb9xmxgv
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MUJINGA MALOJI ANAÏS

L3 G.C

TRAVAIL D’INTRODUCTION AUX ÉLÉMENTS FINS

QUESTION

Ecrire un programme MATLAB d’éléments finis qui permet de résoudre dans le domaine [0, 3]
l’équation : 𝑑𝑢⁄𝑑𝑥 + (2𝑥 − 1)𝑢 = 0 avec 𝑢(0) =1. Comparer avec la solution exacte : 𝑢𝑒 = 𝑒 𝑥−𝑥 .
2

RÉSOLUTION

 = 0, 3 est un domaine de dimension 1 ; sa frontière  se réduit à deux points : 0 et 3.

Discrétisation du domaine

𝟑−𝟎
Le domaine  est divisé en 4 éléments de taille 𝟒
= 𝟎. 𝟕𝟓. Chaque élément contient deux nœuds sur

lesquelles la fonction u est interpolée.

x=0 x = 0.75 x = 1.5 x = 2.25 x=3

TABLEAU DE CONNECTIVITÉS DES ÉLÉMENTS ET TABLEAU DES COORDONNÉES DES NŒUDS

La division du domaine  en plusieurs éléments est appelée maillage. On utilise deux tableaux pour la
description du maillage : tableau de connectivités des éléments et tableau des coordonnées des nœuds.
Pour cet exercice, on obtient les deux tableaux comme suit :

Tableau des connectivités Tableau des coordonnées


Elément Nœud 1 (début) Nœud 2 (fin) Nœud Coordonnée (x)
1 1 2 1 0.00
2 2 3 2 0.75
3 3 4
3 1.50
4 4 5
4 2.25
5 3.00

Voici les commandes MATLAB qui permettent d’obtenir les deux tableaux :
Discrétisation et interpolation sur l’élément

On peut interpoler la fonction 𝑢 recherchée dans un élément par un polynôme. L’ordre du polynôme
conditionne la précision de la solution approchée. Pour un élément à deux nœuds on peut prendre :

𝑢 = 𝑎0 + 𝑎1 𝑥

Soit sous forme vectorielle :


𝑎0
𝑢 =< 1 𝑥 > { } ≡ 𝑢 = 𝑝 𝑎𝑛
𝑎1
Avec 𝒑 vecteur ligne contenant les monômes 𝑥 𝑛

𝒂𝒏 Vecteur colonne contenant les facteurs du polynôme.

Pour utiliser les valeurs de u aux nœuds on cherche une interpolation en fonction de 𝑢1 et 𝑢2 .
L’interpolation polynomiale aux nœuds s’écrit :

𝑢1 1 𝑥1 𝑎0
{ }=[ ] { } ≡ 𝑢𝑛 = 𝑃𝑛 𝑎𝑛
𝑢2 1 𝑥2 𝑎1

L’inverse de ce système d’équations donne les paramètres 𝑎𝑛 .

𝑎0 1 𝑥 −𝑥1 𝑢1
𝑎𝑛 = 𝑃𝑛 −1 𝑈𝑛 ≡ { }= [ 2 ]{ }
𝑎1 𝑥2 − 𝑥1 −1 1 𝑢2

En remplaçant les 𝑎𝑛 on peut maintenant approcher la fonction 𝑢 par :

1 𝑥 −𝑥1 𝑢1 𝑥2 − 𝑥 𝑥 − 𝑥1 𝑢1
𝑢 = 〈1 𝑥〉 [ 2 ]{ } = 〈 〉{ }
𝑥2 − 𝑥1 −1 1 𝑢2 𝑥2 − 𝑥1 𝑥2 − 𝑥1 𝑢2
𝑢 = 𝑁 𝑈𝑛

Avec N est un vecteur ligne contenant des fonctions de 𝑥 appelées fonctions de forme.

Propriétés des fonctions de forme

• Elles prennent la valeur unité aux nœuds de même indice et la valeur nulle aux autres nœuds :
𝑥2 − 𝑥 1 𝑥 = 𝑥1 𝑥 − 𝑥1 1 𝑥 = 𝑥2
𝑁1 (𝑥) = ={ ; 𝑁2 (𝑥) = ={
𝑥2 − 𝑥1 0 𝑥 = 𝑥2 𝑥2 − 𝑥1 0 𝑥 = 𝑥1

• Leur somme est égale à l’unité sur tout l’intervalle de l’élément :

𝑁1 (𝑥) + 𝑁2 (𝑥) = 1 ∀ 𝑥 ∈ [𝑥2 ; 𝑥1 ]

Matrices élémentaires

Ecrivons le problème sous forme intégrale :

𝑑𝑢
∫ 𝛿𝑢 [ + 2𝑥(𝑢 − 1)] 𝑑𝛺 = 0
𝛺 𝑑𝑥

Avec 𝛿𝑢 est une fonction de pondération prise égale à une perturbation de la fonction inconnue 𝑢.

Le domaine 𝛺 comprend l’intervalle 0 à 3, 𝑑𝛺 = 𝑑𝑥 et avec l’interpolation nodale on a :

𝑑𝑢 𝑑𝑁
= 𝑈 ; 𝛿𝑢 = 𝑁 𝛿𝑈𝑛 Puisque seules les fonctions 𝑁 dépendent de 𝑥 et les perturbations
𝑑𝑥 𝑑𝑥 𝑛

ne touchent que les valeurs de 𝑢.

Pour commodité on écrit : 𝛿𝑢 = (𝛿𝑈𝑛 )𝑇 𝑁 𝑇

L’intégrale de 0 à 3 peut être remplacée par la somme des intégrales de 𝑥𝑖 à 𝑥𝑖+1 :

3 𝑥𝑖+1 𝑥2
∫ ∑ ∫ = ∑ ∫
0 𝑖=1,𝑛 𝑥𝑖 𝑖=1,𝑛 𝑥1

La forme intégrale de l’équation différentielle devient alors pour chaque élément :

𝑥2
𝑑𝑢
∫ (𝛿𝑢 + 𝛿𝑢(2𝑥)𝑢 − 𝛿𝑢 𝑢) 𝑑Ω = 0
𝑥1 𝑑𝑥

𝑥2 𝑥2 𝑥2
𝑑𝑢
 ∫ [𝛿𝑢 ] 𝑑𝑥 + ∫ [𝛿𝑢(2𝑥)𝑢]𝑑𝑥 − ∫ [𝛿𝑢 𝑢] 𝑑𝑥 = 0
𝑥1 𝑑𝑥 𝑥1 𝑥1

𝑥2 𝑥2 𝑥2
𝑑𝑁
 ∫ [𝑁𝛿𝑈𝑛 𝑈 ] 𝑑𝑥 + ∫ [𝑁𝛿𝑈𝑛 (2𝑥)𝑢] 𝑑𝑥 − ∫ [𝑁𝛿𝑈𝑛 𝑢] 𝑑𝑥 = 0
𝑥1 𝑑𝑥 𝑛 𝑥1 𝑥1

𝑥2 𝑥2 𝑥2
𝑑𝑁
 ∫ [𝛿𝑈𝑛𝑇 𝑁 𝑇 𝑈𝑛 ] 𝑑𝑥 + ∫ [𝛿𝑈𝑛𝑇 𝑁 𝑇 (2𝑥)𝑁𝑈𝑛 ]𝑑𝑥 − ∫ [𝛿𝑈𝑛𝑇 𝑁 𝑇 ]𝑑𝑥 = 0
𝑥1 𝑑𝑥 𝑥1 𝑥1

Cette écriture discrétisée est valable pour tous les types d’éléments. Dans le cas particulier d’un élément
linéaire à deux nœuds, elle s’écrit comme suit :

𝑥2
𝑁1 𝑢
 < 𝛿𝑢1 𝛿𝑢2 > ∫ { } < 𝑑𝑁1 𝑑𝑁2 > 𝑑𝑥 {𝑢1 } +
𝑥1
𝑁2 2
𝑥2
𝑁 𝑢
< 𝛿𝑢1 𝛿𝑢2 > ∫ { 1 } 2𝑥 < 𝑁1 𝑁2 > 𝑑𝑥 {𝑢1 } −
𝑥
𝑁2 2
1

𝑥2
𝑁 𝑢1
< 𝛿𝑢1 𝛿𝑢2 > ∫ { 1 } < 𝑁1 𝑁2 > 𝑑𝑥 {𝑢 } = 0
𝑥
𝑁2 2
1

Finalement l’équation intégrale discrétisée se met sous la forme matricielle comme suit:
𝑥2 𝑥2 𝑥2
𝑁 𝑁 𝑁 𝑢
(∫ { 1 } < 𝑑𝑁1 𝑑𝑁2 > 𝑑𝑥 + ∫ { 1 } 2𝑥 < 𝑁1 𝑁2 > 𝑑𝑥 − ∫ { 1 } < 𝑁1 𝑁2 > 𝑑𝑥) {𝑢1 } = 0
𝑥
𝑁2 𝑥
𝑁2 𝑥
𝑁2 2
1 1 1

𝑥 𝑁1 𝑑𝑁1 𝑁1 𝑑𝑁2 𝑥 𝑁 2𝑥𝑁1 𝑁1 2𝑥𝑁2 𝑥 𝑁 𝑁 𝑁1 𝑁2 𝑢1


 (∫𝑥 2 [ ] 𝑑𝑥 + ∫𝑥 2 [ 1 ] 𝑑𝑥 − ∫𝑥 2 [ 1 1 ] 𝑑𝑥) {𝑢 } = 0 :
1 𝑁2 𝑑𝑁1 𝑁2 𝑑𝑁2 1 𝑁2 2𝑥𝑁1 𝑁2 2𝑥𝑁2 1 𝑁2 𝑁1 𝑁2 𝑁2 2

Système d’équations linéaires Ke Ue = Fe

Dans cette équation différentielle 𝐾 est la somme de deux matrices : 𝐾𝑒 = 𝐾𝑒1 + 𝐾𝑒2 tel que :

𝑥 − 𝑥2 1 𝑥 − 𝑥2 1
𝑥2 ( ) ( )
𝑥1 − 𝑥2 𝑥1 − 𝑥2 𝑥1 − 𝑥2 𝑥2 − 𝑥1 1 −1 1
𝐾𝑒1 = ∫ 𝑑𝑥 = [ ]
𝑥1 (
𝑥 − 𝑥1 1 𝑥 − 𝑥1 1 2 −1 1
) ( )
[ 𝑥2 − 𝑥1 𝑥1 − 𝑥2 𝑥2 − 𝑥1 𝑥2 − 𝑥1 ]

𝑥 − 𝑥2 𝑥 − 𝑥2 𝑥 − 𝑥2 𝑥 − 𝑥1 𝑥 − 𝑥2 2 𝑥 − 𝑥2 𝑥 − 𝑥1
( 𝑥2 2𝑥 ) ( 2𝑥 ) 𝑥2 ( ) ( )
𝑥1 − 𝑥2 𝑥1 − 𝑥2 𝑥1 − 𝑥2 𝑥2 − 𝑥1 𝑥1 − 𝑥2 𝑥1 − 𝑥2 𝑥2 − 𝑥1
𝐾𝑒2 = ∫ [ 𝑥 − 𝑥 𝑥 − 𝑥2 𝑥 − 𝑥1 𝑥 − 𝑥1 ] 𝑑𝑥 − ∫
𝑥1 (
1 𝑥 − 𝑥1 𝑥 − 𝑥2 𝑥 − 𝑥1 2
2𝑥 ) ( 2𝑥 ) 𝑥1
( ) ( )
𝑥2 − 𝑥1 𝑥1 − 𝑥2 𝑥2 − 𝑥1 𝑥2 − 𝑥1 [ 𝑥2 − 𝑥1 𝑥1 − 𝑥2 𝑥2 − 𝑥1 ]

𝑥2 − 𝑥1 3𝑥1 + 𝑥2 𝑥1 + 𝑥2 𝑥2 − 𝑥1 1 1⁄2
= [ ]− [ ]
6 𝑥1 + 𝑥2 𝑥1 + 3𝑥2 3 1⁄
2 1

0
𝐹𝑒 = [ ]
0

Il nous faudrait utiliser le logiciel MATLAB pour intégrer analytiquement les matrices élémentaires,

ASSEMBLAGE
Le calcul des matrices élémentaires permet d’obtenir pour les quatre éléments les systèmes d’équations
élémentaires suivants :

1 : 𝒙𝟏 = 𝟎 𝒆𝒕 𝒙𝟐 = 𝟎. 𝟕𝟓
3 3 1 1 1
(1) 1 −1 1 (1) 3 1 1 (1) 1 1
𝐾𝑒1 = [
2 −1
] ; 𝐾𝑒2 = [32
3
32
9] = [ ] ; 𝐾𝑒3 = [41 8
1] = [
4 1
2
]
1 32 1 3 1
32 32 8 4 2

0
𝐹𝑒 (1) = { }
0
2 : 𝒙𝟏 = 𝟎. 𝟕𝟓 𝒆𝒕 𝒙𝟐 = 𝟏. 𝟓
15 9 1 1 1
(2) 1 −1 1 (2) 3 5 3 (2) 1 1
𝐾𝑒1 = [
2 −1
] ; 𝐾𝑒2 = [32
9
32
21] = [ ] ; 𝐾𝑒3 = [41 8
1] = [
4 1
2
]
1 32 3 7 1
32 32 8 4 2

0
𝐹𝑒 (2) = { }
0
3: 𝒙𝟏 = 𝟏. 𝟓 𝒆𝒕 𝒙𝟐 = 𝟐. 𝟐𝟓
27 15 1 1 1
(3) 1 −1 1 (3) 3 9 3 (3) 1 1
𝐾𝑒1 = [
2 −1
] ; 𝐾𝑒2 = [32
15
32
15] = [ ] ; 𝐾𝑒3 = [41 8
1] = [
4 1
2
]
1 32 5 11 1
32 32 8 4 2

0
𝐹𝑒 (3) = { }
0
4: 𝒙𝟏 = 𝟐. 𝟐𝟓 𝒆𝒕 𝒙𝟐 = 𝟑
39 21 1 1 1
(4) 1 −1 1 (4) 3 9 3 (4) 1 1
𝐾𝑒1 = [
2 −1
] ; 𝐾𝑒2 = [32
21
32
45] = [ ] ; 𝐾𝑒3 = [41 8
1] = [
4 1
2
]
1 32 5 11 1
32 32 8 4 2

0
𝐹𝑒 (4) = { }
0
En réécrivant les systèmes élémentaires en fonction de toutes les composantes de U on obtient :
−21 15 0 0 0 𝑢1 0
−17 17 0 0 0 𝑢 2 0
1
1 32 0 0 0 0 0 𝑢3 = 0
0 0 0 0 0 𝑢4 0
[ 0 0 0 0 0] {𝑢5 } {0}

0 0 0 0 0 𝑢1 0
0 −9 21 0 0 𝑢2 0
1
2 32 0 −11 29 0 0 𝑢3 = 0
0 0 0 0 0 𝑢4 0
[0 0 0 0 0] {𝑢5 } {0}
0 0 0 0 0 𝑢1 0
0 0 0 0 0 𝑢 2 0
1
3: 32 0 0 3 27 0 𝑢3 = 0
0 0 −5 41 0 𝑢4 0
[0 0 0 0 0] {𝑢5 } {0}
0 0 0 0 0 𝑢1 0
0 0 0 0 0 𝑢2 0
1
4: 32 0 0 0 0 0 𝑢3 = 0
0 0 0 15 33 𝑢4 0
[0 0 0 ] 𝑢
1 53 { 5 } {0}

En prenant ensuite la somme des intégrales, le système global s’écrit:

−21 15 0 0 0 𝑢1 0
−17 8 21 0 0 𝑢 2 0
1
0 −11 32 27 0 𝑢3 = 0 = 𝐾 𝑈 = 𝐹
32
0 0 −5 56 33 𝑢4 0
[ 0 0 0 1 53] {𝑢5 } {0}

Vous aimerez peut-être aussi