1-d heat transfer equation
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
chang hoon oh
le 12 Juin 2020
Réponse apportée : Walter Roberson
le 12 Juin 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 commentaire
Réponse acceptée
Walter Roberson
le 12 Juin 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.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Thermal Analysis dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!