【问题标题】:Derivatives Discretization with SympySympy 的导数离散化
【发布时间】:2013-09-13 02:56:27
【问题描述】:

有没有办法在 sympy 中离散化未知函数的导数?我正在努力实现以下目标:

from sympy import *

>>> f = Function('f')
>>> x = Symbol('x')

>>> dfdx = Derivative(f(x),x).somemethod()
>>> print dfdx
    (f(x+1) - f(x-1)) / 2
>>> eq = lambdify((f,x),dfdx)
>>> w = np.array([1,5,7,9])
>>> print eq(w,1)
    -3

【问题讨论】:

  • 目前还没有实现任何方法,但是自己来做会很简单。您可能需要了解subs,仅此而已。如果您创建了这样的方法,sympy 团队可能有兴趣在 github 上从您那里获得拉取请求。
  • 我同意克拉斯塔诺夫的观点。具有高阶导数的通用版本非常复杂,因此在库本身中包含它会很有用。
  • 感谢两位的信息!我会调查的。我是一个同情的新手,所以我想它不会是微不足道的。

标签: python sympy pde differential-equations differentiation


【解决方案1】:

阅读此问题后,我已在 Sympy 中实现了此功能,目前可用于:

我的分支:https://github.com/bjodah/sympy/tree/finite_difference

sympy master (https://github.com/sympy/sympy),将在 0.7.6 中可用

这是一个例子:

>>> from sympy import symbols, Function, as_finite_diff
>>> x, h = symbols('x h')
>>> f = Function('f')
>>> print(as_finite_diff(f(x).diff(x), h))
-f(-h/2 + x)/h + f(h/2 + x)/h

【讨论】:

  • 酷。我试试看!
猜你喜欢
  • 1970-01-01
  • 2011-04-28
  • 2023-04-02
  • 1970-01-01
  • 2020-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多