主要内容

secondordercone

创建二阶锥约束

自从R2020b

描述

secondordercone函数创建一个二阶锥约束代表不平等

一个 x b d T x γ

从输入矩阵一个,b,d,γ

例子

socConstraint= secondordercone (一个,b,d,γ)创建一个二阶锥约束对象socConstraint

通过使用解决问题与二阶锥约束coneprog函数。代表多个锥约束,这些约束的数组传递给coneprog如这个例子所示几个锥约束

例子

全部折叠

建立一个二阶锥约束的问题,创建一个二阶锥约束对象。

一个=诊断接头([1,1/2,0]);b = 0 (3,1);d = [0, 0, 1];γ= 0;socConstraints = secondordercone (A, b, d,γ);

创建一个目标函数向量。

f = (1 2 0);

这个问题没有线性约束。为这些约束创建空矩阵。

Aineq = [];bineq = [];Aeq = [];说真的= [];

设置上下界限x (3)

磅=(负负0);乌兰巴托=(正,正无穷,2);

通过使用解决问题coneprog函数。

[x, fval] = coneprog (f socConstraints Aineq、bineq Aeq,说真的,磅,乌兰巴托)
找到最优解。
x =3×10.4851 3.8806 2.0000
fval = -8.2462

解决方案组件x (3)上界。锥约束是活跃的解决方案:

规范(*取向)- d ' * x% 0附近时,约束是活跃的
ans = -2.5677 e-08

设置几个问题二阶锥约束,约束对象的创建一个数组。为了节省时间和内存,首先创建最高限制。

一个=诊断接头([1 2 0]);b = 0 (3,1);d = [0, 0, 1];γ= 1;socConstraints (3) = secondordercone (A, b, d,γ);一个=诊断接头([0,1]);d = (0, 1, 0);socConstraints (2) = secondordercone (A, b, d,γ);一个=诊断接头([0;1/2;1/2]);d = (1, 0, 0); socConstraints(1) = secondordercone(A,b,d,gamma);

创建一个线性目标函数向量。

f = [1, 2, 4];

通过使用解决问题coneprog函数。

[x, fval] = coneprog (f, socConstraints)
找到最优解。
x =3×10.4238 1.6477 2.3225
fval = -13.0089

输入参数

全部折叠

线性因子的锥,指定为一个真正的矩阵。列的数量一个必须等于元素的数量吗d的行数一个必须等于元素的数量吗b

例子:诊断接头([1 1/2 0])

数据类型:

中心锥,指定为一个真正的向量。元素的数量b必须等于中的行数一个

例子:0 (1)

数据类型:

线性约束,指定为一个真正的向量。元素的数量d必须等于列数一个

例子:[0,0,1]

数据类型:

绑定,指定为一个真正的标量。较小的值γ对应于宽松的约束。

例子:1

数据类型:

输出参数

全部折叠

二阶锥约束,作为一个返回SecondOrderConeConstraint对象。使用这个对象的约束coneprog解算器。如果你有多个锥约束,通过约束的向量coneprog;看到几个锥约束

版本历史

介绍了R2020b