【发布时间】:2014-02-16 22:54:17
【问题描述】:
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 识别为它知道如何符号集成的三角函数。我可以只使用 sympy import sin 然后一切正常,但后来我被 func 在 sympy 命名空间中引用 sin 卡住了,而且我将来想对 func 做一些事情,这需要在 numpy 命名空间中使用 sin 来定义.
【问题讨论】:
-
np.sin不会接受sympy.core.symbol.Symbol,我怀疑是否有任何明智的方法可以做到这一点。你为什么要这样做? -
@M4rtini 我想使用 matplotlib 绘制 func,如果 func 是在 sympy 命名空间中使用 sin 定义的,则会导致错误。