文档帮助中心文档
创建二阶锥体约束
socconstraint = secondordercone(a,b,d,伽玛)
这第二阶酮函数创建代表不平等的二阶锥体约束
第二阶酮
” 一个 Å X - b ” ≤ d t Å X - γ
从输入矩阵一个,,,,b,,,,d, 和伽玛。
一个
b
d
伽玛
例子
Socconstraint= secondorderCone(一个,,,,b,,,,d,,,,伽玛)创建二阶锥体约束对象Socconstraint。
Socconstraint= secondorderCone(一个,,,,b,,,,d,,,,伽玛)
Socconstraint
通过使用二阶锥体约束解决问题Coneprog功能。要表示多个锥体约束,请将这些约束的数组传递给Coneprog如示例所示几个圆锥约束。
Coneprog
全部收缩
要设置使用二阶锥体约束的问题,请创建二阶锥体约束对象。
a = diag([1,1/2,0]);b =零(3,1);d = [0; 0; 1];伽马= 0;socConstraints = secondorderCone(a,b,d,伽马);
创建目标函数向量。
f = [-1,-2,0];
该问题没有线性约束。为这些约束创建空矩阵。
aineq = [];bineq = [];aeq = [];beq = [];
将上限和下限设置为x(3)。
x(3)
lb = [-inf,-inf,0];ub = [inf,inf,2];
通过使用Coneprog功能。
[x,fval] = coneprog(f,socconstraints,aineq,bineq,aeq,beq,lb,ub)
找到最佳解决方案。
x =3×10.4851 3.8806 2.0000
FVAL = -8.2462
解决方案组件x(3)处于上限。圆锥约束在解决方案上处于活动状态:
norm(a*x -b)-d'*x当约束处于活动状态时,%接近0
ANS = -2.5677E -08
要设置有几个二阶锥体约束的问题,请创建一个约束对象。为了节省时间和内存,请先创建最高的索引约束。
a = diag([1,2,0]);b =零(3,1);d = [0; 0; 1];伽马= -1;socconstraints(3)= secondorderCone(a,b,d,伽马);a = diag([3,0,1]);d = [0; 1; 0];socconstraints(2)= secondordercone(a,b,d,伽马);a = diag([0; 1/2; 1/2]);d = [1; 0; 0]; socConstraints(1) = secondordercone(A,b,d,gamma);
创建线性目标函数向量。
f = [-1; -2; -4];
[x,fval] = coneprog(f,socconstraints)
x =3×10.4238 1.6477 2.3225
FVAL = -13.0089
锥的线性因子,指定为真基质。列中的数量一个必须等于d,以及行的数量一个必须等于b。
例子:诊断([1,1/2,0])
诊断([1,1/2,0])
数据类型:双倍的
双倍的
锥体的中心,指定为真实向量。元素中的数量b必须等于行的数量一个。
例子:零(3,1)
零(3,1)
线性绑定,指定为真实向量。元素中的数量d必须等于列的数量一个。
例子:[0; 0; 1]
[0; 0; 1]
绑定,指定为真实标量。较小的值伽玛对应于宽松的约束。
例子:-1
-1
secondorderconectraint
二阶锥体约束,返回secondorderconectraint目的。使用此对象作为约束Coneprog求解器。如果您有多个锥体约束,请将约束的向量传递给Coneprog;看几个圆锥约束。
Coneprog|secondorderconectraint
您有此示例的修改版本。您想用您的编辑打开这个示例吗?
您单击了与此MATLAB命令相对应的链接:
通过在MATLAB命令窗口中输入该命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站以获取可用的翻译内容,并查看本地事件和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英语)以获得最佳场地性能。其他Mathworks乡村网站未针对您所在的访问进行优化。
联系您当地的办公室