Você está na página 1de 5

Tpicos em Mtodos Numricos IM _ 458: Escoamentos Compressveis

Lista de Exerccios # 5
Nome: Renan Sadao Kuroda Rodrigues
Questo 2
%Mtodo de
Euler
clc
clear
clear all
%Criando matriz tri-diagonal periodica
d=0;
j = 101;
a(1,j-1)=1;
b(j-1,1)=-1;
main_diagonal = d * ones(j, 1);
off_diagonal = ones(j - 1, 1);
off_diagonal2 = ones(j - 1, 1)-2;
T = diag(main_diagonal) + diag(off_diagonal, 1) + diag(off_diagonal2, -1)
T(1,j)=-1
T(j,1)=1
% tamanho da malha
x=[-5:0.1:5];
% velocidade da onda
% fator de estabilidade
cfl=1.5;
delta_x=0.1;
delta_t=cfl*delta_x;
% Formato da onda em t0
for j=1:101;
p(j,1)=1/(1+25*(x(j)^2));
end
%Discretizacao espacial
del_x=(1/(2))*T*p
for n=1:10
for j=1:101;
p(j,n+1)= -cfl*del_x(j,n)+p(j,n)
del_x=(1/2)*T*p
end
end
plot(x,p);

Figura 1: Mtodo de Euler (CFL=0.5)

Figura 2: Mtodo de Euler (CFL=1.5)

%Mtodo de Crank-Nicolson
clear
clc
clear all
dp=1;
cfl=0.5
r=cfl/2
betta=0.5
j = 101;
b = dp * ones(j, 1);
a = ones(j - 1, 1);
c = ones(j - 1, 1)-2;
T = diag(b) + diag(a, 1) + diag(c, -1)
T(1,j)=-1
T(j,1)=1
a1=ones(j-1, 1)*-betta*r;
c1=ones(j - 1, 1)*betta*r;
T1 = diag(b) + diag(a1, 1) + diag(c1, -1)
T1(1,j)=-betta*r
T1(j,1)=betta*r

a2=ones(j - 1, 1)*(1-betta)*r;
c2=ones(j - 1, 1)*-(1-betta)*r;
T2 = diag(b) + diag(a2,1) + diag(c2, -1)
T2(1,j)=(1-betta)*r
T2(j,1)=-(1-betta)*r
C=T1\T2
x=[-5:0.1:5];
for n=1:100
for j=1:101;
if n==1
p(j,n)=1/(1+25*(x(j)^2));
end
end
p(:,n+1)=C*p(:,n)
end
n=[1:1:101];
surf(n,x,p,'EdgeColor','none')

Figura 3: Mtodo de Crank-Nicolson (CFL=0.5)

Figura 4:Mtodo de Crank-Nicolson (CFL=1.5)

Figura 5:Mtodo de Crank-Nicolson (CFL=3)

Você também pode gostar