Main Content

最適化変数および式でサポートされる演算

サポートされる演算の表記

最適化変数と最適化式は問題ベースの最適化ワークフローの基本要素です。最適化変数および式に対して有効な演算において、

  • xy は任意のサイズ (通常は同じサイズ) の最適化配列を表します。

  • x2D および y2D は 2 次元最適化配列を表します。

  • a はスカラー数値定数です。

  • M は定数値行列です。

  • cx と同じサイズの数値配列です。

警告

問題ベースのアプローチでは、目的関数、非線形等式、および非線形不等式における複素数値はサポートされていません。関数の計算に複素数値が含まれていると、それが中間値としてであっても、最終結果が不正確になる場合があります。

最適化式を返す演算

最適化変数または式に対するこれらの演算は、最適化式を返します。

カテゴリ演算
算術定数の加算x+c または c+x
変数の加算x+y
単項プラス+x
定数の減算x-c
変数の減算x–y
単項マイナス-x
定数スカラーによる乗算a*x または a.*x または x*a または x.*a
定数スカラーによる除算x/a または x./a または a\x または a.\x
配列による点単位の乗算c.*x または x.*c
配列による点単位の除算x./c または c.\x
変数の点単位の乗算x.*y
変数の行列乗算x2D*y2D、または xy がスカラーの場合は x*y
変数および行列の行列乗算M*x2D または x2D*M
変数および配列のドット積dot(x,c) または dot(c,x)
変数の線形結合sum(x)sum(x,dim) (dim はスカラーまたはベクトル)、sum(x,'all')mean(x)mean(x,dim) (dim はスカラーまたはベクトル)、mean(x,'all')
配列要素の積prod(x)prod(x,dim)prod(x,'all')
行列のトレースtrace(x2D)
累積和または累積積cumsum(x) または cumprod(x)cumsum(x,dim)cumsum(_,direction)cumprod(x,dim)cumprod(_,direction) の構文を含む
差分diff(x)diff(x,n) および diff(x,n,dim) の構文を含む
連結と形状変更転置x' または x.'
連結catvertcathorzcat
形状変更reshape(x,[10 1])
対角行列の作成または行列の対角要素の取得diag(x2D)。構文 diag(x2D,k) を含む (x2D は行列またはベクトル)
初等関数正方行列のべき乗x2D^a
点単位のべき乗x.^a
平方根sqrt(x)
ノルム (ユークリッド)

スカラーまたはベクトル xnorm(x)。sqrt(sum(x.^2)) を計算。非ベクトル x の場合または他のノルム タイプの場合、norm(x) は次のブラック ボックス式を返します。

fcn2optimexpr(@norm,x,Analysis="off")
正弦sin(x)
余弦cos(x)
正割sec(x)
余割csc(x)
正接tan(x)
逆正弦asin(x)
逆余弦acos(x)
逆正割asec(x)
逆余割acsc(x)
逆正接atan(x)
指数exp(x)
対数log(x)
双曲線正弦sinh(x)
双曲線余弦cosh(x)
双曲線正割sech(x)
双曲線余割csch(x)
双曲線正接tanh(x)
逆双曲線正弦asinh(x)
逆双曲線余弦acosh(x)
逆双曲線正割asech(x)
逆双曲線余割acsch(x)
逆双曲線正接atanh(x)

R2024a 以降では、最適化変数と最適化式で "like" 構文がサポートされます。この機能をサポートする関数のリストについては、配列作成関数に対するクラス サポートを参照してください。この構文を使用して最適化式を初期化する方法を示す例については、最適化式の初期化を参照してください。

メモ

a^x は最適化変数 x ではサポートされていません。

ただし、a が厳密に正となるよう制限している場合は、同等の exp(x*log(a)) を使用できます。

最適化変数を返す演算

最適化変数に対するこれらの演算は、最適化変数を返します。

演算
N 次元数値インデックス付け (コロンとend を含む)x(3,5:end)
N 次元 logical インデックス付けx(ind) (ind は logical 配列)
N 次元 string インデックス付けx(str1,str2) (str1 および str2 は string)
N 次元混合インデックス付け (数値、logical、コロン、end、および string の結合)x(ind,str1,:)
線形数値インデックス付け (コロンと end を含む)x(17:end)
線形 logical インデックス付けx(ind)
線形 string インデックス付けx(str1)

最適化式に対する演算

最適化式は、最適化変数がサポートするすべての演算をサポートし、最適化式を返します。また、数値または線形インデックス付けに対するコロンと end 演算子を含め、数値、logical、string、または線形インデックスを使用して、最適化式にインデックス付けや割り当てを行うこともできます。

制約式を返す演算

制約は、==<=>= のいずれかの比較演算子を含む 2 つの "比較可能な式" です。比較可能な式は同じサイズであるか、または一方の式がスカラー、つまり、サイズが 1 行 1 列でなければなりません。例については、制約の式と方程式を参照してください。

最適化変数および式に対するドキュメント化されていない一部の演算

一部の関数と演算は、内部的に、ドキュメント化されたサポートされる演算のみを呼び出します。このような場合、関数または演算から妥当な結果を得ることができます。たとえば、現在 squeeze は内部的に reshape を呼び出します。これは、ドキュメント化されたサポートされる演算です。したがって、最適化変数に対して squeeze を実行すると、妥当な式を得ることができます。

fcn2optimexpr を必要とするサポートされていない関数および演算

目的関数または非線形制約関数がサポートされていない場合、fcn2optimexpr を使用して MATLAB® 関数を最適化式に変換します。例については、非線形関数から最適化式への変換または fcn2optimexpr の関数リファレンス ページを参照してください。

参考

| |

関連するトピック