最小二乘法 線性與非線性擬合_第1頁
最小二乘法 線性與非線性擬合_第2頁
最小二乘法 線性與非線性擬合_第3頁
最小二乘法 線性與非線性擬合_第4頁
最小二乘法 線性與非線性擬合_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、最小二乘法線性與非線性擬合最小二乘法實(shí)現(xiàn)數(shù)據(jù)擬合最小二乘法原理函數(shù)插值是差值函數(shù)p(x與被插函數(shù)f(x在節(jié)點(diǎn)處函數(shù)值相同,即p( =f( (i=0,1,2,3,n,而曲線擬合函數(shù) 不要求嚴(yán)格地通過所有數(shù)據(jù)點(diǎn)( ,也就是說擬合函數(shù) 在 處的偏差=不都嚴(yán)格地等于零。但是,為了使近似曲線能盡量反應(yīng)所給數(shù)據(jù)點(diǎn)的變化趨勢(shì),要求| |按某種度量標(biāo)準(zhǔn)最小。即=為最小。這種要求誤差平方和最小的擬合稱為曲線擬合的最小二乘法。(一線性最小二乘擬合根據(jù)線性最小二乘擬合理論,我們得知關(guān)于系數(shù)矩陣A的解法為ARY。例題假設(shè)測(cè)出了一組,由下面的表格給出,且已知函數(shù)原型為y(x=c1+c2*e(-3*x+c3*cos(-2

2、*x*exp(-4*x+c4*x2x00.20.40.70.90.920.991.21.41.481.5y2.882.25761.96831.92582.08622.1092.19792.54092.96273.1553.2052試用已知數(shù)據(jù)求出待定系數(shù)的值。在Matlab中輸入以下程序x=0,0.2,0.4,0.7,0.9,0.92,0.99,1.2,1.4,1.48,1.5;y=2.88;2.2576;1.9683;1.9258;2.0862;2.109;2.1979;2.5409;2.9627;3.155;3.2052;A=ones(size(x exp(-3*x,cos(-2*x.*e

3、xp(-4*x x.2;c=Ay;c運(yùn)行結(jié)果為ans =1.22002.3397-0.67970.8700下面畫出由擬合得到的曲線及已知的數(shù)據(jù)散點(diǎn)圖x1=0:0.01:1.5;A1=ones(size(x1 exp(-3*x1,cos(-2*x1.*exp(-4*x1 x1.2;y1=A1*c;plot(x1,y1,x,y,o事實(shí)上,上面給出的數(shù)據(jù)就是由已知曲線y(x= 0.8700-0.6797*e(-3*x+ 2.3397*cos(-2*x*exp(-4*x+ 1.2200*x2產(chǎn)生的,由上圖可見擬合效果較好。多項(xiàng)式最小二乘擬合在Matlab的線性最小二乘擬合中,用得較多的是多項(xiàng)式擬合,其

4、命令是A=polyfit(x,y,m其中 表示函數(shù)中的自變量矩陣, 表示因變量矩陣,是輸出的系數(shù)矩陣,即多項(xiàng)式的系數(shù)。多項(xiàng)式在自變量x處的函數(shù)值y可用以下命令計(jì)算:y=polyval(A,x例題對(duì)下面一組數(shù)據(jù)作二次多項(xiàng)式擬合,即要求出二次多項(xiàng)式 中的 ,使最小。x00.10.20.30.40.50.60.70.80.91y0.4471.9783.286.167.087.347.669.569.489.3011.2在Matlab中輸入以下命令x=0:.1:1;y=-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2;a=polyfit

5、(x,y,2運(yùn)行結(jié)果為a =-9.810820.1293-0.0317f=vpa(poly2sym(a,5%vpa(polyval2sym(),n)只適用于關(guān)于多項(xiàng)式函數(shù)的擬合。因?yàn)榇撕瘮?shù)對(duì)于自變量統(tǒng)一規(guī)定為“x”,將由polyfit()所得出的系數(shù)按自變量?jī)绱紊捣旁谙鄳?yīng)的位置。運(yùn)行結(jié)果為f =-9.8108*x2+20.129*x-.31671e-1下面畫出由擬合得到的曲線及已知的數(shù)據(jù)散點(diǎn)圖y1=polyval(a,x;plot(x,y,o,x,y1(二)非線性最小二乘擬合(1)lsqcurvefit( lsqcurvefit( 是非線性最小二乘擬合函數(shù),其本質(zhì)上是求解最優(yōu)化問題。其使用格

6、式為x=lsqcurvefit(fun,x0,xdata,ydata其中,fun是要擬合的非線性函數(shù),x0是初始參數(shù),xdata,ydata是擬合點(diǎn)的數(shù)據(jù),該函數(shù)最終返回系數(shù)矩陣。例題假設(shè)已知并已知該函數(shù)滿足原型為 ,其中 為待定系數(shù)。在Matlab中輸入以下命令x=0:.1:10;f=inline(a(1*exp(-a(2*x+a(3*exp(-a(4*x.*sin(a(5*x,a,x;%建立函數(shù)原型,則可以根據(jù)他來進(jìn)行下面的求取系數(shù)的計(jì)算a,res=lsqcurvefit(f,1,1,1,1,1,x,y;a,res運(yùn)行結(jié)果為ans =0.11970.21250.54040.17021.23

7、00res =7.1637e-007所求得的系數(shù)與原式中的系數(shù)相近。如果向進(jìn)一步提高精度,則需修改最優(yōu)化的選項(xiàng),函數(shù)的調(diào)用格式也將隨之改變。在Matlab中輸入以下命令ff=optimset;ff.TolFun=1e-20;ff.TolX=1e-15;%修改精度,即是修改其限制條件a,res=lsqcurvefit(f,1,1,1,1,1,x,y,ff;%兩個(gè)空矩陣表示系數(shù)向量的上下限a,res運(yùn)行結(jié)果為ans =0.12000.21300.54000.17001.2300res =9.5035e-021下面繪圖x1=0:0.01:10;y1=f(a,x1;plot(x1,y1,x,y,o(2

8、)lsqnonlin( lsqnonlin( 函數(shù)是另一種求最小二乘擬合的函數(shù),其本質(zhì)上是求解最優(yōu)化問題最優(yōu)化解。它的應(yīng)用格式為x=lsqnonlin(fun,x0其中,fun的定義與lsqnonlin( 函數(shù)中fun的定義有差別, x0仍為初始參數(shù)向量,將輸出的系數(shù)結(jié)果放在變量 中。說明lsqnonlin(函數(shù)的使用方法。首先編寫目標(biāo)函數(shù) (curve_fun.mfunction y=curve_fun(p%非線性最小二乘擬合函數(shù)x=0.02 0.02 0.06 0.06 0.11 0.11 0.22 0.22 0.56 0.56 1.10 1.10;y=76 47 97 107 123 1

9、39 159 152 191 201 207 200;y=p(1*x./(p(2+x-y;再用lsqnonlin()函數(shù)求解,輸入p,resnorm,residual=lsqnonlin(curve_fun,200,0.1運(yùn)行結(jié)果為p =212.68360.0641resnorm =1.1954e+003residual =Columns 1 through 11 -25.43393.56615.8111-4.188911.3617-4.63835.684712.6847-0.1671-10.1671-6.0313Column 120.9687上面的兩種方法都可以作非線性最小二乘曲線擬合(3)

10、非線性函數(shù)的線性化在進(jìn)行非線性擬合時(shí),以往由于計(jì)算機(jī)和相關(guān)軟件水平有限,常常先把非線性的曲線擬合線性化,然后再進(jìn)行擬合。下面比較一下先線性化再進(jìn)行擬合和直接進(jìn)行非線性擬合的差異。例題已知數(shù)據(jù)t0.250.511.523468c19.2118.1515.3614.1012.899.327.455.243.01滿足曲線 通過數(shù)據(jù)擬合求出參數(shù)和 。方法一:先將非線性函數(shù)轉(zhuǎn)化為線性函數(shù)編寫Matlab程序如下d=300;t=0.25 0.5 1 1.5 2 3 4 6 8;c=19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01;y=log(c;a=pol

11、yfit(t,y,1運(yùn)行結(jié)果為a =-0.23472.9943k=-a(1k =0.2347v=d/exp(a(2v =15.0219由此也可以求出相關(guān)系數(shù)。方法二:應(yīng)用非線性擬合直接求解系數(shù)建立m文件:function f=curvefun3(x,tdatad=300f=(x(1d*exp(-x(2*tdata%x(1=v;x(2=k運(yùn)行程序tdata=0.25 0.5 1 1.5 2 3 4 6 8;cdata=19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01;x0=10 0.5;x=lsqcurvefit(curvefun3,x0,tda

12、ta,cdata運(yùn)行結(jié)果為x =14.82120.2420下面繪圖f=curvefun3(x,tdata;plot(tdata,cdata,o,tdata,f我們發(fā)現(xiàn)兩種求法求出的系數(shù)很接近。(三)線性擬合和非線性擬合區(qū)別與聯(lián)系在許多實(shí)際問題中,變量之間內(nèi)在的關(guān)系并不想前面說的那樣簡(jiǎn)單。呈線性關(guān)系,但有些非線性擬合曲線可以通過適當(dāng)?shù)淖兞刻鎿Q轉(zhuǎn)化為線性曲線,從而用線性擬合進(jìn)行處理。對(duì)于一個(gè)實(shí)際的曲線擬合問題,一般先根據(jù)觀測(cè)值在直角坐標(biāo)平面上描出散點(diǎn)圖,看一看散點(diǎn)的分布同哪類曲線圖形接近,讓后選用相接近的曲線擬合方程,再通過適當(dāng)?shù)淖兞刻鎿Q轉(zhuǎn)化為線性擬合問題,按線性擬合解出后再還原為原變量所表示的曲

13、線擬合方程。表1.1線性擬合方程變量變換變換后線性擬合方程Y=,Y=aY=aY=,Y=Y=例題測(cè)出一組實(shí)際數(shù)據(jù) 見下表 是對(duì)其進(jìn)行函數(shù)擬合。X1.10521.22141.34991.49181.64783.6693Y0.67950.60060.53090.46930.41480.1546X1.82212.01382.22552.45962.7183Y0.36660.32410.28640.25320.2238x=1.1052,1.2214,1.3499,1.4918,1.6478,1.8221,2.0138,2.2255,2.4596,2.7183,3.6693;y=0.6795,0.6006,0.5309,0.4693,0.4148,0.3666,0.3241,0.2864,0.2532,0.2238,0.1546;plot(x,y,x,y,*見下

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論