Está en la página 1de 2

% CIq=(20 50*sin(pi*x)); CF1q=100; CF2q=100; Nx=5;

% Nt=11; Xf=1; tf=0.1; Alfa=1


clear all; clc;
CIq=input('Ingrese la condicion inicial: ','s');
CF1q=input('Ingrese la condicion de frontera 1: ','s');
CF2q=input('Ingrese la condicion de frontera 2: ','s');
Nx=input('Ingrese el numero de puntos de la malla en el eje x: ');
Nt=input('Ingrese el numero de puntos de la malla en el eje t: ');
Xf=input('Ingrese la longitud total del eje x: ');
tf=input('Ingrese el tiempo maximo por considerar: ');
Alfa=input('Ingrese el coeficiente alfa: ');
CI=inline(CIq);
CF1=inline(CF1q);
CF2=inline(CF2q);
Dx=Xf/(Nx-1); Dt=tf/(Nt-1);
Lambda=Alfa*Dt/((Dx)^2);
fprintf(' X (pies)')
Xp=(0:Xf/(Nx-1):Xf);
for i=1:Nx
fprintf(' %15.8f',Xp(i))
end
fprintf(' \n')
disp('----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------')
for i=2:Nx-1
T(i)=feval(CI,Dx*(i-1));
end
T(1)=(feval(CI,0)+feval(CF1,0))/2;
T(Nx)=(feval(CI,Xf)+feval(CF2,0))/2;
fprintf(' 0.0000')
for i=1:Nx
fprintf(' %15.4E',T(i))
end
fprintf(' \n')
I=1;
while I<=(Nx-2)
A(I)=Lambda;
B(I)=-2-2*Lambda;
C(I)=Lambda;
I=I+1;
end
J=1;
while J<=(Nt-1)
T(1)=feval(CF1,(Dt*J));
T(Nx)=feval(CF2,(Dt*J));
I=1;
while I<=(Nx-2)
D(I)=T(I+1);
D(I)=-Lambda*T(I)-(2-2*Lambda)*T(I+1)-Lambda*T(I+2);
I=I+1;
end
D(1)=D(1)-Lambda*T(1);
D(Nx-2)=D(Nx-2)-Lambda*T(Nx);
[X]=thomasfun(Nx-2,B,C,A,D);
I=1;
while I<=(Nx-2)

T(I+1)=X(I);
I=I+1;
end
fprintf(' %5.4f',Dt*J)
for I=1:Nx
fprintf(' %15.4E',T(I))
end
J=J+1;
fprintf(' \n')
end