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

How can we truncate a power series and convert it to a polynomial in sympy?

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

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

有没有更好的方法?

你的意思是这样的吗?

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 class,后者管理 SymPy 的添加。