源自於https://bime-matlab.blogspot.com/2006/11/104.html
最小平方法(英語:least squares method),又稱最小二乘法,是一種數學優化建模方法。 它通過最小化誤差的平方和尋找數據的最佳函數匹配。 利用最小平方法可以簡便的求得未知的數據,並使得求得的數據與實際數據之間誤差的平方和為最小。
當一個系統之聯立方程式個數大於未知數之數目時,會形成過度確定性系統(overdetermined system)。此時,反矩陣法已無法應用,只能用左除法求解。但這種解如同多數解的過程一樣,必須尋最小平方的技巧,使解能夠以最接近所有點為準,成為一般所謂之回歸公式。茲以下面例子做介紹:
設有一方程式的關係式為y= a x1+b x2+c x3想適配下列資料:
y x1 x2 x3
3 2 3 1
6 3 -2 4
-5 -5 3 6
4 2 7 3
2 4 8 -7
依問題之需要,可利用rank指令執行如下:
由階數R1及R2觀之,兩者不相同,故無法以正常方式得解。然而利用左除法B=A\C仍可以得到相關係數,因此得到此函數為:
A=[2 3 1; 3 -2 4; -5 3 6; 2 7 3; 4 8 -7]
C=[3;6;-5;4;2]
A =
2 3 1
3 -2 4
-5 3 6
2 7 3
4 8 -7
C =
3
6
-5
4
2
>> R1=rank(A), R2=rank([A C])
R1 = 3
R2 = 4
>> B=A\C
B =
1.4420
-0.0676
0.4352
y= 1.442 x1 -0.067601x2+0.4352 x3
然而,此結果並非其真實解,而是利用最小平方法求得。若以此解作驗證,即y=A*B,其結果為:
A*B
ans =
3.1163
6.2018
-4.8014
3.7163
2.1806
顯然與原值[ 3 6 -5 4 2]仍有誤差。只是因採用最小平方的關係,可以求得最接近之數。
最小平方的取法是將各數項之平方值之和以fmins求得最小值。
J=Σi=15[ax1i+bx2i+cx3i-y]2
沒有留言:
張貼留言