二次规划与非线性规划及matlab应用
1.概念
定義:如果目標(biāo)函數(shù)或約束條件中至少有一個(gè)是非線性函數(shù)時(shí)的最優(yōu)化問(wèn)題就叫做非線性規(guī)劃問(wèn)題.
其它情況: 求目標(biāo)函數(shù)的最大值或約束條件為小于等于零的情況,都可通過(guò)取其相反數(shù)化為上述一般形式.
(1)二次規(guī)劃
用MATLAB軟件求解,其輸入格式如下:
實(shí)例:
Matlab命令
運(yùn)算結(jié)果為:x =0.6667 1.3333 z = -8.2222
(2)一般非線性規(guī)劃
標(biāo)準(zhǔn)型為:
其中X為n維變?cè)蛄?#xff0c;G(X)與Ceq(X)均為非線性函數(shù)組成的向量,其它變量的含義與線性規(guī)劃、二次規(guī)劃中相同.
非線性規(guī)劃求解的函數(shù)是fmincon,命令的基本格式如下:
? x=fmincon(‘fun’,X0,A,b)
? x=fmincon(‘fun’,X0,A,b,Aeq,beq)
? x=fmincon(‘fun’,X0,A,b, Aeq,beq,VLB,VUB)
? x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’)
? x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’,options)
? [x,fval]= fmincon(…)
? [x,fval,exitflag]= fmincon(…)
? [x,fval,exitflag,output]= fmincon(…)
1.fun為目標(biāo)函數(shù)
2.x0為初始值
3.A是不等式約束AX<=b的系數(shù)矩陣
4.b是不等式約束AX<=b的常數(shù)項(xiàng)
4.Aeq是等式約束AeqX=beq的系數(shù)矩陣,
5.beq是等式約束AeqX=beq的常數(shù)項(xiàng),
6.lb是X的下限,
7.ub是X的上限,
8.nonlcon為非線性不等式約束
9.option為設(shè)置fmincon的參數(shù)
注意:
fmincon函數(shù)提供了大型優(yōu)化算法和中型優(yōu)化算法。默認(rèn)時(shí),若在fun函數(shù)中提供了梯度(options參數(shù)的GradObj設(shè)置為’on’),并且只有上下界存在或只有等式約束,fmincon函數(shù)將選擇大型算法。當(dāng)既有等式約束又有梯度約束時(shí),使用中型算法。
fmincon函數(shù)的中型算法使用的是序列二次規(guī)劃法。在每一步迭代中求解二次規(guī)劃子問(wèn)題,并用BFGS法更新拉格朗日Hessian矩陣。
fmincon函數(shù)可能會(huì)給出局部最優(yōu)解,這與初值X0的選取有關(guān)。
實(shí)例2
實(shí)例3:
實(shí)例4
總結(jié)
以上是生活随笔為你收集整理的二次规划与非线性规划及matlab应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 本地配置DNS服务器(MAC版)
- 下一篇: matlab写函数进行坐标正反算,基于m