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

Python数值求解差分方程触发IndexError报错如何解决

问题排查与解决

错误原因

你定义的数组/列表长度为N+1,合法索引范围是0到N。循环遍历n的范围是1到N,当n=N时你访问了x[n+1]也就是x[11],超出了索引上限,因此触发IndexError。

修正代码

有两种等效的修改方式,可任选一种:

方式1:调整循环范围

import numpy as np

N = 10
# 两种初始化方式都可正常运行,这里保留numpy数组写法
x = np.zeros(N+1, float)
x[0] = 1000
r = 1.02

for n in range(N):
    x[n+1] = r**(n+1)*x[0]
    print(f"x[{n+1}] = {x[n+1]}")

方式2:调整赋值与打印的下标对应关系

import numpy as np

N = 10
x = (N+1)*[0]
x[0] = 1000
r = 1.02

for n in range(1, N+1):
    x[n] = r**n*x[0]
    print(f"x[{n}] = {x[n]}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:39:02