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] 用於評估多項式。即便如此,對於高次多項式,由於捨入誤差,值可能不準確。請謹慎使用。
如果 x 是
ndarray
的子型別,則傳回值將為相同型別。參考文獻
[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])