% Exercicio 2 p.25 capitulo sobre EDPs
% Matematica Aplicada 2007/2008 - Carlos Balsa
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Resolver o exercicio proposto para a equaçao do calor usando
% o metodo de discretizaçao total expicito
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

c=1; % constante da equaçao do calor 

% variaveis espaciais
a=0; b=1; dx=0.1;
x=[a:dx:b];
nx=length(x);

% variaveis temporais
ti=0; tf=1; dt=0.1;
%dt=(dx^2)/(2*c);
t=[ti:dt:tf];
nt=length(t);

% matriz das soluçoes 
U=zeros(nt,nx); % iniciada a zeros
u0=sin(pi*x); U(1,:)=u0; % condiçoes iniciais

% calculos auxiliares
aux=c*dt/dx^2;

% varimento do dominio de integraçao da equaçao
for k=1:nt-1;
    for i=2:nx-1;
        U(k+1,i)=U(k,i)+aux*(U(k,i+1)-2*U(k,i)+U(k,i-1));
    end
end

% grafico da superficie suluçao
 close all;
 mesh(t,x,U'); hold on; % superficie 3d a partir dos pontos
 view(35,25); hold on;  % ponto de vista
 xlabel('t'); hold on; 
 ylabel('x'); hold on; 
 zlabel('u'); hold on; 