MATLAB非線性最小二乘lsqnonlin和lsqcurvefit的使用(共8頁)_第1頁
MATLAB非線性最小二乘lsqnonlin和lsqcurvefit的使用(共8頁)_第2頁
MATLAB非線性最小二乘lsqnonlin和lsqcurvefit的使用(共8頁)_第3頁
MATLAB非線性最小二乘lsqnonlin和lsqcurvefit的使用(共8頁)_第4頁
MATLAB非線性最小二乘lsqnonlin和lsqcurvefit的使用(共8頁)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、MATLAB非線性最小二乘lsqnonlin和lsqcurvefit的使用2010-07-29 08:51臨時(shí)用到了,從網(wǎng)上找到了簡明的說明。函數(shù)要寫在M文件中。感謝網(wǎng)友 閃電小鬼還有另外一篇,包括非線性最小二乘擬合函數(shù):min s.t. v1xv2求解程序名為lsqnonlin,其最簡單的調(diào)用格式為:x=lsqnonlin(F,x0, v1,v2)其最復(fù)雜的調(diào)用格式為:x,norm,res,ef,out,lam,jac = lsqnonlin(F,x0,v1,v2,opt,P1,P2, . )l 非線性擬合問題min s.t. v1xv2求解程序名為lsqcurvefit,其最簡單的調(diào)用格式

2、為:x=lsqcurvefit(F, x0,t,y,v1,v2)其最復(fù)雜的調(diào)用格式為:x,norm,res,ef,out,lam,jac = lsqcurvefit(F,x0,t,y,v1,v2,opt,P1,P2,.)輸出參數(shù) 輸入?yún)?shù) 注意事項(xiàng)2.3.1 程序lsqnonlin和lsqcurvefit的輸出參數(shù)其中輸出變量的含義為:1) x : 最優(yōu)解2) norm : 誤差的平方和3)res: 誤差向量4) ef : 程序結(jié)束時(shí)的狀態(tài)指示: 0:收斂 0:函數(shù)調(diào)用次數(shù)或迭代次數(shù)達(dá)到最大值(該值在options中指定) 1 % two output argumentsJ = . % Jac

3、obian of the function evaluated at xend t,y: 擬合數(shù)據(jù) v1,v2: 上下界 options:包含算法控制參數(shù)的結(jié)構(gòu)設(shè)定(或顯示)控制參數(shù)的命令為Optimset,有以下一些用法:Optimset /顯示控制參數(shù)optimset optfun /顯示程序optfun的控制參數(shù)opt=optimset /控制參數(shù)設(shè)為(即缺省值opt=optimset(optfun)/ 設(shè)定為程序optfun的控制參數(shù)缺省值Opt=optimset(par1,val1,par2,val2,.)Opt=optimset(oldopts,par1,val1,.)opt=op

4、timset(oldopts,newopts)可以設(shè)定的參數(shù)比較多,對(duì)lsqnonlin和lsqcurvefit,常用的有以下一些參數(shù):Diagnostics 是否顯示診斷信息( on 或off)Display 顯示信息的級(jí)別(off , iter , final,notify)LargeScale 是否采用大規(guī)模算法( on 或off)缺省值為onMaxIter 最大迭代次數(shù)TolFun 函數(shù)計(jì)算的誤差限TolX 決策變量的誤差限Jacobian 目標(biāo)函數(shù)是否采用分析Jacobi矩陣(on ,off)MaxFunEvals 目標(biāo)函數(shù)最大調(diào)用次數(shù)LevenbergMarquardt 搜索方向選

5、用LM法(on), GN法(off,缺省值)LineSearchType 線搜索方法(cubicpoly,quadcubic(缺省值)2.3.3 注意事項(xiàng) fminunc中輸出變量、輸入?yún)?shù)不一定寫全,可以缺省。 當(dāng)中間某個(gè)輸入?yún)?shù)缺省時(shí),需用占據(jù)其位置。%編寫M文件:文件中的a(1)=a,a(2)=b,a(3)=c,a(4)=d function E=fun(a,x,y) x=x(:); y=y(:); Y=a(1)*(1-exp(-a(2)*x) + a(3)*(exp(a(4)*x)-1); E=y-Y; %M文件結(jié)束 %用lsqnonlin調(diào)用解決: x=3 4 5 7 9 15; y

6、=1 2 4 6 8 10; a0=1 1 1 1; options=optimset(lsqnonlin); a=lsqnonlin(fun,a0,options,x,y)關(guān)于a0,可以通過所知道的幾組x和y的值來估算系數(shù)a、b、c、d的值,我這里沒有估計(jì),直接代入了1。 如果估計(jì)的較準(zhǔn)確,最小二乘算出的系數(shù)更加精確。 lsqnonlin函數(shù)采用的是迭代法,a0則是迭代初始值。由于程序的局限性,不可能搜索無窮大的區(qū)間,這樣一來,初始值的選擇就很重要了。如果最優(yōu)解離所給初始值比較近,迭代求出該最優(yōu)解的概率就很高;如果初始值提供的不理想,離最優(yōu)解較遠(yuǎn),而matlab對(duì)于迭代次數(shù)及迭代精度都有個(gè)默認(rèn)的設(shè)定,這種情況下很可能沒有搜到最優(yōu)解便給出了結(jié)果,當(dāng)然這個(gè)結(jié)果是在所搜索區(qū)間上的最優(yōu)解而不是全局最優(yōu)的。 至于怎樣估計(jì)初始值,我也沒有肯定的辦法,

溫馨提示

  • 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)論