Python反向循环实现数学公式时代码运行异常,错误原因排查
问题原因
核心问题出在外层循环的range参数配置错误:
- Python 内置
range函数默认步长为1,你当前写的range(n-2, 0)如果满足n-2>0,那么起始值大于结束值、步长为正的情况下,这个区间是空集,外层循环会直接跳过不执行,自然没有预期输出 - 就算调整步长,
range是左闭右开区间,你把结束位置设为0的话,迭代过程不会包含i=0的情况,不符合你要求的从n-2迭代到0的需求
修复方案
把外层循环的range调整为反向步长,结束位置设为-1确保i能取到0即可:
for i in range(n-2, -1, -1): X[i] = Y[i] for m in range(i+1, n): X[i] = X[i] - T[i,m] * X[m]
如果修改后仍有异常,可确认数组维度是否匹配:X、Y应为长度为n的一维numpy数组,T应为形状为(n,n)的二维numpy数组。
内容的提问来源于stack exchange,提问作者Hexi
相关产品推荐
相关产品推荐

