一、 最小二乘原理介紹
最小二乘法是一種常見的數(shù)學(xué)方法,用于解決線性回歸問題。它可以用來估計因變量(目標(biāo)變量)與自變量之間的線性關(guān)系,即通過已知的一組數(shù)據(jù)來確定未知的回歸方程。
具體來說,最小二乘法的目標(biāo)是找到一條直線(或者更一般的曲線),使得這條直線與已知數(shù)據(jù)點的距離平方和最小。這條直線的方程稱為回歸方程,可以用來預(yù)測因變量的值。
最小二乘法的原理是通過最小化誤差平方和來確定回歸方程的系數(shù)。誤差指的是已知數(shù)據(jù)點到回歸直線的距離,也就是因變量的真實值與預(yù)測值之間的差異。通過最小化誤差平方和,可以找到最優(yōu)的回歸系數(shù),使得預(yù)測值與真實值之間的誤差最小。
在實際應(yīng)用中,最小二乘法常常用于數(shù)據(jù)擬合和預(yù)測。例如,在金融領(lǐng)域,最小二乘法可以用來預(yù)測股票價格和交易量;在工程領(lǐng)域,最小二乘法可以用來擬合實驗數(shù)據(jù)和優(yōu)化設(shè)計參數(shù)。
在計算中,最小二乘法可以通過矩陣運算來求解。具體來說,可以使用線性代數(shù)中的矩陣求解方法,例如求解矩陣的逆或者使用QR分解。在北太天元中,可以使用polyfit函數(shù)來實現(xiàn)最小二乘法求解線性回歸問題。
二、 根據(jù)最小二乘原理進(jìn)行多項式擬合
原始數(shù)據(jù)點為,根據(jù)最小二乘法進(jìn)行多項式擬合:
(1) 設(shè)擬合多項式為
(2) 各點到這條曲線的距離之和,即誤差平方和為:
(3) 根據(jù)最小二乘原理,等式右邊求ai偏導(dǎo)數(shù):
(4) 化簡得:
(5) 化成矩陣形式:
(6) 化簡得
(7) 求解上述方程組,即可得到系數(shù)矩陣,從而得到擬合多項式。
三、 基于北太天元實現(xiàn)最小二乘法,并對比擬合結(jié)果與polyfit結(jié)果
附錄代碼:
clear all close all clc N=10;%多項式階數(shù) %原始數(shù)據(jù)點 X=10:0.05:15; M=length(X); p=[5.6,2.5,3.3,0.18,0.29,2.4,4.8,1.2,7.1,1]; Y=zeros(1,M); for i=1:10 Y=Y+p(i)*X.^(i-1); end % Y=Y+unifrnd(-2e9,2e9,1,M); %多項式擬合 X1=zeros(N+1,M); for i=1:M X1(1,i)=1; end for i=2:N+1 X1(i,:)=power(X,i-1); %構(gòu)造系數(shù)矩陣 end XX=X1'; P_n=(XX'*XX)\XX'*Y'; X_n=min(X):max(X); Y_n=zeros(1,length(X_n)); for i=1:N+1 Y_n=Y_n+P_n(i)*X_n.^(i-1); end %polyfit P=zeros(1,N); P=polyfit(X,Y,N); X_polyfit=zeros(1,M); Y_polyfit=zeros(1,M); X_polyfit=linspace(min(X),max(X),M); Y_polyfit=polyval(P,X_polyfit); figure(1); plot(X,Y,'.'); hold on plot(X_n,Y_n,'g'); hold on plot(X_polyfit,Y_polyfit,'r'); legend('原始數(shù)據(jù)點','多項式擬合','polyfit','Location','northwest');