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

lambdify转换sympy表达式供scipy.optimize调用时报Symbol无sin属性错误

错误原因
  • scipy.optimize.fsolve的第二个入参要求传入数值类型的初始迭代猜测值,你代码中传入的是Sympy定义的符号对象a。你通过lambdify生成的test函数绑定了Numpy后端,接收符号类型输入时,Numpy的数值运算方法无法处理Sympy的Symbol类型,直接触发对应报错。
  • 代码导入逻辑存在命名空间覆盖隐患:先后执行import scipy as sc、import scipy.optimize as sc,会将sc变量原本指向的scipy根模块覆盖为scipy.optimize模块,后续如果需要调用scipy根模块下的其他方法会出现异常。
修正后代码
import numpy as np
import sympy as sy
import scipy.optimize as opt

a = sy.symbols('a')
G = sy.sin(a)
test = sy.lambdify(a, G, "numpy")
# 传入数值类型的初始猜测值,比如1.0
solve_res = opt.fsolve(test, 1.0)
print(solve_res)

运行后会输出结果[3.14159265],符合sin(π)=0的方程解预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:24:00