实变量的实值函数的微分产生实函数。取实数函数的虚部返回0,如预期的那样
>>> class rho(Function):
is_real=True
>>> var('t',real=True)
>>> im(rho(t))
0
然而,取该函数导数的虚部不
>>> im(diff(rho(t))
im(Derivative(rho(t),t))
如何让这些操作通勤?
答案 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
函数当然无法对它进行评估。