莱布尼茨的符号可能有点困惑,特别是在物理问题中,时间是函数被微分的唯一变量。此外,是否有可能不显示 (t)
之类的函数的 x(t)
并且 sympy 仍然理解 x
是 t
的函数并如此对待它?
最佳答案
您可以使用围绕牛顿物理学设计的 mechanics module 。特别是, dynamicssymbols
会给你一个隐式依赖于 t
的符号。
In [10]: x, y = dynamicsymbols('x y')
In [11]: x
Out[11]: x(t)
默认情况下,这些仍然会使用
(t)
打印,但是如果您启用了机械打印机,它们将不会。In [1]: from sympy.physics.mechanics import dynamicsymbols, init_vprinting
In [2]: init_vprinting
Out[2]: <function sympy.physics.vector.printing.init_vprinting>
In [3]: init_vprinting()
In [4]: x
Out[4]: x
In [5]: t = sympy.Symbol('t')
In [6]: y.diff(t)
Out[6]: ẏ
在您开发的任何交互式环境中使用
init_vprinting
而不是 init_printing
,例如 IPython notebook(如果您想从 scrpt 打印内容,也可以使用 mpprint
等函数)。如果您想了解有关 SymPy 机制模块的更多信息,请阅读文档,并查看 2014 SciPy session 中的 tutorial。
关于python - 是否可以在 sympy 中实现牛顿点表示法(或拉格朗日素数表示法)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25346132/