我们如何截断幂级数并将其转换为 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 的添加。
我想在 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 的添加。