Python SymPy:使用x以外变量的泰勒级数?
我一直在搜索文档,但我被卡住了:即使我只声明了“t”和“y(t)”,SymPy似乎也假设了一个变量“x”。我要求它给我一个y(t)系列,这就是我得到的Python SymPy:使用x以外变量的泰勒级数?,python,sympy,Python,Sympy,我一直在搜索文档,但我被卡住了:即使我只声明了“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)
>>> 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代替d/dx,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
我猜它不想作为arg通过 Symphy通常使用符号表达式,这与函数的角度略有不同
y = Function("y")
y.series(t, 0, 4)
Out[7]: t
或者用一点东西来实际给出系列术语:
y = sin(t)
y.series(t, 0, 8)
Out[10]: t - t**3/6 + t**5/120 - t**7/5040 + O(t**8)
我觉得很正常。
t
和x
在语义上是不同的,它们不应该被视为同一个变量。任何地方都没有定义x
。它神奇地出现在输出中,未经请求。