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)
如果我用多项式替换我的函数,或者我将trig函数直接放入diff运算符,这是有效的.但是在这种格式中,我得到了AttributeError:sin.
基本上我认为python不能识别func只是一个它知道如何符号集成的trig函数.我可能只有同情导入罪,然后事情会起作用,但后来我坚持使用func在sympy命名空间中引用sin,并且我想用func进行未来的事情,这需要在numpy命名空间中使用sin来定义它.
解决方法:
您应该使用SymPy函数以符号方式构建表达式,然后使用lambdify将它们转换为可以使用NumPy计算的内容.