Python中numpy.polyfit的用法详解

numpy中polyfit的用法

参数

polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False):

x:M个采样点的横坐标数组;
y:M个采样点的纵坐标数组;y可以是一个多维数组,这样即可拟合相同横坐标的多个多项式;
deg:多项式阶数。
rcond:Relative condition number,float型,缺省值为 l e n ( x ) ∗ 2 e − 16 len(x)*2e^{-16} len(x)2e16
full:bool型,缺省为False,此时只返回系数向量;full=True时还返回奇异值分解的诊断信息。
w:要应用于采样点的y坐标的权重。缺省为None,形式应该为和y一样长的数组。
cov:bool型,返回估计值及其协方差矩阵。当full=True时不返回cov。

返回值p:多项式系数矩阵,从高阶到低阶,最后一位是常数项。

功能

根据用户给定的x、y、多项式阶数等信息拟合多项式。返回值是一个系数向量。

原理

最小二乘拟合。即使得平方误差最小化。即使得下式最小:
E = ∑ j = 0 k ∣ p ( x j ) − y j ∣ 2 E = \sum_{j=0}^k |p(x_j) - y_j|^2 E=j=0kp(xj)yj2

用例

>>> 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)
>>> z
array([ 0.08703704, -0.81349206,  1.69312169, -0.03968254])

你可能感兴趣的:(python,numpy)