主要内容

ThemondrelConeConstraint.

二阶锥约束对象

描述

ThemondrelConeConstraint.代表二阶锥限制

一种 X - B. ≤. D. T. X - γ.

  • 一种矩阵表示锥体的线性因子。

  • B.矢量代表锥体的中心。

  • D.矢量表示线性绑定。

  • γ.标量表示绑定。

通过使用使用二阶锥限制来解决问题Coneprog.功能。

创建

创建一个ThemondrelConeConstraint.通过使用的对象Themondercone.功能。

特性

展开全部

锥的线性因子,指定为真实矩阵。

数据类型:双倍的

锥形中心,指定为真正的矢量。

数据类型:双倍的

线性绑定,指定为真正的矢量。

数据类型:双倍的

绑定,指定为真正的标量。较小的值伽玛对应于Looser约束。

数据类型:双倍的

对象功能

例子

全部收缩

要使用二阶锥约束设置问题,请创建二阶锥约束对象。

a = diag([1,1 / 2,0]);b =零(3,1);d = [0; 0; 1];伽玛= 0;socconstraints = redongordercone(a,b,d,gamma);

创建客观函数向量。

f = [-1,-2,0];

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

Aineq = [];bineq = [];AEQ = [];beq = [];

设置上限和下限x(3)

lb = [-inf,-inf,0];UB = [INF,INF,2];

通过使用来解决问题Coneprog.功能。

[x,fval] = coneprog(f,socconstraints,anineq,bineq,aeq,beq,lb,Ub)
找到最佳解决方案。
X =3×10.4851 3.8806 2.0000
fval = -8.2462.

解决方案组件x(3)在它的上限。锥形约束在解决方案中是有效的:

常态(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)=统计(A,B,D,Gamma);a = diag([3,0,1]);d = [0; 1; 0];Socconstraints(2)=统计(A,B,D,Gamma);a = diag([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.
在R2020B中介绍