Vous êtes sur la page 1sur 20

Université Hassan II - Casablanca -École Nationale Supérieure d’Arts et

Métiers, ENSAM-Casablanca

Projet 1 :
MEF
Réalisé par : MOUTAOUAKKIL Salma Et Kadari Fatima-Zahra

Année : 2015/2016
MEF [PROJET 1 :]

Table des matières :


I. Introduction ……………………………………………………………………………………………………….……3
II. Position du problème ………………………………………………………………………………….…….….. 3
1. Aspect physique …………………………………………………………………………………………………………… …....4
2. Aspect mathématique …………………………………………………………………………………………….……………5
III. Problème discret ………………………………………………………………………………………………..……8
1. Formulation discrète……………………………………………………………………………………………………….……9
2. Système linéaire………………………………………………………………………………………………………………….10
IV. Approche numérique ………………………………………………………………………………………….…12
1. Maillage…………………………………………………………………………………………………………………..…………14
2. Quadrature de gauss …………………………………………………………………………………………………………15
3. Calcul des matrices élémentaires et du second membre ……………………………………………………16
4. Assemblage……………………………………………………………………………………………………………… .………18
5. Les résultats ………………………………………………………………………………………………………………………19
6. Résultats et commentaires…………………………………………………………………………………………………20

2
MEF [PROJET 1 :]

I. Introduction :

La méthode des éléments finis fait partie des outils de mathématiques appliquées. En analyse
numérique, la MEF est utilisé pour résoudre numériquement des équations aux dérivées
partielles. Celles-ci peuvent représenter analytiquement le comportement dynamique de
certains systèmes physiques comme la mécanique, la thermodynamique, l’acoustique.

Introduite pour les besoins de la mécanique newtonienne, l’équation de Laplace apparaît dans
de nombreuses autres branches de la physique théorique : astronomie, électrostatique,
mécanique des fluides, propagation de la chaleur, diffusion, mouvement brownien, mécanique
quantique.

II. Position du problème :

Considérons le problème de Dirichlet homogène suivant en une dimension d’espace :

α∆u’’ + βu = f dans Ω]0, L[


{
u(0) = u(L) = 0 Condition de dirichlet.

Où α et β sont des constantes et f est une fonction continue.

1. Aspect physique :

Ce problème aux limites intervient dans la modélisation de nombreux problèmes issus de la


physique (équation de la chaleur, température d’une barre métallique, électromagnétisme, ...),
de la mécanique (vibration d’une corde), de la finance (équation de Black-Scholes), mais
aussi de la chimie, de la biologie, de l’écologie...

Il peut être résolu par différentes méthodes numériques (différences finies, éléments finis,
volumes finis, méthodes spectrales, méthodes probabilistes...). Ici, nous allons mettre en
œuvre la méthode des éléments finis.

Le problème permet de décrire certains phénomènes physiques en état d’équilibre :

3
MEF [PROJET 1 :]

• déformation d’une membrane : Il s’agit ici du cas d’une membrane soumise à une charge
uniforme f. La membrane est encastrée (pour y = 0, 1), et a des cotés libres (pour x = 0, 1). La
fonction u représente la d´déformation dans la membrane.

• Distribution de température Supposons qu’une source de chaleur uniforme de charge f se


trouve en dessous d’une plaque carrée. La température est fixée (pour y = 0, 1), et les côtés de
la plaque sont isolés (pour x = 0, 1). La fonction u représente la distribution (stationnaire) de
température circulant dans la plaque.

• Ecoulement d’un fluide L’écoulement (stationnaire, rotationnel) d’un fluide incompressible


est d´écrit par l’équation de Poisson (ou de Laplace en l’absence de sources).

2. Aspect mathématique :

 Le type de l’équation est elliptique.


 Trouver u ϵ V =H01 (a, b)telle que :

∫Ω 𝛼𝛻𝑢. 𝛻𝑣𝑑𝑥 +∫Ω 𝛽𝑢𝑣𝑑𝑥 = ∫Ω 𝑓. 𝑣𝑑𝑥

 D’après le lemme de LAX-MILGRAM, la solution existe et unique


.
 Le but donc est de construire une méthode des éléments finis d’ordre élevé pour
résoudre numériquement le problème cité auparavant.

III. Problème discret

Dans cette section, on approche la solution du problème par la méthode des éléments finis.

1. Formulation discrète :
On considère le problème de Dirichlet homogène en dimension n=2 :

(La formulation variationnelle de l’équation s’écrit comme suit :

Trouver l'espace uϵ𝐻01 (Ω)des fonctions admissibles, tel que:

On considère la fonction test v tel que v(0)=v(L)=0 et

∫ 𝛼𝑢". 𝑣 + ∫ 𝛽𝑢. 𝑣 = ∫ 𝑓. 𝑣

En utilisant la formule de Green, on en déduit que :

4
MEF [PROJET 1 :]

𝜕Ω
∫Ω 𝛼𝛻𝑢. 𝛻𝑣𝑑𝑥 +∫𝜕Ω 𝑣 𝜕𝑛 𝑑𝑠 + ∫Ω 𝛽𝑢𝑣𝑑𝑥 = ∫Ω 𝑓. 𝑣𝑑𝑥

Supposons que v=0 p.p. sur ∂Ω ce qui est le cas si v ϵ𝐻01 (Ω). Alors on obtient le problème
suivant :

∫Ω 𝛼𝛻𝑢. 𝛻𝑣𝑑𝑥 +∫Ω 𝛽𝑢𝑣𝑑𝑥 = ∫Ω 𝑓. 𝑣𝑑𝑥

On finit par poser :

∀𝑣ϵ∀. 𝐴(𝑢, 𝑣) = 𝐿(𝑣)

 Discrétisation en éléments finis P2:

On va maintenant faire une discrétisation de l’intervalle [0, 𝐿] en N sous-intervalles ou


éléments𝐸𝑖 . Les éléments𝐸𝑖 n’ont pas forcement la même longueur.

L’espace 𝑉ℎ de dimension finie est considéré comme l’ensemble des fonctions continues sur
[0, 𝐿] et étant polynomiales de degré deux sur chaque sous-intervalle.

̅ ) ;𝑣ℎ |𝑇𝑖 𝜖𝑃2 ,∀ 𝑖 , 1 < 𝑖 < 2𝑁 + 1 , 𝑣ℎ (𝑎) = 𝑣ℎ (𝑏)=0}


𝑉ℎ = { 𝑣ℎ 𝜖𝐶 0 (Ω

Un polynôme de degré deux est fixé par ses valeurs en trois points. On prend les extrémités et
le milieu de chaque élémentEi . On est ainsi amené à considérer une discrétisation de [0, L] en
N sous-intervalles comportant eux-mêmes 3 points, ce qui nous conduit globalement à une
discrétisation par 2N+1 points où les nœuds xi sont donnés par :

x1 = 0 < x2 <…<x2N+1 = L
x2i−1+ x2i+1
Avec x2i = et Ei =[x2i−1, x2i+1 ] Pour i=1,…, N
2

Soit encore la base {φi } avec i=1,..2N+1 de données par les conditions :

φi (xi ) =δij ∀i = 1, … 2N + 1 et ∀j = 1, … 2N + 1

Apres des calculs élémentaires on obtient :

(x − xi−2 )(x − xi−1 )


si x ∈ [xi−2 , xi ]
(xi − xi−2 )(xi − xi−1 )
φi (xi ) = (x − xi+1 )(x − xi+2 )
si x ∈ [xi , xi+2 ]
(xi − xi+1 )(xi − xi+2 )
{ 0 si x ∉ [xi , xi+2 ]

5
MEF [PROJET 1 :]

Lorsque φi correspondent à un point xi extrémité d’un élément :

(x−xi−1 )(x−xi+1 )
si x ∈ [xi−1 , xi+1 ]
Et φi (xi ) = {(xi −xi−1 )(xi −xi+1 )
0 si x ∉ [xi−1 , xi+1 ]

Lorsque φi correspondent a un point milieu d’un élément :

La formulation vibrationnelle du problème de Dirichlet nous conduit à chercher la fonction u


appartenant a H01 (Ω)[0, L] telle que la forme approchée dans Vh soit satisfaite. Ainsi le
problème approché s’écrit
2N b b b
∑(∫ α φ′i (x)φj (x)′ dx + ∫ β φi (x)φj (x) dx)ui = ∫ f(x) φi (x)dx ∀i = 2, … 2N
i=2 a a a

2. Système linéaire :

On pose :
L
Fi = ∫ f(x)φi (x)dx
0

L L
Ai,j = ∫ αφ′i (x)φ′j (x)dx + ∫ βφi (x)φj (x)dx
0 0

6
MEF [PROJET 1 :]

On remarque que le problème prend la forme matricielle suivante :

AU = F

Où les inconnues sont les valeurs de u aux nœuds(𝑥𝑖 )𝑖 représentées par le vecteur

U = (𝑢1 , … , 𝑢𝑁 )𝑡 tel que :

𝑢1
.
U= .
.
(𝑢𝑁 )
La matrice A apparait comme la somme de deux matrices K et M :

 K est appelée matrice de raideur. Elle est donnée par :


𝐿 𝐿
𝐾𝑖𝑗 = ∫ 𝛼𝜑 ′ 𝑖 (𝑥)𝜑 ′𝑗 (𝑥)𝑑𝑥 + ∫ 𝛽𝜑 𝑖
(𝑥)𝜑 𝑗
(𝑥)𝑑𝑥
0 0

 M est la matrice de masse. Son expression est la suivante :

𝐿
𝑀𝑖𝑗 = ∫ 𝛽𝜑 𝑖
(𝑥)𝜑 𝑗
(𝑥)𝑑𝑥
0

 Technique de l’élément de référence :

Les φi sont sous forme de polynômes de degré 2 donc s’écrivent de la façon suivante :

φi (xi ) = 1 = ai x²i + bi xi + ci
{ φi (xi+1 ) = 0 = ai x²i+1 + bi xi+1 + ci
φi (xi+2 ) = 0 = ai x²i+2 + bi xi+2 + ci

Sous forme matricielle on ‘a:

x²i xi 1 ai ai+1 ai+2 1 0 0


[x²i+1 xi+1 1]×[bi bi+1 bi+2 ] =[0 1 0]
x²i+2 xi+2 1 ci ci+1 ci+2 0 0 1

7
MEF [PROJET 1 :]

D’où
−1
ai ai+1 ai+2 x²i xi 1
[b i bi+1 bi+2 ] = [ x²i+1 xi+1 1]
ci ci+1 ci+2 x²i+2 xi+2 1

Avec

x²i xi 1 1 −1 1
[x²i+1 xi+1 1] = [0 0 1 ]
x²i+2 xi+2 1 1 1 1

D’où l’inverse de
1 1
x²i xi 1 −1
2 2
[x²i+1 xi+1 1]est[− 1 0
1]
2 2
x²i+2 xi+2 1
0 1 0

En passant par le changement de variable

On pose :

Fi [-1,1] [xi , xi+2 ]


xi+2 −xi
tFi (t) = ( ) t + xi+1
2

On exprime alors Les fonctions de base dans [xi, xi+2 a l’aide des trois fonctions suivantes
définies sur [−1, 1] par :

1 2 1 t(t − 1)
̂ 1 (t) =
φ t − t =
2 2 2
2
̂ 2 (t) = −t + 1
φ
1 1 t(t + 1)
φ
̂ 3 (t) = t² + t =
{ 2 2 2
Avec leurs dérivées :

1
φ
̂ 1 ′(t) = t −
2
φ
̂ 2 ′(t) = −2t
1
{ φ
̂ 3 ′(t) = t +
2

8
MEF [PROJET 1 :]

 Calcul de la matrice de masse élémentaire :

Par φ2i+k οFi =φˆ2i+k avec la fonction Fi est définie par le changement de variable
précédent et les coefficients de la matrice de masse pour l’élément[𝑥𝑖, 𝑥𝑖+2 ]sont :

xi+2 −xi 1
β ̂ i (t)φ
∫−1 φ ̂ j (t)dt pour i,j=1 ,2,3
2

la matrice de masse est sous forme :

1 1 1
∫−1 𝜑̂1 (𝑡) 𝜑̂1 (𝑡)𝑑𝑡 ∫−1 𝜑̂1 (𝑡) 𝜑̂2 (𝑡)𝑑𝑡 ∫−1 𝜑̂1 (𝑡) 𝜑̂3 (𝑡)𝑑𝑡
ℎ 1 1 1
M=𝛽 2 * ∫−1 𝜑̂2 (𝑡) 𝜑̂1 (𝑡)𝑑𝑡 ∫−1 𝜑̂2 (𝑡) 𝜑̂2 (𝑡)𝑑𝑡 ∫−1 𝜑̂2 (𝑡) 𝜑̂3 (𝑡)𝑑𝑡
1 1 1
[∫−1 𝜑̂3 (𝑡) 𝜑̂1 (𝑡)𝑑𝑡 ∫−1 𝜑̂3 (𝑡) 𝜑̂2 (𝑡)𝑑𝑡 ∫−1 𝜑̂3 (𝑡) 𝜑̂3 (𝑡)𝑑𝑡]

On obtient ainsi la matrice de masse élémentaire suivante pour cet élémentaire :


4 2 −1
15 15 15
𝑥𝑖+2 −𝑥𝑖 2 16 2
𝑀𝑖 =β 15 15 15
2
−1 2 4
( 15 15 15 )

 Calcul de la matrice de raideur élémentaire :

Les coefficients de la matrice de raideur pour l’élément [𝑥𝑖, 𝑥𝑖+2 ]sont :


2 1
α𝑥 −𝑥
∫−1 𝜑̂𝑖 (𝑡)𝜑̂ 𝑗 (𝑡)𝑑𝑡 pour i,j∈{1 ,2,3}
𝑖+2 𝑖

9
MEF [PROJET 1 :]

On obtient ainsi la matrice de masse élémentaire suivante pour cet élémentaire :


7 −4 1
6 3 6
2 −4 8 −4
𝐾𝑖 =α𝑥 3 3 3
𝑖+2 −𝑥𝑖
1 −4 7
(6 3 6 )

 Calcul du second membre :

Chaque composante 𝐹𝑖 du vecteur second-membre global donnée par :


𝑏
𝐹𝑖 = ∫ 𝑓(𝑥)𝛷𝑖 (𝑥)𝑑𝑥
𝑎

Est également calculée par assemblage des contributions élémentaires𝐹𝑖𝑘 . On a :

𝑁 𝑁 𝑥2𝑘+1
𝐹𝑖 = ∑ 𝐹𝑖𝑘 = ∑∫ 𝑓(𝑥)𝛷𝑖 (𝑥)𝑑𝑥
𝑘=1 𝑘=1 𝑥2𝑘−1

Où les 𝐹𝑖𝑘 désignent les contributions des éléments k. On utilise des formulations
d’intégration numérique. Dans ce cas, nous allons opter pour la méthode de Gauss.

IV. Approche numérique


Le programme eff ectué sur matlab permettant d’avoir une solution approchée, se compose
de plusieurs fonctions :

— Une fonction créant la matrice de connectivité et de coordonnées.

— Deux fonctions retournant les matrices élémentaires (rigidité et masse).

— Une fonction créant la matrice élémentaire du second membre.

— Une fonction permettant de faire l’assemblage de la matrice global A et la matrice du


second membre F.

— Une fonction retournant la solution U.

— Une fonction qui permet de visualiser le maillage 1D.

10
MEF [PROJET 1 :]

3. Maillage :

function [X,T]=maillage(a,b,N) : La fonction maillage nous permettera de calculer le tableau


où seront placer les coordonnées de tous les noeuds et le tableau de connectivité qui contient
les élements du maillage.

avec X : matrice de coordonnées et T : matrice de connectivité.

function [ X,T ] = Maillage1D( a,b,n )


h=(b-a)/(n-1);
for i=1:2:n
x(i)=a+(i-1)*h;
end
for j=2:2:n-1
x(j)=(x(1)+x(3))/2+(j-2)*h;
end
for i=1:n
X(i)=x(i);
end
X=X';
T=[1 3];
for i=3:n-1
T=[T;i i+2];
end
end

4. Quadrature de gauss :
Elle fait appel à la fonction function [x,w]=lgwt(N,a,b)qui donne les poids et les sous forme
de 2 tableaux, ce qui donne la quadrature de gauss. La quadrature de gauss à n points admet
un degre d’exactitude de 2n - 1 et Les polynomes qu’on va traiter est d’ordre 2. Donc on va
se contenter seulement de 3 points.

11
MEF [PROJET 1 :]

5. Calcul des matrices élémentaires et du second membre :

 La matrice de l’élément de référence.

function [ phi, grad ] = Element_Ref( p )


if p==1
phi=inv([-1 1;1 1]);
grad=[phi(1,1) phi(1,2)];
end

if p==2
phi=inv([1 -1 1;0 0 1;1 1 1]);
grad=[2*phi(1,1) 2*phi(1,2) 2*phi(1,3);phi(2,1) phi(2,2) phi(2,3)];
end

end

12
MEF [PROJET 1 :]

 Fonction pour construire la matrice élementaire K.

function [ K ] = Calcul_ElemK( a,b,n,prodk )

w1=1; w2=1;
h=(b-a)/(n-1);
K=zeros(3,3);
gauss=[-1/sqrt(3);1/sqrt(3)];

v=[2/3*prodk(1,1)+2*prodk(3,1) 2/3*prodk(1,4)+2*prodk(3,4)
2/3*prodk(1,6)+2*prodk(3,6)];
K=h^3/8*diag(v);
for i=2:3
K(1,i)=h^3/8*(2/3*prodk(1,i)+2*prodk(3,i));
end
K(2,3)=h^3/8*(2/3*prodk(1,5)+2*prodk(3,5));

K(2,1)=K(1,2);
K(3,1)=K(1,3);
K(3,2)=K(2,3);

end

13
MEF [PROJET 1 :]

 Fonction pour construire la matrice élementaire M.

function [ M ] = Calcul_ElemM( a,b,n,prodm )

w1=0.6521; w2=0.6521; w3=0.3479; w4=0.3479;


h=(b-a)/(n-1);
M=zeros(3,3);
gauss=[-0.3400 0.3400 0.8611 0.8611];

for i=1:3
M(1,i)=h/2*((w1*(gauss(1,1))^4+w2*(gauss(1,2))^4+w3*(gauss(1,3))^4+
w4*(gauss(1,4))^4)*prodm(1,i)+(w1*(gauss(1,1))^3+w2*(gauss(1,2))^3+
w3*(gauss(1,3))^3+w4*(gauss(1,4))^3)*prodm(2,i)+(w1*(gauss(1,1))^2+
w2*(gauss(1,2))^2+w3*(gauss(1,3))^2+w4*(gauss(1,4))^2)*prodm(3,i)+(
w1*gauss(1,1)+w2*gauss(1,2)+w3*gauss(1,3)+w4*gauss(1,4))*prodm(4,
i)+(w1+w2+w3+w4)*prodm(5,i));
end

k=4;
for i=2:3
M(2,i)=h/2*((w1*(gauss(1,1))^4+w2*(gauss(1,2))^4+w3*(gauss(1,3))^4+
w4*(gauss(1,4))^4)*prodm(1,k)+(w1*(gauss(1,1))^3+w2*(gauss(1,2))^3+
w3*(gauss(1,3))^3+w4*(gauss(1,4))^3)*prodm(2,k)+(w1*(gauss(1,1))^2+
w2*(gauss(1,2))^2+w3*(gauss(1,3))^2+w4*(gauss(1,4))^2)*prodm(3,k)+(
w1*gauss(1,1)+w2*gauss(1,2)+w3*gauss(1,3)+w4*gauss(1,4))*prodm(4,
k)+(w1+w2+w3+w4)*prodm(5,k));
k=k+1;
end

M(3,3)=h/2*((w1*(gauss(1,1))^4+w2*(gauss(1,2))^4+w3*(gauss(1,3))^4+
w4*(gauss(1,4))^4)*prodm(1,6)+(w1*(gauss(1,1))^3+w2*(gauss(1,2))^3+
w3*(gauss(1,3))^3+w4*(gauss(1,4))^3)*prodm(2,6)+(w1*(gauss(1,1))^2+
w2*(gauss(1,2))^2+w3*(gauss(1,3))^2+w4*(gauss(1,4))^2)*prodm(3,6)+(
w1*gauss(1,1)+w2*gauss(1,2)+w3*gauss(1,3)+w4*gauss(1,4))*prodm(4,
6)+(w1+w2+w3+w4)*prodm(5,6));
M(2,1)=M(1,2);
M(3,1)=M(1,3);
M(3,2)=M(2,3);
End

14
MEF [PROJET 1 :]

 La matrice élèmentaire du second membre.

function [elemf] = Second_membre(X,T,i,f,p)

w1=0.6521; w2=0.6521; w3=0.3479; w4=0.3479; %Les poids, nous


avons choisi 4 pour augmenter la précision
gauss=[-0.3400 0.3400 0.8611 0.8611]; %Les xi Gauss

x2=X(T(i,2));
x1=X(T(i,1));
xm=(X(T(i,2))+X(T(i,1)))/2;
f1=@(x) x.*(x-1)/2; %Changement de variable pour phi1
f2=@(x) -(x-1).*(x+1); %Changement de variable pour phi2
f3=@(x) x.*(x+1)/2; %Changement de variable pour phi3
phi1=@(x) f1(x).*f(xm+(x2-x1)/2*x); %Produit des phi et f (après
changement de variable)
phi2=@(x) f2(x).*f(xm+(x2-x1)/2*x);
phi3=@(x) f3(x).*f(xm+(x2-x1)/2*x);

if p==1
elemf(1,1)=(x2-
x1)/2*(w1*phi1(gauss(1,1))+w2*phi1(gauss(1,2))+w3*phi1(gauss(1,3))+
w4*phi1(gauss(1,4)));
elemf(2,1)=(x2-
x1)/2*(w1*phi2(gauss(1,1))+w2*phi2(gauss(1,2))+w3*phi2(gauss(1,3))+
w4*phi2(gauss(1,4)));
end

if p==2
elemf(1,1)=(x2-
x1)/2*(w1*phi1(gauss(1,1))+w2*phi1(gauss(1,2))+w3*phi1(gauss(1,3))+
w4*phi1(gauss(1,4)));
elemf(2,1)=(x2-
x1)/2*(w1*phi2(gauss(1,1))+w2*phi2(gauss(1,2))+w3*phi2(gauss(1,3))+
w4*phi2(gauss(1,4)));
elemf(3,1)=(x2-
x1)/2*(w1*phi3(gauss(1,1))+w2*phi3(gauss(1,2))+w3*phi3(gauss(1,3))+
w4*phi3(gauss(1,4)));
end

end

15
MEF [PROJET 1 :]

 La fonction qui calcul le produit k:

function [ prodk ] = Produitk( grad)

prodk=zeros(3,6);

for i=1:3
prodk(1,i)=grad(1,1)*grad(1,i);
prodk(2,1)=2*grad(1,1)*grad(2,1);
prodk(2,2)=grad(1,1)*grad(2,2)+grad(1,2)*grad(2,1);
prodk(2,3)=grad(1,1)*grad(2,3)+grad(1,3)*grad(2,1);
prodk(3,i)=grad(2,1)*grad(2,i);
end

k=2;
for i=4:5
prodk(:,i)=grad(1,2)*grad(1,k);
prodk(3,i)=grad(2,2)*grad(2,k);
k=k+1;
prodk(2,4)=2*grad(1,2)*grad(2,2);
prodk(2,5)=grad(1,2)*grad(2,3)+grad(1,3)*grad(2,2);
end

prodk(:,6)=[grad(1,3)*grad(1,3);2*grad(1,3)*grad(2,3);grad(2,3)*grad(2,3)
];

end

16
MEF [PROJET 1 :]

 La fonction qui calcul le produit M:

function [ prodm ] = Produitm( phi )

prodm=zeros(5,6);

for i=1:3
prodm(1,i)=phi(1,1)*phi(1,i);
prodm(2,i)=phi(1,1)*phi(2,i)+phi(1,i)*phi(2,1);
prodm(3,i)=phi(1,1)*phi(3,i)+phi(1,i)*phi(3,1)+phi(2,1)*phi(2,i);
prodm(4,i)=phi(2,1)*phi(3,i)+phi(3,1)*phi(2,i);
prodm(5,i)=phi(3,1)*phi(3,i);
end

k=2;
for i=4:5
prodm(1,i)=phi(1,2)*phi(1,k);
prodm(2,i)=phi(1,2)*phi(2,k)+phi(2,2)*phi(1,k);
prodm(3,i)=phi(1,2)*phi(3,k)+phi(1,k)*phi(3,2)+phi(2,2)*phi(2,k);
prodm(4,i)=phi(2,2)*phi(3,k)+phi(3,2)*phi(2,k);
prodm(5,i)=phi(3,2)*phi(3,k);
k=k+1;
end

prodm(:,6)=[phi(1,3)*phi(1,3);2*phi(1,3)*phi(2,3);2*phi(1,3)*phi(3,3)+phi(2,3)
*phi(2,3);2*phi(2,3)*phi(3,3);phi(3,3)*phi(3,3)];

end

17
MEF [PROJET 1 :]

6. Assemblage :

function [A,F] = AssemblageP2(alpha,beta,a,b,N,f) : Cette fonction permet de


faire l’assemblage des matrices élementaires celle de rigidité et de masse et la
matrice de second membre.

function [ A,F ] = Assemblage( a,b,n,alpha,beta,f,p )

[X,T]=maillage2P(a,b,n);
[ phi, grad ] = ref( p );
[ prodk ] = produitk( grad );
[ prodm ] = produitm( phi );
[ K ] = Calcul_K( a,b,n,prodk );
[ M ] = Calcul_M( a,b,n,prodm );
Kf=zeros(n,n);
Mf=zeros(n,n);
for k=1:(n-1)/2
for j=1:3
for i=1:3
I=2*k+i-2;
J=2*k+j-2;
Kf(I,J)=Kf(I,J)+K(i,j);
Mf(I,J)=Mf(I,J)+M(i,j);
end
end
end

A=alpha*Kf+beta*Mf;
F=zeros(n,1);
for j=1:(n-1)/2
[elemf] = Second_membre(X,T,j,f);
for i=1:3
I=2*j+i-2;
F(I)=F(I)+elemf(i);
end
end
end

18
MEF [PROJET 1 :]

7. Les résultats :

function[X,T,A,F,U] : fait appel à la fonction maillage et assemblage, elle permet de


retourner le U.

function [X,T,A,F,U]=Resolution1D(a,b,n,alpha,beta,f,p)

[ X,T ] = Maillage1D(a,b,n,p);
[ A,F ] = Assemblage( a,b,n,alpha,beta,f,p );

A(1,:)=0;
A(n,:)=0;
F(1,1)=0;
F(n,1)=0;
A(1,1)=1;
A(n,n)=1;
U=A\F;

%Validation du programme pour alpha=1, beta=0, [a b]=[0 pi], f(x)=sin(x)


et
%donc la solution théorique est : u(x)=sin(x)
x=
[0;pi/10;2*pi/10;3*pi/10;4*pi/10;5*pi/10;6*pi/10;7*pi/10;8*pi/10;9*pi/10;pi];
y = sin(x);

%Courbe comparant les 2 solutions


subplot(1,2,1)
plot(x,y,'-ro')
title(['La solution réelle']);
subplot(1,2,2)
plot(X,U,'-o')
title(['La solution approchée']);
end

19
MEF [PROJET 1 :]

Pour tester le résultat obtenu, on va introduire la fonction resolution1D qui vérifie les
conditions du problème et la comparer ainsi avec la solution approchée qu’on a trouvé via
MATLAB.

20

Vous aimerez peut-être aussi