Optimization Toolbox のソルバー
Optimization Toolbox™ ソルバーは、4 つの一般的なカテゴリに分類できます。
このグループのソルバーは、開始点
x0
の近くにある目的関数の局所的最小値を見つけようとします。これらのソルバーは、制約なしの最適化、線形計画法、二次計画法、錐計画法、および一般的な非線形計画法の問題を扱います。このグループのソルバーは、関数集合の最大値を最小化する (
fminimax
) か、関数集合が指定された値より小さくなる位置を見つけようとします (fgoalattain
)。このグループのソルバーは、スカラーまたはベクトル値の非線形方程式 f(x) = 0 の解を開始点
x0
の近くで見つけようとします。方程式を解くことは f(x) の最小ノルムをx0
の近くで探すことと等価であるため最適化の一形式と見なすことができます。このグループのソルバーは、二乗和を最小化しようとします。この種の問題はモデルをデータに当てはめるときによく使われます。これらのソルバーは、非負の解を探す問題、境界値問題、線形制約問題、パラメーター化された非線形モデルを滑らかな制約を受けるデータに当てはめる問題を扱います。
詳細については、Optimization Toolbox の関数が扱う問題を参照してください。最小化用のソルバーの選択については、最適化の意思決定表 を参照してください。
以下の形式の最小化の最適化問題では
一般的に制約が用いられます。f(x) は "目的関数" と呼ばれます。通常、f(x) は double
型のスカラー関数で、x は double
型のベクトルまたはスカラーです。ただし、多目的関数の最適化、方程式解法、および一部の二乗和の最小化は、double
型のベクトルまたは行列の目的関数 F(x) をもつことができます。最小化ではなく最大化の Optimization Toolbox ソルバーを使用するには 目的関数の最大化 を参照してください。
ソルバーに渡すための目的関数は、関数ファイルまたは無名関数ハンドルを使って記述します。多くのソルバーに勾配 ∇f(x) を与えることができます。いくつかのソルバーにヘッシアンを与えることができます。詳細については、目的関数の作成を参照してください。制約は 制約の作成 で説明されるように特定の形式になります。