非線性最小二乘lsqnonlin_第1頁
非線性最小二乘lsqnonlin_第2頁
非線性最小二乘lsqnonlin_第3頁
非線性最小二乘lsqnonlin_第4頁
非線性最小二乘lsqnonlin_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、非線性最小二乘Isqnonlin 數(shù)學規(guī)劃模型的matlab求解 數(shù)學規(guī)劃模型的matlab求解var OsObject = ,H,; if(navigator.userAgent.indexOf("MSIE,)>0) document.write); if (isFirefox=navigator.userAgentJndexOf(HFirefoxH)>0) document.write(”H); if(isSafari=navigator.userAgentJndexOf(,Safan,')>0) /return "Safari" i

2、f(isCamin o二navigator.userAgent.indexOf(,Camino,)>0) /return ”Camino”; if(isMozilla=navigato r.userAgentindexOf(”Gecko/J>0) /return "Gecko" 今天胡老師給我們講了數(shù)學規(guī)劃模型,數(shù)學規(guī)劃模型是優(yōu)化模型的一種,包括線性規(guī)劃模型 (目標函數(shù)和約束條件都是線性函數(shù)的優(yōu)化問題);非線性規(guī)劃模型(目標函數(shù)或者約束條件 是非線性的函數(shù));整數(shù)規(guī)劃(決策變量是整數(shù)值得規(guī)劃問題);多目標規(guī)劃(具有多個目標函 數(shù)的規(guī)劃問題):目標規(guī)劃(具有不同優(yōu)

3、先級的目標和偏差的規(guī)劃問題)動態(tài)規(guī)劃(求解多階 段決策問題的最優(yōu)化方法)。數(shù)學規(guī)劃模型相對比較好理解,關(guān)鍵是要能熟練地求出模型的 解。以下是解線性規(guī)劃模型的方法:線性規(guī)劃問題線性規(guī)劃問題的標準形式為:min f ' *xsub.to: A*x<b其中f、x、b、beq、lb、ub為向量,A、Aeq為矩陣。MATLAB中,線性規(guī)劃問題(Linear Programming)的求解使用的是函數(shù)linprogo 函數(shù) linprog格式 x = linprog(f,A,b) %求 min f ' *x sub.to A*x<=b 線性規(guī)劃的最優(yōu)解。x = linprog(

4、f,A,b)Aeq,beq) %等式約束,若沒有不等式約束,則A= , b=。x = linprog(f,A,b,Aeq,beq,lb,ub) %指定 x 的范圍,若沒有等式約束,則 Aeq= , b eq=x = linprog(f,A,b,Aeq,beq,lb,ub,xO) %設(shè)置初值 xOx = linprog(f,A,b,Aeq,beq,lb,ub,xO,options) % options 為指定的優(yōu)化參數(shù)x,fval = linprog()%返回目標函數(shù)最優(yōu)值,即fval= f ' %xjambda,exitflag = linprog(.)% lambda 為解 x 的

5、Lagrange 乘子。x, lambda,fval,exitflag = linprog()% exitflag 為終止迭代的錯誤條件。x.fval, lambda,exitflag,output = linprog(.)% output 為關(guān)于優(yōu)化的一些信息說明若exitflag>0表示函數(shù)收斂于解x, exitflag=O表示超過函數(shù)估值或迭代的最人數(shù)字,exitflag<0表示函數(shù)不收斂于解x;若lambda=lower表示I、界lb, lambda=upper表示上界 ub, lambda=ineqlin表示不等式約束,lambda=eqlin表示等式約束,lambda中

6、的非0元素 表示對應(yīng)的約束是有效約束:output=iterations表示迭代次數(shù),output=algorithm表示使用 的運算規(guī)則,output=cgiterations表示PCG迭代次數(shù)。2. 非線性規(guī)劃問題利用函數(shù)fminbnd求有約束的一元函數(shù)的最小值格式 x = fminbnd(fun,x1 ,x2)x = fminbnd(fun,x1 ,x2,options) % options 為指定優(yōu)化參數(shù)選項x.fval = fminbnd(._) % fval為目標函數(shù)的最小值x.fval,exitflag = fminbnd(.)%xitflag 為終止迭代的條件x,fval,ex

7、itflag,output = fminbnd(.)% output 為優(yōu)化信息命令利用函數(shù)fminsearch求無約束多元函數(shù)最小值函數(shù) fminsearch格式 x = fminsearch(fun,xO)%x0為初始點,fun為目標函數(shù)的表達式字符串或MATLAB自定義函數(shù)的函數(shù)柄。x = fminsearch(fun,xO,options)% options 查 optimsetx.fval = fminsearch(.) %最優(yōu)點的函數(shù)值x,fval,exitflag = fminsearch(.)% exitflag 與單變量情形一致x,fval,exitflag,output =

8、 fminsearch(.)%output 與單變量情形一致注意:fminsearch采用了 Nelder-Mead型簡單搜尋法。命令 利用函數(shù)fminunc求多變量無約束函數(shù)最小值函數(shù) fminu nc格式 x = fminunc(fun,xO)%返回給定初始點xO的最小函數(shù)值點x =fminunc(fun,xO,options) % options 為指定優(yōu)化參數(shù)x.fval = fminunc(.) %fval 最優(yōu)點 x 處的函數(shù)值x,fval,exitflag = fminunc(.)% exitflag 為終止迭代的條件,與上同。x,fval,exitflag,output = f

9、minunc()%output 為輸出優(yōu)化信息x.fval,exitflag,output,grad = fminunc(.)% grad 為函數(shù)在解 x 處的梯度值x,fval,exitflag,output.grad,hessian = fminunc() 目標函數(shù)在解 x 處的海賽(Hessian)值注意:當函數(shù)的階數(shù)人于2時,使用fminunc比fminsearch更有效,但當所選函數(shù)高度不連 續(xù)時,使用fminsearch效果較好。利用fmincon求線性有約束的多元函數(shù)的最小值函數(shù) fmincon格式 x = fmincon(fun,xO Ab)x = fmincon(fun,xO

10、,A,b,Aeq,beq)x = fminc on (fun,xO,A,b,Aeq,beq,lb,ub)x = fminc on (fun,xO,A,b,Aeq,beq,lb,ub, non Icon)x = fminc on (fun,xO,A,b,Aeq,beq,lb,ub, nonIcon .options)x,fval = fmincon(.)x,fval,exitflag = fmincon()x,fval,exitflag,output = fmin con(.)x,fval,exitflag,outputjambda = fmincon(.)x,fval,exitflag,out

11、putjambda.grad = fminc on (.)x,fval,exitflag,outputjambda.grad,hessian = fmincon(.)函數(shù) fminbnd格式 x = fminbnd(fun,x1 ,x2)%返回自變量x在區(qū)間 上函數(shù)fun取最小值時x值,fun為目標函數(shù)的表達式字符串或MATLAB自定義函數(shù)的函數(shù)柄。x = fminbnd(fun,x1 ,x2,options) % options 為指定優(yōu)化參數(shù)選項x.fval = fminbnd(.) % fval 為目標函數(shù)的最小值x.fval,exitflag=fminbnd(._.)%xitflag為

12、終止迭代的條件x,fval,exitflag,output = fminbnd()% output 為優(yōu)化信息說明 若參數(shù)exitflag>0.表示函數(shù)收斂于x,若exitflag=O,表示超過函數(shù)估計值或迭代的最人數(shù)字,exitflag<0表示函數(shù)不收斂于x:若參數(shù)output=iterations表示迭代次數(shù),output=funccount表示函數(shù)賦值次數(shù),output=algorithm表示所使用的算法。3. 二次規(guī)劃問題函數(shù) quadprog格式 x = quadprog(H,fAb) %其中H,f,A,b為標準形中的參數(shù),x為目標函數(shù)的最小 值。x = quadprog

13、(H,f,A,b,Aeq)beq)%Aeq,beq 滿足等約束條件。x = quadprog(H,f,A,b,Aeq,beq,lb,ub)% lb,ub 分別為解 x 的下界與上界。x = quadprog(H,f,A,b,Aeq)beq,lb,ub,xO) %x0 為設(shè)置的初值x = quadprog(H,f,A,b,Aeq,beq,lb,ub,xO,options)% options 為指定的優(yōu)化參數(shù)x.fval = quadprog(.)%fval 為目標函數(shù)最優(yōu)值x.fval.exitflag = quadprog(.)% exitflag 與線性規(guī)劃中參數(shù)意義相同x,fval,exi

14、tflag,output = quadprog(._)% output 與線性規(guī)劃中參數(shù)意義相同x,fval,exitflag,output,lambda = quadprog(.)% lambda 與線性規(guī)劃中參數(shù)意義相同4. 極小化極人(Minmax)問題函數(shù) fminimax格式 x = fminimax 他 n,xO)x = fminimax(fun,xO,A,b)x = fminimax(fun,xO,A,b,Aeq,beq)x = fminimax(fun,xO,A,b,Aeqibeq1lb,ub)x = fminimax(fun,xO,A,b,AeqibeqJb,ub,nonIc

15、on)x = fminimax(fun,xO,A,b,AeqibeqJb,ub,nonIcon,optio ns)x,fval,maxfval = fminimax()x,fval,maxfval,exitflag = fminimax(.)x,fval,maxfval,exitflag,output = fminimax()x,fval,maxfval,exitflag,outputjambda = fmin imax()5多目標規(guī)劃問題函數(shù)fgoalattai n格式 x = fgoalattain(fun,xO,goal,weight)x = fgoalattain(fun,xO,goa

16、l,weight,A,b)x = fgoalattain(fu n,xO,goal,weight,A,b,Aeq,beq)x = fgoalattain(fu n,xO,goal,weight,A,b,Aeq,beq,lb,ub)x = fgoalattain(fu n,xO,goal,weight,A,b,Aeq,beq,lb,ub,nonlc on)x = fgoalattain(fu n,xO,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval = fgoalattain(._)x,fval,attainfactor = fgoala

17、ttai n()xjvahattainfactor,exitflag = fgoalattain()xjvahattainfactor,exitflag,output = fgoalattai n()xjvahattainfactor,exitflag,outputjambda = fgoalattain()6.最小二乘最優(yōu)問題有約束線性最小二乘函數(shù) Isqlin格式 x = lsqlin(C,d,A,b)%求在約束條件下,方程Cx = d的最小二乘解x。x = lsqlin(C,d,A,b,Aeq,beq)%Aeq、beq滿足等式約束,若沒有不等式約束,則設(shè)A=,b=ox = lsqlin(

18、C,d,A,b,Aeq,beq,lb,ub) %lb、ub 滿足,若沒有等式約束,則 Aeq=, beq=ox = lsqlin(C,d,A,b,Aeq,beq,lb,ub,xO) % xO為初始解向量,若 x 沒有界,則 lb=, ub=ox = lsqlin(C,d,A,b,Aeq,beq,lb,ub,xO,options)% options 為指定優(yōu)化參數(shù)x,resnorm = Isqlin()% resnorm=norm(C*x-d)A2, 即2范數(shù)。x,resnorm,residual=lsqlin(.) %residual=C*x-d,即殘差。x,resnorm,residual,

19、exitflag = lsqlin(.) %exitflag 為終止迭代的條件x,resnorm,residual,exitflag,output = lsqlin(.) % output 表示輸出優(yōu)化信息x,resnorm,residual,exitflag,output,lambda = Isqlin()% lambda 為解 x 的 Lagrange乘子非線性數(shù)據(jù)(曲線)擬合函數(shù) Isqcurvefit格式 x = lsqcurvefit(fun,xO,xdata,ydata)x = lsqcurvefit(fun,xO,xdata,ydata,lb,ub)x = lsqcurvefit

20、(f un ,xO,xdata,ydata,lb,ub,options)x.resnorm = Isqcurvefit()x.res no rm,residual = Isqcurvefit()x.res no rm,residual,exitflag = Isqcurvefit()x,res norm,residual,exitflag,output = Isqcurvefit()x,res no rm,residual,exitflag,output,lambda = Isqcurvefit()非線性最小二乘函數(shù)Isqnonli n格式 X = Isqnonlin(fun.xO) %x0為

21、初始解向量;fun為,i=1,2,.»m, fun返回向量值F,而不是平方和值,平方和隱含在算法中,fun的定義與前面相同。x = lsqnonlin(fun,xO,lb,ub) %lb、ub 定義 x 的下界和上界:。x = lsqnonlin(fun,xO,lb,ub,options)%options 為指定優(yōu)化參數(shù),若 x 沒有界,則 lb=,ub= ox.resnorm = Isqnonlin()% resnorm=sum(fun(x).A2),即解 x 處目標函數(shù)值。x,resnorm,residual = Isqnonlin()% residual=fun(x),即解 x

22、 處 fun 的值。x.resnorm.residual,exitflag = Isqnonlin()%exitflag 為終止迭代條件。x,resnorm,residual,exitflag,output = lsqnonlin(.)%output 輸出優(yōu)化信息。x.resnorm,residual,exitflag,output,lambda = Isqnonlin()%lambda 為 Lagrage 乘子x,resnorm,residual,exitflag,output,lambda,jacobian =lsqnonlin(.)%fun 在解 x 處的Jacobian 矩。非負線性最

23、小二乘函數(shù) Isqn onneg格式 x = Isqnonneg(C.d) %C為實矩陣,d為實向量x = lsqnonneg(C,d,xO) % xO為初始值且人于0x = lsqnonneg(C,d,xO,options) % options 為指定優(yōu)化參數(shù)x.resnorm = Isqnonneg()% resnorm=norm (C*x-d)A2x,resnorm,residual = Isqnonn eg()%residual=C*x-dx,res norm,residual,exitflag = Isqn on neg()x,res no rm,residual,exitflag,

24、output = Isqnonneg()x,res norm,residual,exitflag,output,lambda = Isqnonn eg(.)6.非線性方程(組)求解非線性方程的解函數(shù) fzero格式 x = fzero (fun.xO) %用fun定義表達式f(x), xO為初始解。x = fzero (fun,xO,options)x.fval = fzero(.) %fval=f(x)x,fval,exitflag = fzero()x,fval,exitflag,output = fzero()非線性方程組的解函數(shù) fsolve格式 X = fsolve(fun.xO)

25、%用fun定義向量函數(shù),其定義方式為:先定義方程函數(shù) function F = myfun (x)。F=表達式4;表達式2;表達式m%保存為myfun.m,并用卞面方式調(diào)用:x =fsolve(myfun,xO), xO為初始估計值。x = fsolve(fun,xO,options)x.fval = fsolve(.) %fval=F(x),即函數(shù)值向量x,fval,exitflag = fsolve()x,fval,exitflag,output = fsolve(.)x,fval,exitflag,outputjacobian = fsolve()% jacobian 為解 x 處的 Jacobian 陣。其余參數(shù)與前面參數(shù)相似。非線性最小二乘法非線性最小二乘法非線性最小二乘法-正文以誤差的平方和最小為準則來估計非線性靜態(tài)模型參數(shù)的一種參數(shù)估計方法。設(shè)非線性 系統(tǒng)的模型為y=f(x, 0)式中y是系統(tǒng)的輸出,x是輸入,e是參數(shù)(

溫馨提示

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

評論

0/150

提交評論