import numpy as np
import sympy as sym
from numpy import sin
from sympy import symbols, diff
func = lambda x: sin(x)
x = symbols('x')
print diff(func(x),x)
如果我用一个多项式替换我的函数,或者将三角函数直接放入diff运算符中,这样可以正常工作。但是在这种格式下,我会得到AttributeError: sin。
基本上,我认为Python无法识别func只是一个它知道如何符号化积分的三角函数。我可以让SymPy导入sin,然后事情就可以正常工作,但那样我就必须使用SymPy命名空间中的sin来定义func,并且有些未来的事情我想要做的需要使用在NumPy命名空间中使用sin来定义func。
np.sin
不接受sympy.core.symbol.Symbol
,我怀疑没有任何明智的方法可以实现这一点。你为什么要尝试这样做呢? - M4rtini