最小二乘線性擬合

2021-06-27 17:04:34 字數 1646 閱讀 8315

實驗:給出實驗資料

程式**如下:

##############################################

#write by void, 2013.4.15,beijing

##############################################

import matplotlib.pyplot as plt

import numpy as np

x =[13,15,16,21,22,23,25,29,30,31,36,40,42,55,60,62,64,70,72,100,130]

y =[11,10,11,12,12,13,13,12,14,16,17,13,14,22,14,21,21,24,17,23,34]

#錯誤檢驗

if len(x) != len(y):

print "error"

exit

#構造矩陣    

tmp = [1]*len(x)

x_m = np.matrix((x,tmp)).astype(np.int)

y_m = np.matrix(y).astype(np.int)

plt.plot(x,y,"ro")

#plt.show()

#x,y的轉置

x_m_t = x_m.t

y_m_t = y_m.t

#最小二乘法擬合

x_m_change = x_m * x_m_t

y_m_change = x_m * y_m_t

#化簡結果

out = x_m_change ** -1 * y_m_change

#print out

xx = np.linspace(0,200,140)

yy = 0.17952242*xx + 8.2084078

plt.plot(xx,yy,label="$0.17952242x+8.2084078$",color="red",linewidth=3)

plt.show()

輸出結果為:

python 2.7.3 (default, apr 10 2012, 23:31:26) [msc v.1500 32 bit (intel)] on win32

>>> ******************************== restart ******************************==

>>>

[[ 0.17952242]

[ 8.2084078 ]]

>>> 

與上述結果一致,下面為點集圖

擬合出來的直線為:

參考**:

最小二乘擬合 6 7 最小二乘擬合問題

資料擬合問題的一般形式 任給一組離散資料 注 這裡的擬合函式不一定為多項式函式 記殘量的平方和為 求使得殘量平方和最小得一組係數就是線性最小二乘問題,為最小二乘問題得基函式,求得的擬合函式為資料的最小二乘擬合。求解 利用偏導數為零得到極值點的原理可以得到最小二乘問題滿足的方程組,求解方程組中未知係數...

最小二乘擬合

來自 某小皮 最優化函式庫optimization 優化是找到最小值或等式的數值解的問題。scipy.optimization子模組提供函式最小值,曲線擬合和尋找等式的根的有用演算法。最小二乘擬合 假設有一組實驗資料 xi,yi 事先知道它們之間應該滿足某函式關係yi f xi 通過這些已知的資訊,...

最小二乘擬合詳解

最小二乘法多項式曲線擬合,根據給定的m個點,並不要求這條曲線精確地經過這些點,而是曲線y f x 的近似曲線y x 原理部分由個人根據網際網路上的資料進行總結,希望對大家能有用 給定資料點pi xi,yi 其中i 1,2,m。求近似曲線y x 並且使得近似曲線與y f x 的偏差最小。近似曲線在點p...