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

Python中拉格朗日插值代码出现Traceback问题求助

拉格朗日插值代码错误排查

核心错误点:

  • 变量未初始化:函数Lagrange内部直接执行y_int = y_int + ...,但y_int未提前初始化为0,会触发NameError。
  • 循环范围错误:range(1, n)会跳过索引为0的节点,拉格朗日插值需要遍历所有n个节点,应改为range(n)。
  • 外部变量依赖:n定义在函数外部,逻辑不严谨,建议在函数内部通过n = len(x)获取节点数量。

修正后的代码:

import numpy as np

x = np.array([0, 1, 2, 3])
y = np.array([1, 2, 5, 10])

def Lagrange(x, y, x_int):
    n = len(x)
    y_int = 0  # 初始化插值结果
    for i in range(n):
        L = 1  # 每个基函数初始化为1
        for j in range(n):
            if i != j:
                L = L * (x_int - x[j]) / (x[i] - x[j])
        y_int += y[i] * L
    return y_int

y_int = Lagrange(x, y, 2)
print(y_int)

验证说明:

当x_int=2时,插值结果应等于y[2]=5,修正后的代码运行后会输出5,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:20:22