在动态系统中,我的基本值都是时间函数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 函数或我可以调整的内容。
答案 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表示法来指定变量。
一般来说,选择较短的衍生符号会更好。