Main Content

行列引数

Optimization Toolbox™ ソルバーは、初期点 x0、下限 lb、上限 ub など、多くの引数のベクトルを受け入れます。また、これらの引数の行列も受け入れます。ここで、行列は任意のサイズの配列を意味します。ソルバーの引数がベクトルではなくもともと配列である場合、引数を配列として指定できます。

ソルバーでは行列引数は以下のように扱われます。

  • 処理を始める前に、行列引数はソルバーによって内部的にベクトルに変換されます。たとえば、x0x0(:) になります。この構文の説明は、colonA(:) エントリ、または配列インデックス付けの「単一のインデックスによるインデックス付け」のセクションを参照してください。

  • 出力では、ソルバーが解 x を入力 x0 と同じサイズに再形成します。

  • x0 が行列の場合、ソルバーは xx0 と同じサイズの行列として目的関数と任意の非線形制約関数の両方に渡します。

  • ただし、線形制約では x をベクトル形式 x(:) で受け取ります。つまり、次の形式の線形制約

    A*x ≤ b または Aeq*x = beq

    は、x を行列ではなくベクトルとして受け入れます。行列 A または Aeq の列数が x0 の要素数と同じであることを確認してください。同じでない場合は、ソルバーでエラーが発生します。

参考

関連するトピック