MATLAB 帮助中心
创建二阶锥约束
socConstraint = secondordercone(A,b,d,gamma)
secondordercone 函数创建表示不等式的二阶锥约束
secondordercone
‖A⋅x−b‖≤dT⋅x−γ
(基于输入矩阵 A、b、d 和 gamma)。
A
b
d
gamma
socConstraint = secondordercone(A,b,d,gamma) 创建二阶锥约束对象 socConstraint。
socConstraint
使用 coneprog 函数求解具有二阶锥约束的问题。要表示多个锥约束,请将由这些约束组成的数组传递给 coneprog,如示例多个锥约束中所示。
coneprog
示例
全部折叠
要使用二阶锥约束设立问题,请创建一个二阶锥约束对象。
Asoc = diag([1,1/2,0]); bsoc = zeros(3,1); dsoc = [0;0;1]; gamma = 0; socConstraints = secondordercone(Asoc,bsoc,dsoc,gamma);
创建一个目标函数向量。
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)
Optimal solution found.
x = 3×1 0.4851 3.8806 2.0000
fval = -8.2462
解的分量 x(3) 位于其上界。锥约束在解处处于活动状态:
norm(Asoc*x-bsoc) - dsoc'*x % Near 0 when the constraint is active
ans = -2.5677e-08
要设立一个具有多个二阶锥约束的问题,请创建一个约束对象数组。为了节省时间和内存,请先创建最高阶指数约束。
Asoc = diag([1,2,0]); bsoc = zeros(3,1); dsoc = [0;0;1]; gamma = -1; socConstraints(3) = secondordercone(Asoc,bsoc,dsoc,gamma); Asoc = diag([3,0,1]); dsoc = [0;1;0]; socConstraints(2) = secondordercone(Asoc,bsoc,dsoc,gamma); Asoc = diag([0;1/2;1/2]); dsoc = [1;0;0]; socConstraints(1) = secondordercone(Asoc,bsoc,dsoc,gamma);
创建线性目标函数向量。
f = [-1;-2;-4];
[x,fval] = coneprog(f,socConstraints)
x = 3×1 0.4238 1.6477 2.3225
fval = -13.0089
锥的线性因子,指定为实矩阵。A 中的列数必须等于 d 中的元素数,并且 A 中的行数必须等于 b 中的元素数。
示例: diag([1,1/2,0])
diag([1,1/2,0])
数据类型: double
double
锥的中心,指定为实数向量。b 中的元素数必须等于 A 中的行数。
示例: zeros(3,1)
zeros(3,1)
线性边界,指定为实数向量。d 中的元素数必须等于 A 中的列数。
示例: [0;0;1]
[0;0;1]
边界,指定为实数标量。gamma 的值越小,对应的约束条件越宽松。
示例: -1
-1
SecondOrderConeConstraint
二阶锥约束,以 SecondOrderConeConstraint 对象形式返回。将此对象用作 coneprog 求解器的约束。如果您有多个锥约束,请将约束向量传递给 coneprog;请参阅多个锥约束。
在 R2020b 中推出
coneprog | SecondOrderConeConstraint
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处