numpy.polynomial.polynomial.polyfromroots#

polynomial.polynomial.polyfromroots(roots)[源代码]#

生成具有给定根的单项多项式。

返回多项式的系数

\[p(x) = (x - r_0) * (x - r_1) * ... * (x - r_n),\]

其中 \(r_n\) 是在 roots 中指定的根。如果一个零点具有重数 n,那么它必须在 roots 中出现 n 次。例如,如果 2 是重数为 3 的根,而 3 是重数为 2 的根,那么 roots 看起来像 [2, 2, 2, 3, 3]。这些根可以以任何顺序出现。

如果返回的系数是 c,那么

\[p(x) = c_0 + c_1 * x + ... + x^n\]

在这种形式的单项多项式中,最后一项的系数为 1。

参数:
rootsarray_like

包含根的序列。

返回:
outndarray

多项式系数的 1-D 数组。如果所有根都是实数,则 out 也是实数,否则它是复数。(请参阅下面的示例)。

备注

系数是通过将 (x - r_i) 形式的线性因子相乘得到的,即

\[p(x) = (x - r_0) (x - r_1) ... (x - r_n)\]

其中 n == len(roots) - 1; 请注意,这意味着对于 \(a_n\),总是返回 1

示例

>>> from numpy.polynomial import polynomial as P
>>> P.polyfromroots((-1,0,1))  # x(x - 1)(x + 1) = x^3 - x
array([ 0., -1.,  0.,  1.])
>>> j = complex(0,1)
>>> P.polyfromroots((-j,j))  # complex returned, though values are real
array([1.+0.j,  0.+0.j,  1.+0.j])