ALGORITMO DO MATLAB - DIFERENÇAS FINITAS - DIRICHLET CONDITIONS EXERCÍCIO 1.6.1 DE T. J. CHUNG,...
Click here to load reader
-
Upload
sandro-cordeiro-sao-marcos -
Category
Documents
-
view
1.371 -
download
3
Transcript of ALGORITMO DO MATLAB - DIFERENÇAS FINITAS - DIRICHLET CONDITIONS EXERCÍCIO 1.6.1 DE T. J. CHUNG,...
DIRICHLET CONDITIONS
EXERCÍCIO 1.6.1 DO LIVRO CHUNG, T. J., COMPUTATIONAL FLUID DYNAMICS function []= dirichlet_conditions() disp('Considere uma equação diferencial na forma geral (d²u/dx²)-2u =
f(x), com coeficientes constantes, sendo f(x)=4x^2-2x-4.') coef_du=0; coef_u=-2; disp('Condições de Dirichlet:'); ui=input('Entre o valor de u inicial:'); uf=input('Entre o valor de u final:'); x1=input('Entre com o valor de x inicial:'); xnp=input('Entre com o valor de x final:'); np=input('número de pontos:'); fa=4; fb=-2; fc=-4;
dx=(xnp-x1)/(np-1);
mat1=zeros(np-2,np);
mat1(1,1)=x1; mat1(np-2,np)=0;
for i=1:np-2 mat1(i,i+1)=-2; end
for i=2:np-2 mat1(i,i)=1; end
for i=1:np-3 mat1(i,i+2)=1; end
mat2=mat1*(dx^-2);
for i=1:np-2 mat2(i,i+1)=mat2(i,i+1) +coef_du*(dx^-1)+coef_u; end
for i=1:np x(i)=x1+dx*(i-1); end
for i=1:(np-2) fx(i)=fa*x(i+1)^2+fb*x(i+1)+fc; end
fx(np-2)=fx(np-2)-uf*(dx^-2);
mat_fx=transpose(fx); c=[mat2 mat_fx];
mat_resp=mat2\mat_fx; mat_resp(np)=uf
for i=1:np-2 fx(np-i)=fx(np-(i+1)); end
disp('Os vetores com pontos do domínio e com suas respectivas imagens
são:')
fx(1)=ui; fx(np)=uf; for i=1:np-2 fx(np-i)=mat_resp(np-i,1); end
x fx z=0:0.001:1; y=-2*z.^2+z;%solução analítica do exemplo 1.6.1 DO LIVRO! plot(x,fx,'k',z,y,'R')%em preto a aproximação, em vermelho -2x²+x.
end