1-d heat transfer equation

11 visualizaciones (últimos 30 días)
chang hoon oh
chang hoon oh el 12 de Jun. de 2020
Respondida: Walter Roberson el 12 de Jun. de 2020
now i am wirte the heat equation code. it tisn't work ,,
L=10cm, dx=1cm n=10 T(11,200)
the initial condition is T(*,1)= 293K
the boundary condition is T(1,*)=373k , T(11,*)=T(10,*)
and this is my code
clear
clc
L=10;
n=11;
dx=L/n;
dt=0.005;
t=1;
nt=200;
alpha=0.001;
beta=alpha*dt*(1/(dx)^2);
T0=293;
T1=373;
for j=1:nt
for i=2:n-1
T1(i)=((1-2*beta)*T0(i)+beta*T0(i-1)+beta*T0(i+1));
end
end
plot(T1)
  1 comentario
KSSV
KSSV el 12 de Jun. de 2020
Your T0 is a scalar, and you are using it as a vector.

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 12 de Jun. de 2020
T0=293;
That is a scalar.
for i=2:n-1
i starts at 2
T1(i)=((1-2*beta)*T0(i)+beta*T0(i-1)+beta*T0(i+1));
You use T0(i) and T0(i+1) . On the first iteration that would be trying to access T0(2) and T0(2+1) . But T0 is a scalar.
for j=1:nt
Your for i loop does not use j at all, and has no feedback -- the calculation of T1(i) has no reliance on T1(i) calculated from an earlier for j value. Therefore in your code, your for j is a waste of time: every j iteration is going to produce the same T1 vector.

Más respuestas (0)

Categorías

Más información sobre Thermal Analysis en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by