主要内容

OptimizationVariable

最適化用の変数

説明

OptimizationVariableオブジェクトには最適化式用の変数が含まれます。式を使用して,目的関数,制約,または方程式を表します。変数はシンボリックな性質をも,任意のサズの配列にすることができます。

ヒント

完全なワクフロに,問題ベスの最適化ワクフロまたは方程式を解くための問題ベスのワクフロを参照してください。

作成

optimvarを使用して,OptimizationVariableオブジェクトを作成します。

プロパティ

すべて展開する

配列全体のプロパティ

このプロパティは読み取り専用です。

変数名。字符串または文字ベクトルとして指定します。

的名字は,显示などで表示される変数ラベルです。的名字は,解决が返す解の構造体のフィルド名にもなります。

ヒント

混乱を避けるために,的名字をMATLAB®変数名になるように設定します。たとえば,

金属= optimvar (“金属”

デタ型:字符|字符串

変数の型。“连续”または“整数”で指定します。

  • “连续”- 実数値

  • “整数”- 整数値

変数の型は,配列のすべての変数に適用されます。複数の変数の型をもには,複数の変数を作成します。

ヒント

2値変数を指定するには,“整数”型を使用して,下界0UpperBound1を指定します。

デタ型:字符|字符串

ンデックスの名前。字符串の cell 配列または文字ベクトルを指定します。インデックス名の使用法の詳細は、最適化変数の名前付き邮箱ンデックスを参照してください。

デタ型:细胞

要素単位のプロパティ

下限。実数スカラまたはOptimizationVariableオブジェクトと同じ次元をも実数配列として指定します。スカラ値は変数のすべての要素に適用されます。

下界プロパティは常に配列として表示されます。ただし,プロパティをすべての要素に適用されるスカラとして設定できます。たとえば,

var.LowerBound = 0

デタ型:

上限。実数スカラまたはOptimizationVariableオブジェクトと同じ次元をも実数配列として指定します。スカラ値は変数のすべての要素に適用されます。

UpperBoundプロパティは常に配列として表示されます。ただし,プロパティをすべての要素に適用されるスカラとして設定できます。たとえば,

var.UpperBound = 1

デタ型:

オブジェクト関数

显示 最適化オブジェクトの情報表示
showbounds 変数範囲の表示
最適化オブジェクトの説明の保存
writebounds 変数範囲の説明の保存

すべて折りたたむ

美元という名前のスカラ最適化変数を作成します。

美元= optimvar (“美元”
名称:'美元'类型:'连续' IndexNames: {{} {}} LowerBound: -Inf UpperBound: Inf参见variables with show. properties参见带showbounds的bounds。

xという名前の3行1列の最適化変数ベクトルを作成します。

x = optimvar (“x”3)
arraywide properties: Name: 'x' Type: 'continuous' IndexNames: {{} {} Elementwise properties: LowerBound: [3x1 double] UpperBound: [3x1 double]参见variables with show。参见带showbounds的bounds。

“铜”“不锈钢”,および“镀锌”というstringによって螺栓という名前の整数最適化変数ベクトルを作成します。螺栓の,ンデックスを使用して最適化式を作成し,さらに,文字配列を使用して,または異なる方向で螺栓の作成を試します。

行方向でstringを使用して螺栓を作成します。

bnames = [“铜”“不锈钢”“镀锌”];螺栓= optimvar (螺栓的bnames,“类型”“整数”
arraywide properties: Name: 'bolts' Type: 'integer' IndexNames: {{} {1x3 cell}} Elementwise properties: LowerBound: [-Inf -Inf -Inf] UpperBound: [Inf Inf Inf]参见variables with show。参见带showbounds的bounds。

字符串字符串ンデックスを使用して最適化式を作成します。

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

字符串の代わりに文字ベクトルの细胞配列を使用して,前出と同じインデックスをもつ変数を取得します。

bnames = {“铜”“不锈钢”镀锌的};螺栓= optimvar (螺栓的bnames,“类型”“整数”
arraywide properties: Name: 'bolts' Type: 'integer' IndexNames: {{} {1x3 cell}} Elementwise properties: LowerBound: [-Inf -Inf -Inf] UpperBound: [Inf Inf Inf]参见variables with show。参见带showbounds的bounds。

1行3列ではなく3行1列の列方向バbnamesを使用して,螺栓もその方向であることを確認します。

bnames = [“铜”“不锈钢”“镀锌”];螺栓= optimvar (螺栓的bnames,“类型”“整数”
arraywide properties: Name: 'bolts' Type: 'integer' IndexNames: {{1x3 cell} {}} Elementwise properties: LowerBound: [3x1 double] UpperBound: [3x1 double]参见variables with show。参见带showbounds的bounds。

xarrayという名前の3 x 4 x 2の最適化変数配列を作成します。

xarray = optimvar (“xarray”、3、4、2)
OptimizationVariable array with properties: array wide properties: Name: 'xarray' Type: 'continuous' IndexNames: {{} {} {} Elementwise properties: LowerBound: [3x4x2 double] UpperBound: [3x4x2 double]参见variables with show。参见带showbounds的bounds。

名前と数値邮箱ンデックスの混合によって邮箱ンデックス付けされた多次元変数を作成することもできます。たとえば,最適化変数の3行4列の配列を作成します。1番目の次元は字符串“铜”“不锈钢”,および镀锌的によってereplicationンデックス付けされ,2番目の次元は数値的にereplicationンデックス付けされます。

bnames = [“铜”“不锈钢”“镀锌”];螺栓= optimvar (螺栓的bnames 4)
array wide properties: Name: 'bolts' Type: 'continuous' IndexNames: {{1x3 cell} {}} Elementwise properties: LowerBound: [3x4 double] UpperBound: [3x4 double]参见variables with show。参见带showbounds的bounds。

サ电子邮箱ズが3 × 3 × 3で2値変数を表すxという名前の最適化変数を作成します。

x = optimvar (“x”3, 3, 3,“类型”“整数”下界的0,“UpperBound”, 1)
OptimizationVariable array with properties: array wide properties: Name: 'x' Type: 'integer' IndexNames: {{} {} {} Elementwise properties: LowerBound: [3x3x3 double] UpperBound: [3x3x3 double]参见variables with show。参见带showbounds的bounds。

詳細

すべて展開する

ヒント

  • OptimizationVariableオブジェクトには,“ハンドル”コピ動作があります。詳細は,ハンドルオブジェクトの動作ハンドルクラスと値クラスの比較を参照してください。ハンドルコピ動作とは,OptimizationVariableのコピがオリジナルを指しており,独立して存在していないことを意味します。たとえば,変数xを作成し,それをyにコピして,yのプロパティを設定します。xに新しいプロパティ値が反映される点に注意してください。

    x = optimvar (“x”下界的1);y = x;y.LowerBound = 0;showbounds (x)
    0 < = x

バジョン履歴

R2017bで導入