numpy.poly1d#

class numpy.poly1d(c_or_r, r=False, variable=None)[原始碼]#

一維多項式類別。

注意

這構成了舊多項式 API 的一部分。自 1.4 版以來,numpy.polynomial 中定義的新多項式 API 是首選。差異摘要可以在轉換指南中找到。

一個便利類別,用於封裝多項式的「自然」運算,以便這些運算可以在程式碼中採用其慣用形式(請參閱範例)。

參數:
c_or_rarray_like

多項式的係數,依遞減冪排列;或者,如果第二個參數的值為 True,則為多項式的根(多項式求值為 0 的值)。例如,poly1d([1, 2, 3]) 返回一個表示 \(x^2 + 2x + 3\) 的物件,而 poly1d([1, 2, 3], True) 返回一個表示 \((x-1)(x-2)(x-3) = x^3 - 6x^2 + 11x -6\) 的物件。

rbool,選用

如果為 True,則 c_or_r 指定多項式的根;預設值為 False。

variablestr,選用

將列印 p 時使用的變數從 x 更改為 variable(請參閱範例)。

範例

建構多項式 \(x^2 + 2x + 3\)

>>> import numpy as np
>>> p = np.poly1d([1, 2, 3])
>>> print(np.poly1d(p))
   2
1 x + 2 x + 3

\(x = 0.5\) 處評估多項式

>>> p(0.5)
4.25

尋找根

>>> p.r
array([-1.+1.41421356j, -1.-1.41421356j])
>>> p(p.r)
array([ -4.44089210e-16+0.j,  -4.44089210e-16+0.j]) # may vary

前一行中的這些數字代表 (0, 0) 到機器精度

顯示係數

>>> p.c
array([1, 2, 3])

顯示階數(前導零係數已移除)

>>> p.order
2

顯示多項式中 k 次方的係數(相當於 p.c[-(i+1)]

>>> p[1]
2

多項式可以相加、相減、相乘和相除(返回商和餘數)

>>> p * p
poly1d([ 1,  4, 10, 12,  9])
>>> (p**3 + 4) / p
(poly1d([ 1.,  4., 10., 12.,  9.]), poly1d([4.]))

asarray(p) 給出係數陣列,因此多項式可以用於所有接受陣列的函數中

>>> p**2 # square of polynomial
poly1d([ 1,  4, 10, 12,  9])
>>> np.square(p) # square of individual coefficients
array([1, 4, 9])

可以使用 variable 參數修改 p 字串表示法中使用的變數

>>> p = np.poly1d([1,2,3], variable='z')
>>> print(p)
   2
1 z + 2 z + 3

從其根建構多項式

>>> np.poly1d([1, 2], True)
poly1d([ 1., -3.,  2.])

這與透過以下方式獲得的多項式相同

>>> np.poly1d([1, -1]) * np.poly1d([1, -2])
poly1d([ 1, -3,  2])
屬性:
c

多項式係數

coef

多項式係數

係數

多項式係數

coeffs

多項式係數

o

多項式的階數或次數

order

多項式的階數或次數

r

多項式的根,其中 self(x) == 0

roots

多項式的根,其中 self(x) == 0

variable

多項式變數的名稱

方法

__call__(val)

將 self 作為函數呼叫。

deriv([m])

傳回此多項式的導數。

integ([m, k])

傳回此多項式的不定積分(反導數)。