numpy.polyval#

numpy.polyval(p, x)[source]#

在特定值計算多項式。

注意

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

如果 p 的長度為 N,此函數會傳回值

p[0]*x**(N-1) + p[1]*x**(N-2) + ... + p[N-2]*x + p[N-1]

如果 x 是一個序列,則會針對 x 的每個元素傳回 p(x)。如果 x 是另一個多項式,則會傳回複合多項式 p(x(t))

參數:
p類陣列或 poly1d 物件

多項式係數 (包含等於零的係數) 的 1D 陣列,從最高次項到常數項,或是 poly1d 的實例。

x類陣列或 poly1d 物件

數字、數字陣列或 poly1d 的實例,用於評估 p

傳回:
valuesndarray 或 poly1d

如果 x 是 poly1d 實例,則結果是兩個多項式的組合,亦即,x 被「代入」p,並傳回簡化後的結果。此外,x 的型別 (類陣列或 poly1d) 決定了輸出的型別:x 類陣列 => values 類陣列,x poly1d 物件 => values 也是。

另請參閱

poly1d

多項式類別。

說明

霍納演算法 [1] 用於評估多項式。即便如此,對於高次多項式,由於捨入誤差,值可能不準確。請謹慎使用。

如果 xndarray 的子型別,則傳回值將為相同型別。

參考文獻

[1]

I. N. Bronshtein, K. A. Semendyayev, and K. A. Hirsch (Eng. trans. Ed.), Handbook of Mathematics, New York, Van Nostrand Reinhold Co., 1985, pg. 720.

範例

>>> import numpy as np
>>> np.polyval([3,0,1], 5)  # 3 * 5**2 + 0 * 5**1 + 1
76
>>> np.polyval([3,0,1], np.poly1d(5))
poly1d([76])
>>> np.polyval(np.poly1d([3,0,1]), 5)
76
>>> np.polyval(np.poly1d([3,0,1]), np.poly1d(5))
poly1d([76])