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

二维热扩散建模中for循环的索引错误排查请求

二维热扩散建模索引错误排查及修复

问题根源

  1. 索引越界:循环变量n的范围是0~99(N=100),当n=99时,n+1=100,超出了N×N数组的最大索引99,导致T[0][n+1]、T[n+1][0]等操作触发索引错误。
  2. 错误赋值逻辑:循环内重复对边界赋值,且T[0][n] = Twall1+Twall2完全不符合需求(第一面墙应设为50℃,而非两者相加)。
  3. 中间区域赋值位置错误:室内空气温度的赋值被放在循环内,会重复执行且逻辑混乱。

修正后的代码

import numpy as np

N = 100
# 温度参数
Tair = 20
Twall1 = 50  # 第一面墙
Twall2 = 40  # 第二面墙
Twall34 = 0  # 其余两面墙

# 初始化温度数组
T = np.empty([N, N])

# 设置边界温度
T[0, :] = Twall1  # 第一行(全列)设为50℃
T[:, 0] = Twall2  # 第一列(全行)设为40℃
T[-1, :] = Twall34  # 最后一行设为0℃
T[:, -1] = Twall34  # 最后一列设为0℃

# 设置内部区域初始温度为20℃
T[1:-1, 1:-1] = Tair

关键修正点

  • 用numpy切片赋值替代循环,彻底避免索引越界,同时代码更简洁高效。
  • 明确区分各边界的赋值逻辑,对应建模要求的四面墙体温度。
  • 单独对内部区域(排除所有边界)赋值初始空气温度,逻辑清晰无冗余。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:37:08