文件名称:非线性规划-vr关键技术框图
文件大小:420KB
文件格式:PDF
更新时间:2024-07-01 18:51:21
MATLAB
2.5 二次规划 用 MATLAB 优化工具箱求解二次规划时要求化为如下形式: 21 22 11 2 1 .. min vxv bxA bxAts xcHxxz TT ≤≤ = ≤ += (QP) 求解的程序名为 quadprog,其最简单和最一般的调用方式分别是: x=quadprog(H,c,A1,b1) [x,fv,ef,out,lag] = quadprog(H,c,A1,b1,A2,b2,v1,v2,x0,opt) 除 H 外,其余参数与解线性规划的程序 linprog 相同,不再重述。在中等规模模式下,用 的是有效集方法;在大规模模式下(注意:只有当约束中仅含有等式约束或仅含有上下界约 束时才能使用),用的是一种置信域方法(Trust region method),这里就不再介绍了。 例 8 求解 0,2 33 32 32.. 3332),(min 21 21 21 21 21 2 221 2 121 ≤≥ ≤− −≥− =+ +−+−= xx xx xx xxts xxxxxxxxf 解 写成形如(QP)的标准形式可得 ]Inf,0[2],Inf,2[,3),2,1( , 3 3 , 31 12 1 3 , 63 34 122 11 =−=== ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ =⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ − − = ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛− =⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ − − = vvbA bA cH 输入如下: H=[4 -3; -3 6]; c=[-3 1]; A1=[-2 1;1 -3]; b1=[3 3]; A2=[1 2]; b2=3; v1=[2,-Inf]; v2=[Inf,0]; [x,fv,ef,out,lag] = quadprog(H,c,A1,b1,A2,b2,v1,v2) 得到 x =[3.0000 0.0000], fv =9.0000, ef=1, out(略),而乘子 lag 为: lag.eqlin=-9,lag.ineqlin=[0,0],lag.upper=[0,26],lag.lower=[0,0] 因此,只有约束 0,32 221 ≤=+ xxx 是有效约束。 2.6 非线性规划 用 MATLAB 优化工具箱求解非线性规划时要求化为如下形式: