Numpy中的多項式表示及擬合

2021-10-02 05:19:48 字數 2753 閱讀 1908

官方文件的解釋:一維多項式類,用於封裝多項式上的「自然」運算,以便所述運算可以採用**中的慣用形式。

引數解釋:

c_or_r : array_like

多項式的係數,按照冪的降序排列。如果第二個引數為 `true`,則表示多項式的根。

比如 ``poly1d([1, 2, 3])`` 返回的物件表示:math:`x^2 + 2x + 3`;

而``poly1d([1, 2, 3], true)`` 返回表示:math:`(x-1)(x-2)(x-3) = x^3 - 6x^2 + 11x -6`。

r : bool, optional

如果為 `true`,第乙個引數表示多項式的多個根。預設 `false`。

variable : str, optional

改變列印時未知數的表示字元。如:

p = poly1d([1,2], false, varibale='z')

print(p) ====>> 1z + 2

類的方法
# 構造多項式 x^2 + 2x + 4

p = np.poly1d([1

,2,4

])

__call__(x)多項式運算

計算多項式px處的值。等價於np.polyval(p, x)

p(

0.5)

# 返回 5.25p([

1,2,

3])# 返回 array([ 7, 12, 28])

deriv(m=1)求導

返回多項式的m階導數,返回poly1d例項。和函式np.polyder(p, m)等價。

d = p.deriv(

)print

(d)# 2x + 2

integ(m=1, k=none)不定積分

返回多項式的m次不定積分,返回poly1d例項;

k為每次積分後的常數項,m=1時可為數字,否則是長度為m的列表。

和函式np.polyint(p, m, k)等價。

i = p.integ(

)print

(i)# 0.3333 x^3 + x^2 + 4x

類的屬性

p.r 求根

p.c 多項式係數

p.order 多項式的階

p[n] 第n階的係數:等於p[-(n+1)]

p.r				# array([-1.+1.73205081j, -1.-1.73205081j])

p.c # array([1, 2, 4])

p.order # 2p[0

]# 4

多項式物件可之間進行常用的數**算。

np.polyfit()方便地進行多項式擬合。採用最小二乘法進行擬合,返回多項式的係數。引數如下:

x : array_like, shape (m,)

m個樣本在x軸上的座標 ``(x[i], y[i])``.

y : array_like, shape (m,) or (m, k)

樣本在y軸上的座標點。如果有多列,每一列分別進行擬合。

deg : int

擬合的多項式的階

full : bool, optional

決定返回值內容。當是 `false` 時,僅返回多項式的係數,預設 `false`。為 `true` 時,

奇異值分解的診斷資訊也將被返回。

其餘引數rcond, w, cov目前暫未使用到,理解不到位。

使用舉例:

# 構造資料並進行擬合

x = np.array(

[0.0

,1.0

,2.0

,3.0

,4.0

,5.0])

y = np.array(

[0.0

,0.8

,0.9

,0.1,-

0.8,

-1.0])

z = np.polyfit(x, y,3)

print

(z)# >>> array([ 0.08703704, -0.81349206, 1.69312169, -0.03968254]) # may vary

# 使用擬合的多項式

y_ = np.polyval(z,

[0.5

,1.5])

pring(y_)

# >>> array([0.61438492, 0.96339286])

主要內容來自對官方文件的翻譯,做一記錄,加深記憶。

意外知道了python中類的__call__()方法,可直接使用類例項的名稱進行呼叫。

MATLAB多項式及多項式擬合

多項式均表示為陣列形式,陣列元素為多項式降冪係數 1.polyval函式 求多項式在某一點或某幾個點的值.p 1,1,1 x 2 x 1 x 1,0,1 y polyval p,x 另外求函式在某一點或某幾個點的值可以用函式feval.x 1,0,1 y feval x exp x x 注意用的乘法...

多項式擬合缺點 多項式擬合

在網上看別人的心得 一 最小二乘法的基本原理 從整體上考慮近似函式同所給資料點 i 0,1,m 誤差 i 0,1,m 的大小,常用的方法有以下三種 一是誤差 i 0,1,m 絕對值的最大值,即誤差 向量的 範數 二是誤差絕對值的和,即誤差向量r的1 範數 三是誤差平方和的算術平方根,即誤差向量r的2...

多項式擬合

class1.cs 擬合類 using system using system.collections.generic using system.text namespace 最小二乘法擬合多項式 guass i,j sumarr arrx,i,arry,1,length return comput...