主要内容

优化平等

等式和等式约束

描述

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

一条语句可以表示一个等号数组。例如,可以表示矩阵的每一行变量的等式x在此单一报表中总计为一:

sum(x,2) == 1

使用优化平等对象中的约束OptimizationProblem,或作为方程问题

创建

使用带有比较运算符的优化表达式创建等式==

将等式包含在约束条件最优化问题的性质,或方程方程问题的性质,使用点表示法。

概率= optimproblem;x = optimvar (“x”、4、6);SumToOne = sum(x,2) == 1;prob.Constraints.SumToOne = SumToOne;或者对于一个方程问题:eqprob=eqn问题;eqprob.Equations.SumToOne=SumToOne;

您还可以使用创建空的优化等式优化最优控制.通常,然后在循环中设置等号。例如,请参见在循环中创建等式.然而,为了最有效的问题表述,避免在循环中设置等式。看到创造有效的优化问题

属性

全部展开

索引名称,指定为字符串或字符向量的单元格数组。有关使用索引名的信息,请参见优化变量的命名索引

数据类型:细胞

此属性是只读的。

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

数据类型:结构体

对象的功能

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

例子

全部折叠

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

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

创建每一行x的和为1的等式。

sum(x,2) == 1
constrsum = 4x1 Linear optimizationequal array with properties: IndexNames: {{} {}} Variables: [1x1 struct] contains 1 OptimizationVariable参见equal formulation with show。

查看平等。

显示(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
prob=具有属性的优化问题:描述:“”ObjectiveSense:“最小化”变量:[1x1结构]包含1个优化变量目标:[0x0优化表达式]约束:[1x1结构]包含1个优化约束请参见问题公式和显示。

类似地,要将等式包含在方程问题中,集合a约束条件财产constrsum通过使用点表示法。

eqnprob = eqnproblem;eqnprob.Equations.constrsum = constrsum
描述:" Variables: [1x1 struct] containing 1 OptimizationVariable equation: [1x1 struct] containing 1 optimizationequal参见problem formulation with show。

创建一个空的优化平等对象

eq1 = optimeq;

创建一个名为x

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

创建该行中的等号 属于x资金 2

i=1:size(x,1)eq1(i)=和(x(i,:)==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作为一个约束条件属性使用点符号。

prob=优化问题;prob.Constraints.eq1=eq1;

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

eqprob=eqn问题;eqprob.Equations.eq1=eq1;
介绍了R2019b