主要内容

optimvar

创建优化变量

描述

使用optimvar创建优化变量。

提示

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

例子

x= optimvar (的名字创建标量优化变量。优化变量是一个符号对象,它使您能够根据变量为目标函数和问题约束创建表达式。

提示

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

金属= optimvar(“金属”

例子

x= optimvar (的名字n创建一个n优化变量的-by-1向量。

例子

x= optimvar (的名字装运箱创建可使用的优化变量向量装运箱索引。元素的个数x和的长度一样吗装运箱向量。的定位x和的方向相同吗装运箱x什么时候是行向量装运箱是行向量,和x什么时候是列向量装运箱是一个列向量。

例子

x= optimvar (的名字装运箱1,n2……装运箱k)x= optimvar (的名字,{装运箱1,装运箱2……装运箱k})x= optimvar (的名字,[n1,n2……nk),对于任何正整数的组合nJ和名字装运箱K,创建一个维数等于整数的优化变量数组nJ和元素的长度cstr1k。

例子

x= optimvar (___名称,值,对于任何先前的语法,使用由一个或多个指定的附加选项名称,值对参数。例如,要指定一个整数变量,使用x = optimvar('x','Type','integer')

例子

全部折叠

创建名为美元

美元= 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。

输入参数

全部折叠

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

提示

为了避免混淆哪个名称与变量的哪个方面相关,请将工作区变量名称设置为变量名称。例如,

卡车= optimvar(“卡车”);

例子:“仓库”

例子:“卡车”

数据类型:字符|字符串

可变维度,指定为正整数。

例子:4

数据类型:

索引名称,指定为字符串数组或字符数组的单元格数组。

例子:x = optimvar('x',["仓库","卡车","城市"])

例子:x = optimvar('x',{'仓库','卡车','城市'})

数据类型:字符串|细胞

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:创建x作为一个三元非负向量X (2) <= 2而且X (3) <= 4通过命令x = optimvar(“x”、3、“下界”,0,“UpperBound”,[正无穷,2、4])

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

  • “连续”-真实价值

  • “整数”—整数值

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

提示

要指定二进制变量,请使用“整数”类型与下界等于0而且UpperBound等于1

例子:“整数”

下界,指定为大小相同的数组x或者作为实标量。如果下界是标量,该值适用于的所有元素x

例子:设定…的下限0所有的元素x,指定标量值0

数据类型:

上界,指定为大小相同的数组x或者作为实标量。如果UpperBound是标量,该值适用于的所有元素x

例子:设置…的上限2所有的元素x,指定标量值2

数据类型:

输出参数

全部折叠

优化变量,返回为OptimizationVariable数组中。数组的维数与相应输入变量的维数相同,例如装运箱1——- - - - - -cstr2

提示

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

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

版本历史

在R2017b中引入