【问题标题】:SymPy: Taylor series using variable other than x?SymPy:使用 x 以外的变量的泰勒级数?
【发布时间】: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                 

【问题讨论】:

  • 对我来说看起来很正常。 tx 在语义上是不同的,它们确实不应该被视为同一个变量。
  • 在任何地方都没有定义x。它神奇地出现在输出中,不请自来。

标签: python sympy


【解决方案1】:

我猜它不希望 t 作为 arg 传递

sympy 通常适用于符号表达式,与函数的视角略有不同

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)

【讨论】:

    猜你喜欢
    • 2014-07-11
    • 2022-06-18
    • 2021-02-08
    • 1970-01-01
    • 2019-05-27
    • 2018-09-13
    • 2016-01-24
    • 2018-06-23
    • 2015-04-30
    相关资源
    最近更新 更多