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ù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

5、用LM法(on), GN法(off,缺省值)LineSearchType 線搜索方法(cubicpoly,quadcubic(缺省值)2.3.3 注意事項 fminunc中輸出變量、輸入?yún)?shù)不一定寫全,可以缺省。 當中間某個輸入?yún)?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文件結束 %用lsqnonlin調用解決: 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)關于a0,可以通過所知道的幾組x和y的值來估算系數(shù)a、b、c、d的值,我這里沒有估計,直接代入了1。 如果估計的較準確,最小二乘算出的系數(shù)更加精確。 lsqnonlin函數(shù)采用的是迭代法,a0則是迭代初始值。由于程序的局限性,不可能搜索無窮大的區(qū)間,這樣一來,初始值的選擇就很重要了。如果最優(yōu)解離所給初始值比較近,迭代求出該最優(yōu)解的概率就很高;如果初始值提供的不理想,離最優(yōu)解較遠,而matlab對于迭代次數(shù)及迭代精度都有個默認的設定,這種情況下很可能沒有搜到最優(yōu)解便給出了結果,當然這個結果是在所搜索區(qū)間上的最優(yōu)解而不是全局最優(yōu)的。 至于怎樣估計初始值,我也沒有肯定的辦法,

溫馨提示

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

評論

0/150

提交評論