文档帮助中心文档
创建二阶锥约束
socConstraint = secondordercone (A, b, d,γ)
的secondordercone函数创建一个表示不等式的二阶锥约束
secondordercone
为 一个 ⋅ x − b 为 ≤ d T ⋅ x − γ
从输入矩阵一个,b,d,γ.
一个
b
d
γ
例子
socConstraint= secondordercone (一个,b,d,γ)创建一个二阶锥约束对象socConstraint.
socConstraint= secondordercone (一个,b,d,γ)
socConstraint
求解二阶锥约束问题,用coneprog函数。要表示多个锥约束,请将这些约束的数组传递给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).
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];
[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必须等于行数一个.
例子:0 (1)
0 (1)
线性界,指定为实向量。元素的数量d必须等于一个.
例子:[0, 0, 1]
[0, 0, 1]
界,指定为实标量。较小的值γ对应于更宽松的约束。
例子:-1
-1
SecondOrderConeConstraint
二阶锥约束,返回为SecondOrderConeConstraint对象。使用此对象作为coneprog解算器。如果你有多个圆锥约束,传递一个约束向量给coneprog;看到几个锥约束.
coneprog|SecondOrderConeConstraint
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系