一维热传导方程(不考虑热源)可以表示为:
其中,T 是温度,t 是时间,α 是热扩散率。
左侧边界x=0处温度为100℃,右侧边界x=1处温度为0℃。
clear;clc;
% 参数设置
N = 50; % 网格数量
Nt= 1000; % 时间步数
L0 = 0; % 区域左侧端点(米)
L1 = 1; % 区域右侧端点(米)
tl= 20; % 计算热传导的时间(秒)
dx = (L1-L0)/N; % 网格大小
alpha = 0.01; % 热扩散率
dt = tl/Nt; % 时间步长
T = zeros(N+1,Nt+1); % 温度矩阵,+1用于存储边界条件
T(:, 1) = 50; % 初始内部温度(初始条件) 这里是50摄氏度,可以修改
A=zeros(N+1,1);
F=zeros(N+1,1);
U=zeros(N+1,1);
% 时间迭代
for j = 2:nt
i=1; % 左边界温度(边界条件)
A(i,i)=1;
F(i,1)=100; % 这里是100摄氏度,可以修改
for i=2:N
A(i,i)=1/dx/dx;
A(i,i-1)=-2/dx/dx;
A(i,i+1)=1/dx/dx;
F(i,1)=T(i,j-1)/dt;
end
i=N+1; % 右边界温度(边界条件)
A(i,i)=1;
F(i,1)=0; % 这里是0摄氏度,可以修改
U=A\F;
T(:,j)=U;
end
T %温度结果