如何在sympy

时间:2018-03-07 05:55:06

标签: sympy

在动态系统中,我的基本值都是时间函数d(t)。我使用d d = Function('d')(t)

创建变量t = S('t')

显然,d的衍生物(速度等变化率)很常见。但是,diff(d(t))的默认打印提供: -

Derivative(d(t), t)

在ipython中使用漂亮的打印(例如)可以提供更好看的版本: -

d/dt (d(t))

在我的问题中包含d(t)衍生词的函数相当长,我希望打印的表示形式类似于d'(t)\dot(d)(t)(Latex) )。

这可能是同情吗?我可以使用subs解决此问题,但更喜欢通用的 sympy_print 函数或我可以调整的内容。

1 个答案:

答案 0 :(得分:0)

您已找到的vector printing模块是在SymPy中实现此类打印的唯一位置。

from sympy.physics.vector import dynamicsymbols
from sympy.physics.vector.printing import vpprint, vlatex
d = dynamicsymbols('d')
vpprint(d.diff())     # ḋ
vlatex(d.diff())      # '\\dot{d}'

常规打印机(漂亮,LaTeX等)不支持衍生品的素数或点符号。编写了它们的_print_Derivative方法,以便它们也适用于多变量表达式,其中必须通过使用某种d / dx表示法来指定变量。

一般来说,选择较短的衍生符号会更好。