我们如何截断幂级数并将其转换为同情的多项式?

时间:2015-09-30 10:03:42

标签: math sympy

我想在sympy中截断一个幂级数,并将结果用作多项式。我现在正在做的事情有点难看(例如4级):

truncated_series = 0
for i,term in zip(range(5), f.lseries()):
    truncated_series += term

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

你的意思是这样吗?

In [1]: f = sin(x)

In [2]: s = series(f, x, 0, 5)

In [3]: s
Out[3]: 
     3        
    x     / 5\
x - -- + O\x /
    6         

In [4]: s.removeO()
Out[4]: 
   3    
  x     
- -- + x
  6     

这些步骤很简单。

如果您不再使用 .lseries(),那么您可以这样做:

In [5]: import itertools  

In [6]: Add(*itertools.islice(f.lseries(), 5))
Out[6]: 
   9       7      5    3    
  x       x      x    x     
------ - ---- + --- - -- + x
362880   5040   120   6    

说明: islice 从生成器中选取5个元素,这些元素作为参数传递给 Add 类,后者管理SymPy的添加。