numpy.poly#
- numpy.poly(seq_of_zeros)[源代码]#
找到具有给定根序列的多项式的系数.
备注
这是旧的多项式API的一部分.自版本1.4起,新的多项式API定义在
numpy.polynomial
中是首选.差异的总结可以在 过渡指南 中找到.返回多项式的系数,该多项式的首项系数为1,对应于给定的零序列(多重根必须在序列中包含与其重数相同的次数;请参见示例).也可以给定一个方阵(或数组,它将被视为矩阵),在这种情况下,返回矩阵的特征多项式的系数.
- 参数:
- seq_of_zerosarray_like, 形状 (N,) 或 (N, N)
多项式根的序列,或方阵或矩阵对象.
- 返回:
- cndarray
从最高次到最低次的多项式系数的一维数组:
c[0] * x**(N) + c[1] * x**(N-1) + ... + c[N-1] * x + c[N]
其中 c[0] 总是等于 1.
- 引发:
- ValueError
如果输入的形状不正确(输入必须是1-D或方形2-D数组).
备注
指定多项式的根仍然留下一个自由度,通常由一个未确定的领先系数表示. [1] 在这个函数的情况下,该系数 - 返回数组中的第一个系数 - 总是取为1.(如果由于某种原因你有一个其他点,目前唯一自动利用该信息的方法是使用
polyfit
.)特征多项式 \(p_a(t)\) ,一个 n 乘 n 矩阵 A 的特征多项式,由以下公式给出:
\(p_a(t) = \mathrm{det}(t\, \mathbf{I} - \mathbf{A})\),
其中 I 是 n-by-n 的单位矩阵. [2]
参考文献
[1]M. Sullivan and M. Sullivan, III, “Algebra and Trigonometry, Enhanced With Graphing Utilities,” Prentice-Hall, pg. 318, 1996.
[2]G. Strang, “Linear Algebra and Its Applications, 2nd Edition,” Academic Press, pg. 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.