numpy.poly#

numpy.poly(seq_of_zeros)[source]#

找出具有給定根序列的多項式係數。

注意

這是舊多項式 API 的一部分。自 1.4 版本起,建議使用在 numpy.polynomial 中定義的新多項式 API。差異摘要請見轉換指南

對於給定的零點序列,傳回領先係數為 1 的多項式係數(重複根必須在其重數中包含在序列中;請參閱範例)。也可以給定一個方陣(或陣列,將被視為矩陣),在這種情況下,將傳回矩陣的特徵多項式的係數。

參數:
seq_of_zeros類陣列 (array_like),形狀 (N,) 或 (N, N)

多項式根的序列,或方陣或矩陣物件。

傳回值:
cndarray

從最高次到最低次的多項式係數一維陣列

c[0] * x**(N) + c[1] * x**(N-1) + ... + c[N-1] * x + c[N] where c[0] always equals 1.

引發:
ValueError

如果輸入形狀錯誤(輸入必須是一維或二維方陣列)。

另請參閱

polyval

計算多項式值。

roots

傳回多項式的根。

polyfit

最小平方法多項式擬合。

poly1d

一維多項式類別。

註解

指定多項式的根仍然留下一個自由度,通常由未確定的領先係數表示。[1] 在此函數的情況下,該係數(傳回陣列中的第一個)始終被視為 1。(如果由於某些原因您還有另一個點,目前利用該資訊的唯一自動方法是使用 polyfit。)

矩陣 A 的特徵多項式 \(p_a(t)\),由下式給出

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

其中 Inn 單位矩陣。[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。