14
Facult ´ e des Sciences et Techniques de B ´ eni Mellal Master G ´ enie Math ´ ematiques et Applications Analyse num ´ erique TP 4 ethode des ´ el´ ements finis unidimensionnel P1 ealis´ e par : Naoufel Hatime 26 D´ ecembre 2015

Naoufel Hatime TP4

Embed Size (px)

DESCRIPTION

mathématiques

Citation preview

Page 1: Naoufel Hatime TP4

Faculte des Sciences et Techniques deBeni Mellal

Master Genie Mathematiques et Applications

Analyse numerique

TP 4Methode des elements finis

unidimensionnel P1

Realise par : Naoufel Hatime

26 Decembre 2015

Page 2: Naoufel Hatime TP4

Table des matières

1.1 Position du problème : . . . . . . . . . . . . . . . . . . . . . . 21.2 But du TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Approximation . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3.1 Formulation variationel du probléme . . . . . . . . . . 21.3.2 Probléme aprochée . . . . . . . . . . . . . . . . . . . . 4

1.4 Partie pratique . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1

Page 3: Naoufel Hatime TP4

1.1 Position du problème :

Soient f,g deux fonctions continues sur ]-L,L[, nous cherchons à approcherle probléme suivant :

−u′′(x) = f(x) (I)

u(−L) = g(−L)u(L) = g(L)

(1.1)

1.2 But du TP

Le but de TP est de trouver une solution approchée du probléme précé-dent en utilisant la méthode des éléments finis P1.

1.3 Approximation

1.3.1 Formulation variationel du probléme

Pour implementé la méthode des éléments finis on va approchéele probléme avec condition de Dirichlet homogène, puis on utilisonsla "pinalisation" pour résoudre notre probléme avec la condition de Dirichletnon homogène

−u′′(x) = f(x) (I)

u(−L) = 0

u(L) = 0

(1.2)

On note par γ le bord de l’overt ]− L,L[.Multiploins l’équation (I) par v ∈ H1(]− L,L[) tel que v/γ = 0 et intégronssur ]-L,L[ :

−∫ L

−Lu′′(x)v(x)dx =

∫ L

−Lf(x)v(x)dx

2

Page 4: Naoufel Hatime TP4

Utilisons une integration par parties, on aura :∫ L

−Lu′(x)v(x)

′dx+ [u

′(−L)v(−L)− u′(−L)v(−L)] =

∫ L

−Lf(x)v(x)dx

Or v/γ = 0 ,alors , ∫ L

−Lu′(x)v(x)

′dx =

∫ L

−Lf(x)v(x)dx

On pose V = H1(]−L,L[) ; Ainsi on obtient le problème variationnel suivant :{Trouver u ∈ H1(]− L,L[) tel que

a(u, v) = L(v) ∀v ∈ V

avec,

a(u, v) =

∫ L

−Lu′(x)v(x)

′dx

L(v) =

∫ L

−Lf(x)v(x)dx

Il est claire que L est une forme linéaire continue sur VIl est claire que a est une forme bilinéaire bicontinue sur V × VV est espace de Hiblert.Grace au lemme de Lax-miligram on déduit que le problème variationneladmet une solution unique.

3

Page 5: Naoufel Hatime TP4

1.3.2 Probléme aprochée

Soit N un entier positif,divisions l’intervale [-L,L] en N+1 partie .Posons,h = 1

N+1et xi = −L+ ih pour i=1,...,N+1 .

On définit pour i=1,...,N+1 les fonction suivantes :

ϕi(x) =

x−xi

xi−xi+1si xi−1 ≤ x ≤ xi

x−xi+1

xi−xi+1si xi ≤ x ≤ xi+1

0 sinon

Clairement la fonction sont tell que :

ϕi(xj) = δi,j ( indice de Kronecker ).

Figure 1.1 – Fontion de base ϕi

4

Page 6: Naoufel Hatime TP4

Ainsi on définit Vh l’espace approché de V par :

Vh = {vh ∈ C(]− L,L[) |vh/[xi, xi+1] ∈ P1([xi, xi+1]) , ∀i ∈ 0, 1...N}

Vh un sous espace fermé de V ,et de dimensionfinie N et {ϕi}i=N

i=1 une base de Vh.Soit vh ∈ Vh alors,

vh =i=N∑i=1

ϕivi,où vi sont N nombre réeel .

Ainsi on peur donc formuler une approximation de notre problème sous laforme :

Trouver uh ∈ Vh tel que∫ L

−Lu′

h(x)v(x)′

hdx =

∫ L

−Lf(x)v(x)hdx ∀vh ∈ V (II)

Puisque uh ∈ Vh, on peut ecrire

uh(x) =i=N∑i=1

ϕiui

Où u1, ...., uN sont des réels inconnus .En prenant en particulier vh = ϕi pour j=1,...,N dans (II). Donc on peut

ecrire le systéme sous la forme suivant :

Trouver u = (u1, ...., uN)

t ∈ RN solution dei=N∑i=1

ui

∫ L

−Lϕ′

i(x)ϕ′

j(x)dx =

∫ L

−Lf(x)ϕ

jdx pourj = 1, ..., N

5

Page 7: Naoufel Hatime TP4

Ainsi on aura,Trouver u = (u1, ...., uN)

t ∈ RN solution dei=N∑i=1

ui

k=N∑k=1

∫ xk

xk−1

ϕ′

i(x)ϕ′

j(x)dx =k=N∑k=1

∫ xk

xk−1

f(x)ϕ′

jdx pourj = 1, ..., N

On pose

aij =k=N∑k=1

akij =k=N∑k=1

∫ xk

xk−1

ϕ′

i(x)ϕ′

j(x)dx

Li =k=N∑k=1

Lki =

k=N∑k=1

∫ xk

xk−1

f(x)ϕ′

jdx

Il est claire que akij 6= 0 seulement si i, j ∈ {k − 1, k},et que Lk

i 6= 0 seulement si i ∈ {k − 1, k}Ainsi la matrice élementaire ,et le seconde membre sont donnée par

Ak =

∫ xk

xk−1

ϕ′

k−1(x)ϕ′

k−1(x)dx

∫ xk

xk−1

ϕ′

k−1(x)ϕ′

k(x)dx

∫ xk

xk−1

ϕ′

k(x)ϕ′

k−1(x)dx

∫ xk

xk−1

ϕ′

k(x)ϕ′

k(x)dx

Lk =

∫ xk

xk−1

f(x)ϕ′

k−1dx

∫ xk

xk−1

f(x)ϕ′

kdx

6

Page 8: Naoufel Hatime TP4

Donc la résolution numérique du probléme (I) se ramène à la résolutiond’un système linéaire du type :

Au = b

avecu = (u1, ..., uN)

T

A = (a(ϕi, ϕj)){1≤i,j≤N}

b = L(ϕj){1≤j≤N}

1.4 Partie pratique

On défnit une fonction Matlab maillage qui return deux tableaux eltqui fait associer à chaque numero global d’un element [xk, xk+1], et tableauq aussi return les coordonnées des neouds.On définit les fonctions chapeaux dans le fichier BLGG.m. On définit lesfonctions SM.m et Assemblage.m qui nous permet respectivement de cal-culeret assembler la matrice de la matrice de masseet le second membre, On définit la fonctions LimitCond.m pour ajouterla condition de Dirichlet non homogène (la pénalisation) . En on intégre cesfonctions dans un programme principal programmeP1.m dont les para-métres d’entrées sont L et N .

7

Page 9: Naoufel Hatime TP4

1.4.1 Exemple

On considére le problème suivant :−u′′(x) = exp(x) x ∈]− L,L[u(L) = exp(L)

u(−L) = exp(−L)(1.3)

Il est claire que uexacte = exp.on prend L=1.On définie l’erreur par norme(solution exatce− solution approche)

N 3 6 9 12 15 20Erreur 0.0170 0.0073 0.0043 0.0029 0.0021 0.0014

Figure 1.2 – Représentation de la solution exacte et approchée Pour N=3

8

Page 10: Naoufel Hatime TP4

Figure 1.3 – Représentation de la solution exacte et approchée Pour N=10

Figure 1.4 – Représentation de la solution exacte et approchée Pour N=20

9

Page 11: Naoufel Hatime TP4

Programme Principale

function [U,A,B,x]=programmeP1(L,N);

[x,elt]=maillage(L,N);

[A]=Assemblage(elt,x);

B=SM(elt,x);

[A,B]=LimitCond(A,B,x,elt);

V=ue(x);

U = A\B;

max(abs(V-U))

plot(x,U,’*k’,x,V,’--r’);

legend(’Solution approchée’,’Solution exact’);

end

Les fonctions

function [x,elt]=maillage(L,N)

h=2*L/(N+1);

i=0:N+1;

x=h*i’-L;

for k=1:N+1

elt(k,:)=[k,k+1];

end

end

10

Page 12: Naoufel Hatime TP4

function [A]=Assemblage(elt,x)

next=[2 1 2];

nt=length(elt);

ne=length(x);

A=zeros(ne,ne);

h=x(2)-x(1);

for k=1:nt

for k1=1:2

i1=elt(k,k1);

i2=elt(k,next(k1));

i3=elt(k,next(k1+1));

[phii,phixi]=BLGG(x(i1),x(i1),x(i2),x(i3));

for k2=1:2

j1=elt(k,k2);

j2=elt(k,next(k2));

j3=elt(k,next(k2+1));

[phij,phixj]=BLGG(x(j1),x(j1),x(j2),x(j3));

x1=h*phixi*phixj;

A(i1,j1)=A(i1,j1)+x1;

end

end

end

end

function [B]=SM(elt,x)

nt=length(elt);

ne=length(x);

h=x(2)-x(1);

11

Page 13: Naoufel Hatime TP4

B=zeros(ne,1);

for k=1:nt

% for k1=1:2

i1=elt(k,1);

i2=elt(k,2);

B(i1)=B(i1)+(2*f1(x(i1))+f1(x(i2)))*h/6;

B(i2)=B(i2)+(f1(x(i1))+2*f1(x(i2)))*h/6;

end

end

function [A,B]=LimitCond(A,B,x,elt)

cte=1e30;

nt=length(elt);

ili=elt(1,1);

ilf=elt(nt,2);

A(ili,ili)=cte;

B(ili)=cte*ue(x(ili));

A(ilf,ilf)=cte;

B(ilf)=cte*ue(x(ilf));

end

function y=f1(x)

y=-exp(x);

end

function [phi,phix]=BLGG(x,a,b,c)

if (a<=x && x<=b)

phi=(x-a)/(b-a);

phix=1/(b-a);

12

Page 14: Naoufel Hatime TP4

elseif (b<=x && x<=c)

phi=(x-c)/(b-c);

phix=1/(b-c);

else

phi=0;

phix=0;

end

end

13