numpy.poly#

numpy.poly(seq_of_zeros)[source]#

查找具有给定根序列的多项式的系数。

注意

这构成了旧的多项式 API 的一部分。从版本 1.4 开始,建议使用在 numpy.polynomial 中定义的新多项式 API。有关差异的总结,请参阅 过渡指南

返回给定根序列(必须将多重根按其重数包含在序列中;请参阅示例)的多项式的系数,其中首项系数为 1。也可以给出方阵(或数组,它将被视为矩阵),在这种情况下,将返回矩阵的特征多项式的系数。

参数:
seq_of_zerosarray_like,shape (N,) 或 (N, N)

多项式根的序列,或方阵或矩阵对象。

返回值:
cndarray

从最高到最低次的多项式系数的一维数组

c[0] * x**(N) + c[1] * x**(N-1) + ... + c[N-1] * x + c[N],其中 c[0] 始终等于 1。

引发:
ValueError

如果输入形状错误(输入必须是一维或方形二维数组)。

另请参阅

polyval

计算多项式值。

roots

返回多项式的根。

polyfit

最小二乘多项式拟合。

poly1d

一维多项式类。

注意

指定多项式的根仍然留有一个自由度,通常用不确定的首项系数表示。 [1] 在此函数的情况下,该系数(返回数组中的第一个系数)始终取为 1。(如果出于某种原因您还有另一个点,那么目前利用该信息的唯一自动方法是使用 polyfit。)

n×n 矩阵 **A** 的特征多项式 \(p_a(t)\) 由下式给出

\(p_a(t) = \mathrm{det}(t\, \mathbf{I} - \mathbf{A})\),

其中 **I** 是 n×n 单位矩阵。 [2]

参考文献

[1]

M. Sullivan 和 M. Sullivan,III,“代数和三角学,增强了绘图实用程序”,Prentice-Hall,第 318 页,1996 年。

[2]

G. Strang,“线性代数及其应用,第二版”,学术出版社,第 182 页,1980 年。

示例

给定多项式零点的序列

>>> import numpy as np
>>> np.poly((0, 0, 0)) # Multiple root example
array([1., 0., 0., 0.])

以上行表示 z**3 + 0*z**2 + 0*z + 0。

>>> np.poly((-1./2, 0, 1./2))
array([ 1.  ,  0.  , -0.25,  0.  ])

以上行表示 z**3 - z/4

>>> np.poly((np.random.random(1)[0], 0, np.random.random(1)[0]))
array([ 1.        , -0.77086955,  0.08618131,  0.        ]) # random

给定方阵对象

>>> P = np.array([[0, 1./3], [-1./2, 0]])
>>> np.poly(P)
array([1.        , 0.        , 0.16666667])

请注意,在所有情况下,首项系数始终为 1。