Você está na página 1de 2

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

Você também pode gostar