@非線性最小二乘問題的高斯-牛頓演算法
開始做這個東西還是因為學校裡的一次課程設計任務,找遍了全網好像也沒有特別好用的,於是就自己寫了乙個。僅供參考。
首先,介紹下非線性最小二乘問題。
非線性最小二乘是數值最優化領域最常見的乙個子問題。與一般的優化問題不同的是,非線性最小二乘的目標函式具有明確的物理意義—殘差。
應用背景:消除誤差或忽略無關細節,從干擾資料中提取訊號或找出趨勢,將大量資料降低到可管理的數量或用簡單的近似來代替複雜函式。事實上,在許多時候它也不用很精確。但儘管如此,我們還是希望它能保持對原始資料的相似之處,完成這個工作的最普遍和最便於計算的方法之一就是最小二乘法。
最小二乘法是從誤差擬合角度對回歸模型進行引數估計或系統辨識,並在引數估計、系統辨識以及**、預報等眾多領域中得到極為廣泛的應用。當我們用乙個模型來描述現實中的一系列資料時,模型的**結果與實際的測量結果總會存在一定偏差,這一偏差就稱為殘差。非線性最小二乘的目的就是,調整模型的引數,使得總的殘差最小。
問題的分析:
若為x的非線性函式,非線性導致無法直接寫出導數形式以及準確求得函式的全域性最優解,因此只能通過求目標函式的區域性最小值,並且嘗試從區域性最小值拓展到全域性最小值。區域性最小值的求解過程中需要涉及到駐點以及目標函式的
一、二階導數,故可以將該問題轉化為多元函式的極值問題。
對於非線性最小二乘問題,一般有lm法、信賴域方法、梯度下降法、高斯牛頓法等處理方法。在本文中,主要採用高斯牛頓法研究非線性最小二乘問題。
高斯牛頓法對裡的每乙個函式進行了一階泰勒近似,將原本的非線性函式變成了線性函式。當其線性化完成後,原本的非線性最小二乘問題也就成為了線性最小二乘。非線性函式通過一階泰勒展開捨棄高階項可以將其變成線性函式,即非線性函式在x處的一階泰勒近似使其線性化。因為線性化函式是非常容易操作的,而非線性函式就非常複雜。所以,高斯牛頓法的實質就是將非線性函式通過泰勒展開近似成線性函式,然後進行求解。
以下**僅適用於這道題。
fprintf('經過%d次迭代:最優引數x=[%f,%f]\n',k,x(1),x(2)')
break
endx=x-judge;
k=k+1;
fprintf('第%d迭代:x=[%f,%f]\n',k,x(1),x(2));
a=x(1);
b=x(2);
y=a.*exp(b.*x);
subplot(3,4,k);
plot(x,p,'*');
hold on
plot(x,y);
xlabel('time/year');
ylabel('population/million');
title(['第',num2str(k),'次迭代擬合曲線圖']);
end
function[j]=jacobian(x)
a=x(1);
b=x(2);
j=[exp(b),a.*exp(b);exp(2.*b),2.*a.*exp(2.*b);exp(3.*b),3.*a.*exp(3.*b);exp(4.*b),4.*a.*exp(4.*b);exp(5.*b),5.*a.*exp(5.*b);exp(6.*b),6.*a.*exp(6.*b);exp(7.*b),7.*a.*exp(7.*b);exp(8.*b),8.*a.*exp(8.*b)]
``
function[r]=r_function(x)
a=x(1);
b=x(2);
r=[a.*exp(b)-8.1;a.*exp(2.*b)-11;a.*exp(3.*b)-14.7;a.*exp(4.*b)-19.7;a.*exp(5.*b)-26.7;a.*exp(6.*b)-35.2;a.*exp(7.*b)-44.4;a.*exp(8.*b)-55.9];
clc;
clear;
format long;
s=1e-3;
x=[1,1];
k=100;
chh_gaussnewton(x,k,s);
非線性最小二乘
非線性最小二乘問題是求解目標引數 的最優值的方法 1.要有待優化的引數x 2.要知道引數與估計值的函式關係 f x 3.要有觀測資料z 4.待優化引數的初值x0 5.待優化引數的範圍 可選 非線性最小二乘問題,可以轉化為非線性優化問題 解非線性最小二乘需要非線性優化演算法 非線性優化演算法最通用的方...
手寫非線性最小二乘
方法1 梯度下降法 include include include include include include include class descent method descent method descent method double a,double b,double c a a b ...
非線性最小二乘問題的求解方法
目錄對於形如 1 的函式,希望尋找乙個區域性最優的 x 使得 f x 達到區域性極小值 f x begin f mathbf frac sum left f mathbf right end 其中,f mathbf mapsto mathbf,i 1,ldots,m 即 x in r n,f i x...