主要内容

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

Optimvar

説明

Optimvarを使用して、最適化変数を作成します。

ヒント

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

x= optimvar(姓名)は,化を作成します适は,,のの観点からから目的关数と问题问题の制约制约制约のの

ヒント

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

金属= Optimvar('metal')

x= optimvar(姓名,n)は、n1列列化のベクトルを作成ます。。

x= optimvar(姓名,CSTR)は、インデックス用にCSTRを使用できる最適化変数のベクトルを作成します。xの要素数,CSTRベクトルのさと同じ。。xの方向はCSTRの方向と同一、つまり、CSTRが行ベクトル场合xは行ベクトル、CSTRが列ベクトル场合xは列ベクトルです。

x= optimvar(姓名,CSTR1,n2,...,,,CSTRk)またはx= optimvar(姓名,{CSTR1,CSTR2,...,,,CSTRk})またはx= optimvar(姓名,[n1,n2,...,,,nk])は、正の整数njと名前CSTRkののについて,次元整数整数nj とエントリCSTR1k の長さに等しい最適化変数の配列を作成します。

x= optimvar(___,Name,Value)では,ののいずれかについてについて,,つつつのName,Valueペア引数によって指定される追加オプションを使用します。たとえば、整数変数を指定するには、x = optimvar('x','Type','integer')を使用し。

すべて折りたたむ

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

dollars = optimvar('dollars')
dollars = OptimizationVariable with properties: Name: 'dollars' Type: 'continuous' IndexNames: {{} {}} LowerBound: -Inf UpperBound: Inf See variables with show. See bounds with showbounds.

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

x = optimvar('x',3)
x = 3x1 OptimizationVariable array with properties: Array-wide properties: Name: 'x' Type: 'continuous' IndexNames: {{} {}} Elementwise properties: LowerBound: [3x1 double] UpperBound: [3x1 double] See variables with show. See bounds with showbounds.

"brass""stainless"、および“镀锌”という string によってインデックス付けされるboltsという名前最适変数ベクトルをし。。。boltsのインデックスを使用して最適化式を作成し、さらに、文字配列を使用して、または異なる方向でboltsの作成を試します。

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

bnames = ["brass","stainless",“镀锌”];螺栓= Optimvar(“螺栓”,bnames,'类型','整数')
bolts = 1x3 OptimizationVariable array with properties: Array-wide properties: Name: 'bolts' Type: 'integer' IndexNames: {{} {1x3 cell}} Elementwise properties: LowerBound: [-Inf -Inf -Inf] UpperBound: [Inf Inf Inf] See variables with show. See bounds with showbounds.

字符串インデックスをして化式を作成。。

y = bolts("brass") + 2*bolts("stainless") + 4*螺栓(“镀锌”)
y =线性优化表达螺栓('brass') + 2*螺栓('不锈钢') + 4*螺栓('镀锌')

字符串の代わり文字のの配列配列をし,前出と同じインデックスをもつ変数変数を取得しますます

bnames = {'brass','防锈的','galvanized'};螺栓= Optimvar(“螺栓”,bnames,'类型','整数')
bolts = 1x3 OptimizationVariable array with properties: Array-wide properties: Name: 'bolts' Type: 'integer' IndexNames: {{} {1x3 cell}} Elementwise properties: LowerBound: [-Inf -Inf -Inf] UpperBound: [Inf Inf Inf] See variables with show. See bounds with showbounds.

1行3列ではなく行行列の方向ののののbnamesを使用して、boltsもそのであること确认します。

bnames = ["brass";"stainless";“镀锌”];螺栓= Optimvar(“螺栓”,bnames,'类型','整数')
bolts = 3x1 OptimizationVariable array with properties: Array-wide properties: Name: 'bolts' Type: 'integer' IndexNames: {{1x3 cell} {}} Elementwise properties: LowerBound: [3x1 double] UpperBound: [3x1 double] See variables with show. See bounds with showbounds.

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

Xarray= optimvar('xarray',3,4,2)
xarray = 3x4x2优化视阵数,带有属性:阵列范围属性:名称:'xarray'type:'continule'indexNames:{{} {} {}} {}} {} {} {}} elementwise properties:lowerbound:[3x4x2 double bounterbound]上格与表演。看到与展示的边界。

名前と数値インデックスの混合によってインデックス付けされた多次元変数を作成することもできます。たとえば、最適化変数の 3 行 4 列の配列を作成します。1 番目の次元は string'brass''防锈的'、および'galvanized'によってインデックス付けされ、2 番目の次元は数値的にインデックス付けされます。

bnames = ["brass","stainless",“镀锌”];螺栓= Optimvar(“螺栓”,bnames,4)
螺栓= 3x4优化视段带有属性:阵列整个属性:名称:'螺栓'类型:'连续'indexNames:{{1x3 cell} {}}}}} elementwise properties:lowerbound:[3x4 doublebound]与表演。看到与展示的边界。

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

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

入力引数

すべて折りたたむ

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

ヒント

どの名前が変数のどの側面に関連しているかについて混乱を避けるために、ワークスペース変数名を変数名に設定します。たとえば、

truck = optimvar('truck');

例:"Warehouse"

例:'truck'

データ::char|细绳

変数の次元。正の整数として指定します。

例:4

データ::双倍的

string配列。配列文字配列のの配列配列配列指定し。。。。

例:x = optimvar('x',["Warehouse","Truck","City"])

例:x = optimvar('x',{'Warehouse','Truck','City'})

データ::细绳|cell

名前と値のペアの引数

引数Name,Valueのオプションのコンマ区切りペアを指定します。Nameは引数名,Valueは対応する値です。Nameは引用符で囲まなければなりません。NAME1,Value1,...,Namen,Valuenのように、複数の名前と値のペアの引数を任意の順番で指定できます。

例:コマンドx = optimvar('x',3,'LowerBound',0,'UpperBound',[Inf,2,4])によって、xx(2)<= 2およびx(3)<= 4の 3 要素の非負ベクトルとして作成します。

変数の型。'continuous'または'整数'で指定し。

  • 'continuous'- 実数値

  • '整数'- 整数値

変数の配列のすべて変数変数れ。。复数の変数の型ををもつには,,复数ののの変数変数

ヒント

2 値変数を指定するには、'整数'型を使用して、LowerBound=0UpperBound=1を指定します。

例:'整数'

下限。xと同じのまたは実数として指定します。LowerBoundがスカラーの場合、値はxのすべての要素に適用されます。

例:下限0xのすべての要素に設定するには、スカラー値0を指定します。

データ::双倍的

上限。xと同じのまたは実数として指定します。UpperBoundがスカラーの場合、値はxのすべての要素に適用されます。

例:上限2xのすべての要素に設定するには、スカラー値2を指定します。

データ::双倍的

出力引数

すべて折りたたむ

最適化変数。OptimizationVariable配列として返されます。配列の次元は、CSTR1CSTR2列などの、対応する入力変数の次元と同じです。

ヒント

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

    x = optimvar('x',“下界”,1); y = x; y.LowerBound = 0; showbounds(x)
    0 <= x
R2017b で導入