You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab非稳态热传导迭代循环无法更新T_i矩阵问题求助

Matlab一维非稳态热传导迭代代码修正方案

问题原因

原代码中T_i的更新逻辑放在了迭代循环外部,所有时间步计算全程使用初始温度场计算,因此输出的T矩阵所有行数值完全相同。

修改后代码

function stainless_steel(~,~,~)
clear,clc
% 初始温度场,边界节点固定为0
T_i = [0 0 12.5 25 37.5 50 0];
k = 0.0162;
cp = 0.5;
rho = 8000;
dt = 3;
dx = 0.0125;
t = 120;
q = 20000;
    
Fo = (k*dt)/(((dx)^2)*rho*cp);
e_gen = q*(dt)/(rho*cp);
n = t/dt; % 总迭代次数40次
T = zeros(n,7);
    
for iteration = 1:n
    % 先赋值当前迭代步的边界温度
    T(iteration,1) = 0;
    T(iteration,7) = 0;
    % 计算内部节点温度
    for x = 2:6
        T(iteration,x) = Fo*(T_i(x+1)+273.15 + T_i(x-1)+273.15) + (T_i(x)+273.15)*(1-2*Fo) + e_gen - 273.15;
    end
    % 更新温度场为当前步计算结果,用于下一次迭代
    T_i = T(iteration,:);
end
disp(T)
end

核心修改点

  • 将T_i的更新操作移到了单次迭代循环内部,每完成一个时间步的温度计算后,立刻将T_i替换为当前时间步的计算结果,下一次迭代直接使用上一步的温度场作为输入计算。
  • 补充了边界节点的显式赋值逻辑,避免边界温度出现未定义的问题。

内容的提问来源于stack exchange,提问作者Carlos Puente

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 07:36:03