【问题标题】:Differential operator in Sympy or in WxmaximaSympy 或 Wxmaxima 中的微分算子
【发布时间】:2018-11-08 13:41:05
【问题描述】:

是否可以用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

【问题讨论】:

    标签: python sympy symbolic-math maxima


    【解决方案1】:

    按照建议,但您可以考虑递归定义:

    >>> 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
    

    【讨论】:

      【解决方案2】:

      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
      

      【讨论】:

      • 你如何执行 L^2 或 L^n ?
      • 对于像 2 这样的显式幂,在循环中应用 L。对于符号权力,这是行不通的,但无论如何,在 SymPy 中几乎没有任何符号顺序导数的实现。
      猜你喜欢
      • 2016-06-03
      • 2021-09-11
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多