フィルターのクリア

1-d heat transfer equation

3 ビュー (過去 30 日間)
chang hoon oh
chang hoon oh 2020 年 6 月 12 日
回答済み: Walter Roberson 2020 年 6 月 12 日
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 件のコメント
KSSV
KSSV 2020 年 6 月 12 日
Your T0 is a scalar, and you are using it as a vector.

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2020 年 6 月 12 日
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 件)

カテゴリ

Help Center および File ExchangeThermal Analysis についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by