如何使im和diff通勤

时间:2017-07-24 12:31:37

标签: python sympy

实变量的实值函数的微分产生实函数。取实数函数的虚部返回0,如预期的那样

>>> class rho(Function):
        is_real=True

>>> var('t',real=True)
>>> im(rho(t))
0

然而,取该函数导数的虚部不

>>> im(diff(rho(t))
im(Derivative(rho(t),t))

如何让这些操作通勤?

1 个答案:

答案 0 :(得分:0)

我认为让两个操作上下班是一个问题,我认为这是一个语法问题。

Function是所有函数的SymPy基类。如果您查看此参考here以评估此类的实例,我们需要在正文中使用评估函数。

from sympy import *

var('t',real=True)

class rho(Function):
    is_real = True

    # Missing part of your original rho function
    @classmethod
    def eval(cls,t):
        # e.g. 2*t, but any function of t works
        return 2*t

im(rho(t))
# Out: 0

im(diff(cos(t)))
# Out: 0

最初,调用im(Derivative(rho(t),t))的结果是im(Derivative(rho(t),t))。这是unevaluated derivative.的输出。这个结果是有道理的,因为我们还没有定义函数rho的计算方式,所以Derivative函数当然无法对它进行评估。