一维热传导方程(不考虑热源)可以表示为:
其中,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,:) = 100; % 左边界温度(边界条件)
T(end,:) = 0; % 右边界温度(边界条件)
T(:, 1) = 50; % 初始内部温度(初始条件)
% 时间迭代
for j = 2:nt
% 内部节点更新(这里使用显式有限差分,实际应用中可能需要隐式或更复杂的方法)
for i = 2:Nx-1
T(i,j)=T(i,j-1)+alpha*dt/(dx^2)*(T(i+1,j-1)-2*T(i,j-1)+T(i-1,j-1));
end
end
T %温度结果