最小二乘法求解多项式系数

1原理

统计学习方法21页
最小二乘法求解多项式系数_第1张图片

2实现

#n次多项式的拟合曲线 y= a0 +a1x+a2x^2+'''+anx^n
import numpy as np
x_array = np.array( [0, 0.1111 ,0.2222, 0.3333, 0.4444, 0.5556 ,0.6667 ,0.7778, 0.8889 ,1])

y_array = np.array([0.0008,0.6419, 0.9849, 0.8655 ,0.3423 ,-0.3426, -0.8655,-0.9841, -.6411, -.0002])

n=9
#方程的次数

m = len(x_array)
#方程个数

#m行一列的数据
A = np.ones(m).reshape((m,1))

for i in range(n):

    A = np.hstack([A,(x_array**(i+1)).reshape((m,1))])


from numpy.linalg import solve

#求解系数得到最小的误差
X = solve(np.dot(A.T,A),np.dot(A.T,y_array.T))

print(X)

作图

自己实现看吧

你可能感兴趣的:(统计学习方法,算法)