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

SymPy中如何使用多变量函数?lambdify调用多变量报错怎么解决

问题修复方案

报错原因

你触发报错的核心原因是lambdify函数的传参格式不符合要求:
SymPy的lambdify标准调用规则为lambdify(变量/变量列表, 待转换的SymPy表达式, 可选后端模块),多变量场景下需要把所有输入变量打包为列表/元组作为第一个参数传入。你原有代码中,把单个符号x作为第一个参数、y作为本该放表达式的第二个参数,原本的表达式x*y被传到了本该传入模块参数的第三个位置,因此触发了类型错误。

修复后代码

from sympy import symbols, lambdify

x, y = symbols("x y")
f_expr = x * y
# 多变量打包为列表作为第一个入参,第二个入参传入待转换的表达式
f = lambdify([x, y], f_expr)
print(f(3, 3))

运行上述代码将正常输出结果9。

额外说明

  • 单变量场景下不需要把变量打包为列表,直接传入单个符号作为第一个参数即可,这也是你之前单变量代码可以正常运行的原因
  • 如果需要批量代入多组输入求值,可以直接传入numpy数组,lambdify默认支持numpy广播运算,示例如下:
import numpy as np
xs = np.array([1, 2, 3])
ys = np.array([4, 5, 6])
print(f(xs, ys)) # 输出 [ 4 10 18]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:54:03