5
Tópicos em Métodos Numéricos IM _ 458: Escoamentos Compressíveis Lista de Exercícios # 5 Nome: Renan Sadao Kuroda Rodrigues Questão 2 %Método 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

Lista05_Renan.docx

Embed Size (px)

Citation preview

Tpicos em Mtodos Numricos IM _ 458: Escoamentos CompressveisLista de Exerccios # 5

Nome: Renan Sadao Kuroda Rodrigues

Questo 2

%Mtodo de Eulerclcclearclear all %Criando matriz tri-diagonal periodicad=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)=-1T(j,1)=1 % tamanho da malhax=[-5:0.1:5];% velocidade da onda% fator de estabilidadecfl=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:10for j=1:101;p(j,n+1)= -cfl*del_x(j,n)+p(j,n)del_x=(1/2)*T*p endendplot(x,p);

Figura 1: Mtodo de Euler (CFL=0.5)

Figura 2: Mtodo de Euler (CFL=1.5)%Mtodo de Crank-Nicolsonclearclcclear all dp=1;cfl=0.5 r=cfl/2betta=0.5j = 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)=-1T(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*rT1(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)*rT2(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 endp(:,n+1)=C*p(:,n)endn=[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)