多项式的系数列表

List of coefficients to polynomial

如何从 SymPy 中的系数列表创建多项式?

例如,给定一个列表 [1, -2, 1] 我想得到 Poly(x**2 - 2*x + 1)。我试着查看 docs 但找不到与之相近的任何内容。

在我看来你会做这样的事情:

from sympy.abc import x
from sympy import poly
lst = [1, -2, 1]
poly(sum(coef*x**i for i, coef in enumerate(reversed(lst))))

当然,你不依赖哪个系数映射到x**0,你可能不需要上面的reversed

您可以使用 Poly.from_list 构造多项式:

>>> x = sympy.Symbol('x')
>>> sympy.Poly.from_list([1, -2, 1], gens=x)
Poly(x**2 - 2*x + 1, x, domain='ZZ')

这个更简单的替代方案对我有用(Sympy 0.7.6.1):

>>> from sympy import Symbol, Poly
>>> x = Symbol('x')
>>> Poly([1,2,3], x)
Poly(x**2 + 2*x + 3, x, domain='ZZ')