• Aucun résultat trouvé

Analyse, s´eance 3 : exercices corrig´es LA MISE EN OEUVRE

N/A
N/A
Protected

Academic year: 2021

Partager "Analyse, s´eance 3 : exercices corrig´es LA MISE EN OEUVRE"

Copied!
4
0
0

Texte intégral

(1)

ECP Math´ematiques 2 : Analyse 2e Ann´ee 2005-2006

Analyse, s´eance 3 : exercices corrig´es LA MISE EN OEUVRE

Question 1

Rappeler les principes de construction du syst`eme : K U=F qui d´etermineuh.

Il faut calculer, en effectuant une boucle sur les ´el´ements, les int´egrales Ki,j =a(wi, wj) =

Z

k∇wi∇wj dΩ + Z

c wiwjdΩ

et calculer, en effectuant une boucle sur les ´el´ements et sur les segments du bord, les int´egrales Fi=L(wi) =

Z

q(x)wi(x)dΩ + Z

Γ

λ wi(x)ds Principe

Une int´egrale sur un segment est calcul´ee par une formule d’int´egration (la formule des trap`ezes par exemple ou la formule de Simpson). Une int´egrale sur un bord est ensuite calcul´ee en effectuant la somme, sur tous les segments du bord, de la contribution d’un segment `a cette int´egrale.

Une int´egrale sur un triangle est calcul´ee par une formule d’int´egration. Une int´egrale sur un domaine plan est ensuite calcul´ee en effectuant la somme sur tous les triangles de la contribution d’un triangle `a cette int´egrale.

Noter qu’en utilisant les commandes particuli`eres de MatLab pour traiter les matrices on peut ´ecrire le programme d’assemblage de mani`ere plus condens´ee :

function K=assemblage(ELEM,COORD);

global c

[ne,aux] = size(ELEM);

[np,aux] = size(COORD);

K = zeros(np,np);

for e=1:ne,

NOEUD = ELEM(e,:); % NOEUD : num´erotation globale Ke = Raideur_elem(NOEUD,COORD);

K(NOEUD,NOEUD) = K(NOEUD,NOEUD) + Ke;

end;

(2)

2 Math´ematiques 2 : Analyse

• Soit un domaine Ω carr´e, de cˆot´e 2h, d´ecoup´e en 4 triangles rectangles isoc`eles `a partir de son centre. On a doncne= 4, np= 5, pr´eciser les tableaux COORD, ELEM et BORD.

Si 1 est le noeud milieu, 2,3,4,5 les sommets du carr´e de cˆot´e 2h, Le noeud 2 ´etant l’origine des coordonn´ees :

COORD=

h h

0 0

2h 0 2h 2h

0 2h

ELEM =

2 1 3 1 4 3 1 5 4 1 2 5

BORD=

2 3 3 4 4 5 5 2

• Faire “tourner” `a la main le programme ci-dessus sur cet exemple.

La matrice de raideur ´el´ementaire du triangle rectangle isoc`ele 2,1,3 est

Ke=ch2 12

2 1 1 1 2 1 1 1 2

La matrice de raideurK est

K =ch2 12

8 2 2 2 2

2 4 1 0 1

2 1 4 1 0

2 0 1 4 1

2 1 0 1 4

Question 2

Ecrire un programme de calcul des matrices de raideur ´el´ementaire associ´ees au terme :´ Z

k∇u .∇v dΩ

Voir polycopi´e page 87.

Question 3

Ecrire un programme de calcul des termes du second membre´ F associ´es `a Rqv dΩ. En d´eveloppant q dans la base wj on pourrait ´ecrire q(x) = Pjqjwj et utiliser le r´esultat de

(3)

S´eance 3 3

la premi`ere question. On peut aussi suivre la m´ethode g´en´erale, calculer la contribution F e d’un triangle `a F, puis sommer ces contributions. Le programme ci-dessous utilise la mˆeme formule d’int´egration que dans la premi`ere question, apr`es interpolation de la fonction q(x) par des fonctions affines, d’o`u pour un triangle de noeuds i, j, k

Z

T e

qwidΩ = (2Q(i) +Q(j) +Q(k))/4∗Se/3

On range dans un vecteur Qles valeurs de la fonction q(x) aux noeuds.

function Fe = charge_elem(NOEUD,COORD,Q)

% contribution d’un triangle `a F for i = 1:3,

Qe(i) = Q(NOEUD(I));

X(i) = COORD(NOEUD(i),1);

Y(i) = COORD(NOEUD(i),2); % coordonn´ees des sommets end;

Se = abs((X(2)-X(1))*(Y(3)-Y(1)) - (X(3)-X(1))*(Y(2)-Y(1)))/2;

aux = Qe(1)+Qe(1)+Qe(3);

for i = 1:3,

Fe(i) = (Qe(i) +aux)*Se/12;

end;

function F = assemblage(ELEM,COORD,Q);

[np,aux]=size(COORD);

[ne,aux]=size(ELEM);

F = zeros(np,1);

for e = 1:ne,

for i=1:3, % i : num´erotation locale

NOEUD(i) = ELEM(e,i); % NOEUD : num´erotation globale end;

Fe = charge_elem(NOEUD,COORD,Q);

for i=1:3,

F(NOEUD(i)) = F(NOEUD(i)) + Fe(i);

end;

end;

En pratique il est pr´ef´erable d’initialiserF `a 0 hors de cette fonction pour pouvoir assembler diff´erentes contributions.

Question 4

Ecrire un programme de calcul des termes du second membre´ F associ´es `aRλ v ds.

On calcule la contribution F e d’un segment `a F, puis on somme ces contributions. Le pro- gramme ci-dessous utilise la formule des trap`ezes pour calculer les int´egrales sur un segment,

(4)

4 Math´ematiques 2 : Analyse

d’o`u pour un segment de noeuds i, j Z

Be

λwidΩ =λ∗Le/2

o`u Le est la longueur du segment.

function Fe = chargeb_elem(NOEUD,COORD);

% contribution d’un segment `a F global lambda

for i = 1:2,

X(i) = COORD(NOEUD(i),1);

Y(i) = COORD(NOEUD(i),2);

end;

Le = sqrt((X(2)-X(1))^2 + (Y(2)-Y(1))^2);

for i = 1:2,

Fe(i) = lambda*Le/2;

end;

function F = assemblage(F,BORD,COORD);

[np,aux]=size(BORD);

for e = 1:nb,

for i=1:2, % i : num´erotation locale

NOEUD(i) = BORD(e,i); % NOEUD : num´erotation globale end;

Fe = chargeb_elem(NOEUD,COORD);

for i=1:3,

F(NOEUD(i)) = F(NOEUD(i)) + Fe(i);

end;

end;

On ajoute les contributions du bord au vecteurF qui a d´ej`a ´et´e initialis´e.

S.L

CENTRALE

Références

Documents relatifs

[r]

Nous avons vu que les facteurs premiers des nombres de Fermat ´etait de la forme k2 n + 1 : d’apr`es le th´eor`eme de Dirichlet, on sait qu’il existe une infinit´e de k pour

[r]

Au top d´ epart, n personnes montent sur les chariots, une par chariot ; ensuite, quand deux chariots se rencontrent, les passagers de ces deux chariots ´ echangent leur place..

La m´ethode du gradient pour la minimisation de fonctions quadratiques.. On

Dans un logiciel d’éléments finis, il suffit de définir les contours de la membrane, la constante de tension k et la densité de force f (x) ; le logiciel crée automatiquement

• Soit un domaine Ω carré, découpé en 4 triangles rectangles isocèles à partir de son centre.. ∇v

- Exercice 1: Exprimer dans les unit´es fondamentales du Syst`eme