【发布时间】:2017-06-29 21:51:20
【问题描述】:
我一直在搜索文档,但我被困住了:即使我只声明了“t”和“y(t)”,SymPy 似乎也假设了一个变量“x”。我要求它给我一个 y(t) 的系列,这就是我得到的……
>>> from sympy import *
>>> var('t')
t
>>> y = Function("y")
>>> s = y(t).series(t, 0, 4)
>>> pprint(s)
⎛ 2 ⎞│ ⎛ 3 ⎞│
2 ⎜ d ⎟│ 3 ⎜ d ⎟│
t ⋅⎜───(y(x))⎟│ t ⋅⎜───(y(x))⎟│
⎜ 2 ⎟│ ⎜ 3 ⎟│
⎛d ⎞│ ⎝dx ⎠│x=0 ⎝dx ⎠│x=0 ⎛ 4⎞
y(0) + t⋅⎜──(y(x))⎟│ + ────────────────── + ────────────────── + O⎝t ⎠
⎝dx ⎠│x=0 2 6
我如何得到一个泰勒级数,其中 d/dt's 而不是 d/dx's,以及 y(t) 而不是 y(x)?
(顺便说一句,试图用 t 代替 x 是行不通的,因为 x 甚至没有被定义,所以你得到一个错误)
编辑:为了澄清,这就是我想要的:
>>> pprint(s)
⎛ 2 ⎞│ ⎛ 3 ⎞│
2 ⎜ d ⎟│ 3 ⎜ d ⎟│
t ⋅⎜───(y(t))⎟│ t ⋅⎜───(y(t))⎟│
⎜ 2 ⎟│ ⎜ 3 ⎟│
⎛d ⎞│ ⎝dt ⎠│t=0 ⎝dt ⎠│t=0 ⎛ 4⎞
y(0) + t⋅⎜──(y(t))⎟│ + ────────────────── + ────────────────── + O⎝t ⎠
⎝dt ⎠│t=0 2 6
甚至
>>> pprint(s)
⎛ 2 ⎞│ ⎛ 3 ⎞│
2 ⎜ d ⎟│ 3 ⎜ d ⎟│
h ⋅⎜───(y(t))⎟│ h ⋅⎜───(y(t))⎟│
⎜ 2 ⎟│ ⎜ 3 ⎟│
⎛d ⎞│ ⎝dt ⎠│t=0 ⎝dt ⎠│t=0 ⎛ 4⎞
y(0) + h⋅⎜──(y(t))⎟│ + ────────────────── + ────────────────── + O⎝h ⎠
⎝dt ⎠│t=0 2 6
【问题讨论】:
-
对我来说看起来很正常。
t和x在语义上是不同的,它们确实不应该被视为同一个变量。 -
在任何地方都没有定义
x。它神奇地出现在输出中,不请自来。