Documentos de Académico
Documentos de Profesional
Documentos de Cultura
clear all
clc
%Ecuacin del calor en diferencias finitas hacia atrs.
%Ut-alfa^2 Uxx=0, 0<x<L , 0<t<T
%U(0,t)=U(L,t)=0, U(x,0)=f(x)
%Salida: w(i,j)=aproximacin de U(xi,tj).
%Correr con: L=1, T=1, m=10 , n=10, alfa=1, f=sin(pi*x)
L=input('ingrese L=');
T=input('ingrese T=');
m=input('ingrese m=');
n=input('ingrese n=');
alfa=input('ingrese alfa=');
h=L/m;
k=T/n;
lamda=alfa^2*k/(h^2);
for i=1:m-1;
w(i,1)=f(i*h);
end
A=zeros(m-1,m-1);
for i=1:m-1;
A(i,i)=1+2*lamda;
end
for i=2:m-1
j=i-1;
A(i,j)=-lamda;
A(j,i)=-lamda;
end
A
for i=2:n+1
w(:,i)=inv(A)*w(:,i-1);
end
U=zeros(m+1,n+1);
for i=1:m-1;
U(i+1,:)=w(i,:);
end
U=U';
U
for i=1:m+1;
x(i)=(i-1)*h;
end
for j=1:n+1;
y(j)=(j-1)*k;
end
[X Y]=meshgrid(x,y);
mesh(X,Y,U);
POISSON:
clear all
clc
%Ecuacin de Poisson en diferencias finitas.
%Uxx+Uyy=0, a<x<b , c<y<d
%U(x,y)=g(x,y) para a=x o x=b y c<y<d
%U(x,y)=g(x,y) para c=y o y=d y a<x<b
%Salida: w(i,j)=aproximacin de U(xi,tj).
NORM=abs(w(2,j)-z);
end
w(2,j)=z;
for i=3:n-1;
z=(-h^2*fun(x(i),y(j))+w(i-1,j)+lamda*w(i,j+1)+w(i+1,j)+lamda*w(i,j-1))/u;
if abs(w(i,j)-z)>NORM
NORM=abs(w(i,j)-z);
end
w(i,j)=z;
end
z=(-h^2*fun(x(n),y(j))+Gg1(b,y(j))+w(n-1,j)+lamda*w(n,j+1)+lamda*w(n,j-1))/u;
if abs(w(n,j)-z)>NORM
NORM=abs(w(n,j)-z);
end
w(n,j)=z;
end
z=(-h^2*fun(x(2),y(2))+Gg1(a,y(2))+lamda*Gg2(x(2),c)+lamda*w(2,3)+w(3,2))/u;
if abs(w(2,2)-z)>NORM
NORM=abs(w(2,2)-z);
end
w(2,2)=z;
for i=3:n-1;
z=(-h^2*fun(x(i),y(2))+lamda*Gg2(x(i),c)+w(i-1,2)+lamda*w(i,3)+w(i+1,2))/u;
if abs(w(i,2)-z)>NORM
NORM=abs(w(i,2)-z);
end
w(i,2)=z;
end
z=(-h^2*fun(x(n),y(2))+Gg1(b,y(2))+lamda*Gg2(x(n),c)+w(n-1,2)+lamda*w(n,3))/u;
if abs(w(n,2)-z)>NORM
NORM=abs(w(n,2)-z);
end
w(n,2)=z;
U=zeros(n+1,m+1);
if NORM<=TOL
for i=1:n+1;
for j=1:m+1;
U(i,j)=w(i,j);
end
end
end
l=l+1;
end
U=U';
U
[X Y]=meshgrid(x,y);
mesh(X,Y,U);
ONDA:
clear all
clc
%Ecuacin de la onda en diferencias finitas.
%Utt-alfa^2 Uxx=0, 0<x<L , 0<t<T
%U(0,t)=U(L,t)=0, U(x,0)=f(x), Ut(x,0)=g(x)