問題ベースの最適化および方程式の概要
問題ベースの設定の概要
問題ベースのアプローチを使用して問題を解くには、次の手順を実行します。
optimproblem
を使用して最適化問題を作成するか、eqnproblem
を使用して方程式を解く問題を作成します。optimvar
を使用して、最適化変数を作成します。目的関数、制約、または方程式を表す最適化変数を使用して、式を作成します。次のようなドット表記を使用して、問題に式を配置します。
prob.Objective = expression1; probl.Constraints.ineq = ineq1;
非線形問題の場合、最適化変数の名前をフィールドとしてもつ構造体として、初期点
x0
を作成します。solve
を呼び出して問題を解きます。
設定を改善する、パフォーマンスを向上させる、または問題ベースの設定の詳細を学習するには、問題ベースの構成とパフォーマンスの改善を参照してください。
Optimization Toolbox™ における並列計算については、最後のセクションを参照してください。Global Optimization Toolbox における並列計算については、Global Optimization Toolbox で並列処理を使用する方法 (Global Optimization Toolbox)を参照してください。
関数
オブジェクト
EquationProblem | 非線形方程式系 |
OptimizationConstraint | 最適化制約 |
OptimizationEquality | 等式と等式制約 |
OptimizationExpression | 最適化変数に関する算術式または関数式 |
OptimizationInequality | 不等式制約 |
OptimizationProblem | 最適化問題 |
OptimizationValues | 最適化問題の値 (R2022a 以降) |
OptimizationVariable | 最適化用の変数 |
ライブ エディター タスク
最適化 | ライブ エディターでの方程式の最適化または解決 (R2020b 以降) |
トピック
問題ベースの手順
- 問題ベースの最適化ワークフロー
最適化問題を解くための問題ベースの手順を学習します。 - 方程式を解くための問題ベースのワークフロー
方程式を解くための問題ベースの手順を学習します。 - 最適化式
目的関数と制約の両方に式を定義します。 - 問題ベースのアプローチでの追加パラメーターの受け渡し
問題ベースのアプローチで追加パラメーター、データ、または固定変数を渡します。 - 問題ベースの最小二乗法の目的関数の記述
問題ベースの最小二乗法の構文ルール。 - 問題ベースの錐計画法の制約の記述
solve
で問題解決にconeprog
を使用する際の要件。 - 最適化問題の確認または変更
変数や制約などの問題要素を確認または変更します。 - 最適化の解の検証
解とその質を評価します。
制限
- 変数名の重複は許可されない
同じ名前の 2 つの最適化変数をもつ問題を解く方法を学習します。 - 式に Inf または NaN が含まれる
Inf
またはNaN
を含む最適化式は表示できないため、予期しない結果を招くことがあります。
解法プロセスの調整と監視
- 最適化オプションの設定、問題ベース
問題ベースのアプローチで最適化オプションの設定と変更を行う方法。 - 問題ベースの最適化の出力関数
問題ベースのアプローチで出力関数を使用して、反復の履歴を記録し、カスタム プロットを作成します。
アルゴリズム
- 問題ベースの最適化アルゴリズム
最適化関数とオブジェクトで最適化問題を解く方法を学習します。 - fcn2optimexpr アルゴリズムの説明
fcn2optimexpr
の機能。 - 自動微分の背景
自動微分の機能を学びます。 - 最適化変数および式でサポートされる演算
最適化変数と式でサポートされている数学的演算とインデックス演算を確認します。
Optimization Toolbox における並列計算
- Optimization Toolbox での並列計算とは
最適化に複数のプロセッサを使用します。 - Optimization Toolbox での並列計算の使用
勾配推定を並列で行います。 - Parallel Computing Toolbox を使用した、時間のかかる最適化問題の最小化
2 つのソルバーfmincon
とga
での並列計算の有効性を示す例。 - 並列計算によるパフォーマンスの向上
最適化の高速化のための要因について調べます。