二次约束转化为二阶锥约束
这个例子展示了如何将二次约束转换为二阶锥约束形式。二次约束有这样的形式
二阶锥规划具有这种形式的约束
.
矩阵
必须是对称的和正半定的你转换二次约束。让
的平方根
,这意味着
.你可以计算
使用sqrtm
.假设有一个解
这个方程
,这总是正确的
是正定的。计算
使用b = -S\q
.
因此,如果 ,则二次约束等效于二阶圆锥约束
数值例子
指定一个五元素向量f
表示目标函数
.
F = [1;-2;3;-4;5];
设置二次约束矩阵问
作为一个5乘5的随机正定矩阵。集问
为随机5元向量,取加性常数
.
rng默认的%用于再现性Q = randn(5) + 3*eye(5);Q = (Q + Q')/2;%使Q对称Q = randn(5,1);C = -1;
来创建的输入coneprog
,创建矩阵年代
的平方根问
.
S = sqrtm(Q);
创建本例第一部分中指定的二阶锥约束的其余输入。
b = -S\q;D = 0(大小(b));Gamma = -√(b'*b-c);sc = secondordercone(S,b,d,gamma);
调用coneprog
解决问题。
[x,fval] = coneprog(f,sc)
找到最优解。
x =5×1-0.7194 0.2669 -0.6309 0.2543 -0.0904
Fval = -4.6148
将此结果与通过使用fmincon
.编写二次约束,如匿名非线性约束函数.
X0 = randn(5,1);% fmincon的初始点nlc = @(x)x'*Q*x + 2* Q '*x + c;Nlcon = @(x)deal(nlc(x),[]);[xfmc, fvalfmc] = fmincon (@ * x, x0 f (x) ,[],[],[],[],[],[], nlcon)
找到满足约束条件的局部最小值。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
xfmc =5×1-0.7196 0.2672 -0.6312 0.2541 -0.0902
Fvalfmc = -4.6148
这两个解几乎完全金宝搏官方网站相同。
另请参阅
coneprog
|quadprog
|secondordercone