主要内容

OptimizationVariable

优化变量

描述

一个OptimizationVariable对象包含用于优化表达式的变量。使用表达式来表示目标函数、约束条件或方程。变量本质上是符号,可以是任意大小的数组。

提示

有关完整的工作流程,请参见基于问题的优化工作流求解方程的基于问题的工作流程

创建

创建一个OptimizationVariable对象使用optimvar

属性

全部展开

Array-Wide属性

此属性是只读的。

变量名,指定为字符串或字符向量。

的名字给出要显示的变量标签,例如in显示的名字还给出了解决方案结构中的字段名称解决的回报。

提示

为避免混淆,请设置的名字是MATLAB®变量的名字。例如,

金属= optimvar(“金属”

数据类型:字符|字符串

变量类型,指定为“连续”“整数”

  • “连续”-真实价值

  • “整数”—整数值

变量类型适用于数组中的所有变量。要有多个变量类型,请创建多个变量。

提示

要指定二进制变量,请使用“整数”类型和指定下界0而且UpperBound1

数据类型:字符|字符串

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

数据类型:细胞

Element-wise属性

的下界,指定为实标量或具有相同维度的实数组OptimizationVariable对象。标量值应用于变量的所有元素。

下界属性始终显示为数组。但是,您可以将属性设置为应用于所有元素的标量。例如,

var.LowerBound = 0

数据类型:

的上界,指定为实标量或具有相同维度的实数组OptimizationVariable对象。标量值应用于变量的所有元素。

UpperBound属性始终显示为数组。但是,您可以将属性设置为应用于所有元素的标量。例如

var.UpperBound = 1

数据类型:

对象的功能

显示 显示优化对象信息
showbounds 显示变量边界
保存优化对象描述
writebounds 保存变量边界的描述

例子

全部折叠

创建名为美元

美元= optimvar(“美元”
$ =带有属性的OptimizationVariable:名称:'dollars'类型:'continuous' IndexNames: {{} {} LowerBound: -Inf UpperBound: Inf参见带show的变量。请使用showbounds查看bounds。

创建一个名为x

X = optimvar(“x”3)
x = 3x1 optimization带属性的变量数组:数组范围属性:名称:'x'类型:'continuous' IndexNames: {{} {} Elementwise properties: LowerBound: [3x1 double] UpperBound: [3x1 double]参见带show的变量。请使用showbounds查看bounds。

创建一个名为螺栓由字符串索引“铜”“不锈钢”,“镀锌”.使用的索引螺栓创建一个优化表达式,并尝试创建螺栓使用字符数组或以不同的方向。

创建螺栓在行方向中使用字符串。

名字= [“铜”“不锈钢”“镀锌”];螺栓= optimvar(螺栓的bnames,“类型”“整数”
带有属性的变量数组:数组级属性:名称:'bolts'类型:'integer' IndexNames: {{} {1x3 cell}} Elementwise属性:LowerBound: [-Inf -Inf -Inf] UpperBound: [Inf Inf Inf]参见带show的变量。请使用showbounds查看bounds。

使用字符串索引创建优化表达式。

Y =螺栓(“铜”) + 2*螺栓(“不锈钢”) + 4*螺栓(“镀锌”
y =线性优化表达式螺栓(“黄铜”)+ 2*螺栓(“不锈钢”)+ 4*螺栓(“镀锌”)

使用字符向量的单元格数组而不是字符串来获得具有与以前相同下标的变量。

Bnames = {“铜”“不锈钢”镀锌的};螺栓= optimvar(螺栓的bnames,“类型”“整数”
带有属性的变量数组:数组级属性:名称:'bolts'类型:'integer' IndexNames: {{} {1x3 cell}} Elementwise属性:LowerBound: [-Inf -Inf -Inf] UpperBound: [Inf Inf Inf]参见带show的变量。请使用showbounds查看bounds。

的面向列版本bnames3乘1而不是1乘3,观察一下螺栓也有这个方向。

名字= [“铜”“不锈钢”“镀锌”];螺栓= optimvar(螺栓的bnames,“类型”“整数”
带有属性的变量数组:数组范围属性:名称:'bolts'类型:'integer' IndexNames: {{1x3 cell} {}} Elementwise属性:LowerBound: [3x1 double] UpperBound: [3x1 double]参见带show的变量。请使用showbounds查看bounds。

创建一个3 × 4 × 2的优化变量数组xarray

Xarray = optimvar(“xarray”、3、4、2)
xarray = 3x4x2 optimization带属性的变量数组:数组级属性:名称:'xarray'类型:'continuous' IndexNames: {{} {} {} Elementwise属性:LowerBound: [3x4x2 double] UpperBound: [3x4x2 double]参见带show的变量。请使用showbounds查看bounds。

还可以创建由名称和数字索引混合索引的多维变量。例如,创建一个3乘4的优化变量数组,其中第一个维度是由字符串索引的“铜”“不锈钢”,镀锌的,第二个维度是数字索引。

名字= [“铜”“不锈钢”“镀锌”];螺栓= optimvar(螺栓的bnames 4)
带有属性的变量数组:数组范围属性:名称:'bolts'类型:'continuous' IndexNames: {{1x3 cell} {} Elementwise属性:LowerBound: [3x4 double] UpperBound: [3x4 double]参见带有show的变量。请使用showbounds查看bounds。

创建一个名为x大小为3 × 3 × 3表示二进制变量。

X = optimvar(“x”3, 3, 3,“类型”“整数”下界的0,“UpperBound”, 1)
x = 3x3x3 optimization带属性的变量数组:数组范围属性:名称:'x'类型:'integer' IndexNames: {{} {} {} Elementwise属性:LowerBound: [3x3x3 double] UpperBound: [3x3x3 double]参见带show的变量。请使用showbounds查看bounds。

更多关于

全部展开

提示

  • OptimizationVariable对象有处理复制行为。看到处理对象行为而且句柄类和值类的比较.句柄复制行为意味着OptimizationVariable指的是原来并没有独立的存在。例如,创建一个变量x,复制至y的属性y.请注意,x获取新的属性值。

    X = optimvar(“x”下界的1);Y = x;. lowerbound = 0;showbounds (x)
    0 <= x

版本历史

在R2017b中引入