我想在sympy中截断一个幂级数,并将结果用作多项式。我现在正在做的事情有点难看(例如4级):
truncated_series = 0
for i,term in zip(range(5), f.lseries()):
truncated_series += term
有更好的方法吗?
答案 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的添加。