我尝试用 scipy.optimize.fsolve 转换一个 sympy 表达式来解决这个表达式。这是一个简约的例子:
import numpy as np
import sympy as sy
import scipy as sc
import scipy.optimize as sc
a=sy.symbols('a')
G=sy.sin(a)
test = sy.lambdify(a,G,"numpy") #also "sympy" will not help
sc.fsolve(test,a)
我会收到以下错误
AttributeError: 'Symbol' object has no attribute 'sin'
TypeError: loop of ufunc does not support argument 0 of type Symbol which has no callable sin method
我使用 python (3.8.10)、numpy (1.20.2)、sympy (1.8) 和 scipy (1.6.2)。一些讨论将此归因于命名空间问题,但这里不应该是这种情况。有人可以解释我做错了什么吗?