主要内容

OptimizationEquality

平等和等式约束

自从R2019b

描述

一个OptimizationEquality对象包含平等和等式约束OptimizationVariable对象或OptimizationExpression对象。每一个平等使用比较运算符= =

一个语句可以代表平等的一个数组。例如,您可以表达每一行一个矩阵变量的等式x总结在这条语句:

constrsum = sum (x, 2) = = 1

使用OptimizationEquality在一个对象作为约束OptimizationProblem,或者在一个方程EquationProblem

创建

使用优化和比较运算符表达式创建平等= =

包括平等的约束属性的一个优化问题,或方程属性的一个方程的问题,通过使用点符号。

概率= optimproblem;x = optimvar (“x”、4、6);SumToOne =总和(x, 2) = = 1;prob.Constraints。SumToOne = SumToOne;%或一个方程的问题:eqprob = eqnproblem;eqprob.Equations。SumToOne = SumToOne;

您还可以创建一个空的优化平等使用optimeqoptimconstr。通常,然后设置在一个循环中平等。例如,看到的在循环创建平等。然而,对于制定最有效的问题,避免在循环设置平等。看到创建高效的优化问题

属性

全部展开

索引名称,指定字符串或字符单元阵列的向量。使用索引名称的信息,请参阅为优化变量命名索引

数据类型:细胞

这个属性是只读的。

优化变量的对象,指定为一个结构OptimizationVariable对象。

数据类型:结构体

对象的功能

不可能实行 在一个点约束违反
显示 显示信息优化对象
保存优化对象描述

例子

全部折叠

创建一个名为x的4-by-6优化变量矩阵。

x = optimvar (“x”、4、6);

创建平等,每一行x的资金。

constrsum = sum (x, 2) = = 1
constrsum = 4 x1线性OptimizationEquality数组属性:IndexNames:{{}{}}变量:[1 x1 struct]包含1 OptimizationVariable看到平等制定与显示。

查看平等。

显示(constrsum)
(1,1)x (1,1) + x (1、2) + (3) + (4) + x (1、5) + x (1,6) = = 1 (2, 1) x (2, 1) + (2, 2) + x (2、3) + x (2、4) + (2、5) + x (2,6) = = 1 (3,1) x (1) + (2) + (3) + x (3、4) + x (3、5) + (3、6) = = 1 (4,1) x (4 1) + (2) + (3) + x (4, 4) + x (4、5) + (4、6) = = 1

在一个优化的问题,包括平等设置约束财产constrsum通过使用点符号。

概率= optimproblem;prob.Constraints。constrsum= constrsum
概率= OptimizationProblem属性:描述:“ObjectiveSense:“最小化”变量:[1 x1 struct]包含1 OptimizationVariable目的:[0 x0 OptimizationExpression]约束:[1 x1 struct]包含1 OptimizationConstraint看到问题公式化。

同样,在一个方程的问题,包括平等设置约束财产constrsum通过使用点符号。

eqnprob = eqnproblem;eqnprob.Equations。constrsum= constrsum
eqnprob = EquationProblem属性:描述:“变量:包含1 OptimizationVariable方程:[1 x1 struct] [1 x1 struct]包含1 OptimizationEquality看到问题公式化。

创建一个空OptimizationEquality对象。

eq1 = optimeq;

创建一个5-by-5优化变量数组x

x = optimvar (“x”5、5);

创建平等这一行 x资金 2

i = 1:尺寸(x, 1) eq1 (i) =总和(x(我,:))= = i ^ 2;结束

查看结果平等。

显示(eq1)
(1,1)x (1,1) + x (1、2) + (3) + (4) + x (1、5) = = 1 (1、2) x (2, 1) + (2, 2) + x (2、3) + x (2、4) + (2、5) = = 4 (1、3) x (1) + (2) + (3) + x (3、4) + x (3、5) = = 9 (1、4) x (4 1) + (2) + (3) + x (4, 4) + x (4、5) = = 16 (1、5) x (1) + (2) + (3) + x (5, 4) + x (5,5) = = 25

使用eq1作为一个约束优化问题,集eq1作为一个约束通过使用点符号属性。

概率= optimproblem;prob.Constraints。eq1 = eq1;

同样,使用eq1作为一组方程的方程问题,集eq1作为一个方程通过使用点符号属性。

eqprob = eqnproblem;eqprob.Equations。eq1 = eq1;

版本历史

介绍了R2019b