Académique Documents
Professionnel Documents
Culture Documents
PROJETO N° 01
d 2u du
2 Pe dx
d x
u (1) 0
du (0)
u (0) 1
dx
Pe = 5
Pe = 10
Pe = 30
Pe = 5
Pe = 10
Pe = 30
Pe = 30.
a
( NNODES i)
xi 1
( NNODES 1)
Onde:
switch tp
case 'linear'
t=1
case 'quadratico'
t=2
end
[xi,h]=malha(Nele,a,t)
A=zeros(t*Nele+1,t*Nele+1);
NID=Nglobal(t,Nele)
for iele=1:Nele
he=h(iele)
Al=mlocal(pe,he,t)
for ilnode=1:t+1
ignode=NID(ilnode,iele)
for jlnode=1:t+1
jgnode=NID(jlnode,iele)
A(ignode,jgnode)=A(ignode,jgnode)+Al(ilnode,jlnode)
end
end
end
%condições de contorno
a1=1+A(1,1)
A(1,1)=a1
for s=1:t*Nele+1
A(t*Nele+1,s)=0
end
A(t*Nele+1,t*Nele+1)=1
b=zeros(t*Nele+1,1)
b(1,:)=1
%solução aprox
Ur=inv(A)*b
%solução exata
Ue=(exp(pe*xi)-exp(pe))./(1-pe-exp(pe));
% calculo do erro
U=Ur'
erro=U-Ue
% Resultados
.......................................................................................................................................
function [xi,h]=malha(Nele,a,t)
NID=Nglobal(t,Nele)
NN=t*Nele+1
for i=1:NN
xi(i)=1-((NN-i)/(NN-1))^a;
end
for i=1:Nele
h(i)=xi(NID(2,i))-xi(NID(1,i));
end
……………………………………………………………………………………………………
% A rotina q faz a comparação entre a numeração local e global para fazer a matriz Global.
function NID=Nglobal(t,Nele)
switch t
case 1
for j=1:Nele
for i=1:2
NID(i,j)=i+j-1
end
end
case 2
for j=1:Nele
NID(1,j)=2*j-1;
NID(2,j)=2*j+1;
NID(3,j)=2*j;
end
end
NID
……………………………………………………………………………………………………
% Depois é preciso calcular o valor de he para cada elemento e construir as matriz local. (os
integrais são resolvidos utilizando quadradura gaussiana.
function Al=mlocal(pe,he,t)
wgp=[0.555 0.888 0.555]
igp=[-0.77459 0 0.77459]
derif(1)=-0.5
derif(2)=0.5
switch t
case 1
Al=zeros(2,2)
for i=1:2
switch i
case 1
xg=[(1-igp(1))/2 (1-igp(2))/2 (1-igp(3))/2]
case 2
xg=[(1+igp(1))/2 (1+igp(2))/2 (1+igp(3))/2]
end
for j=1:2
Al(i,j)=Al(i,j)+2/he*(derif(i)*derif(j))*[1 1
1]*wgp'+(pe*xg*derif(j)*wgp')
end
end
case 2
Al=zeros(3,3);
NGP=length(igp);
for xgp=1:NGP
XI=igp(xgp);
[PHI,dPHI]=evaluation(XI)
for ilnode=1:3
for jlnode=1:3
Al(ilnode,jlnode)=Al(ilnode,jlnode)+wgp(xgp)*(2/he*dPHI(ilnode)*dPHI(j
lnode)+pe*PHI(ilnode)*dPHI(jlnode))
end
end
end
end
% No mismo (for) faze-se o ensamble da matriz global, mas para o calculo da matriz local foi
feita uma function q permita evaluar as funções base
function [PHI,dPHI]=evaluation(XI)
PHI(1)=XI*(XI-1)/2
PHI(2)=XI*(XI+1)/2
PHI(3)=-(XI+1)*(XI-1)
dPHI(1)=XI-0.5
dPHI(2)=XI+0.5
dPHI(3)=-2*XI
..........................................................................................................................................................
(a) Malha de 10 elementos lineares uniformemente espaçados com :
Resultados =
1.0000 0 0 0
sol
1
0.9
0.8
0.7
0.6
U(x)
0.5
aprox
0.4 exata
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Pe=10 , t=’linear’, Nele=10, a=1
Resultados =
1.0000 0 0 0
sol
1
0.9
0.8
0.7
0.6 aprox
exata
U(x)
0.5
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Pe=30 , t=’linear’, Nele=10, a=1
Resultados =
1.0000 0 0 0
sol
1.4
1.2
0.8
U(x)
0.6 aprox
exata
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
(b) Malha de 5 elementos quadráticos uniformemente espaçados com :
Resultados =
1.0000 0 0 0
sol
1
0.9
0.8
0.7
0.6
U(x)
0.5
aprox
0.4 exata
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Pe=10 , t=’quadratico’, Nele=5, a=1
Resultados =
1.0000 0 0 0
sol
1
0.9
0.8
0.7
0.6 aprox
exata
U(x)
0.5
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Pe=30 , t=’quadratico’, Nele=5, a=1
Resultados =
1.0000 0 0 0
sol
1.4
1.2
0.8
U(x)
0.6 aprox
exata
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Pe=30 , t=’linear’, Nele=10, a=3
Resultados =
1.0000 0 0 0
sol
1.4
1.2
0.8
U(x)
0.6 aprox
exata
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x