Sympy或Wxmaxima中的微分算子

时间:2018-11-08 13:41:05

标签: python sympy symbolic-math maxima

是否可以使用sympy或wxmaxima等开源软件生成线性微分算子,并将其应用于函数。例如,让微分算子L为:

L = d^2/dx^2 + d^2/dy^2 +d/dx

f = x^2*y^3

例如,我想将L/3 + L^2/3^2 +L^3/3^3应用于f。在mathematica中,可以按以下链接进行操作: https://mathematica.stackexchange.com/questions/72433/polynomial-expansion-of-operator

2 个答案:

答案 0 :(得分:2)

如建议的那样,但您可以考虑使用递归定义:

>>> def L(n, f):
...     if n==1:
...         return diff(f, x) + diff(f, x, 2) # for example
...     return L(n-1, L(1,f))
>>> L(2, x**2+y/x)
2 + 2*y/x**3 + 6*y*(-1 + 4/x)/x**4 - 6*y/x**4

答案 1 :(得分:1)

SymPy没有“差分运算符”类型的对象。但是执行差异化的Python函数确实可以满足您的描述。

>>> L = lambda f: f.diff(x, 2) + f.diff(y, 2) + f.diff(x)
>>> L(x**2*y**3)
6*x**2*y + 2*x*y**3 + 2*y**3