このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
ライブ エディターでの方程式の最適化または解決
最適化タスクを使用すれば、さまざまなタイプの制約が課される線形目的関数と非線形目的関数を対話的に最適化し、非線形方程式系を解くことができます。このタスクは、自動的に、ライブ スクリプト用の MATLAB®コードを生成します。
このタスクを使用して、次の操作を行うことができます。
問題の特性に基づいてソルバーを選択します。Global Optimization Toolboxをお持ちの場合は、そのソルバーを使用するように選択することもできます。
関数を記述するか、関数を参照することによって、目的関数と制約関数を指定します。
ソルバー オプションを指定します。
最適化を実行します。
最適化の使用方法に関する提案については、最適化ライブ エディター タスクの効果的な使い方を参照してください。現在、最適化でfseminf
ソルバー、GlobalSearch
ソルバー、またはMultiStart
ソルバーを使用することはできません。
ライブ エディター タスクに関する一般情報については、ライブ スクリプトへの対話型タスクの追加を参照してください。
MATLAB エディターでライブ スクリプトに最適化タスクを追加するには、[挿入]タブで、[タスク]、[最適化]を選択します。
または、スクリプト内のコード ブロックに、optim
やfmincon
などの関連キーワードを入力します。コマンドの補完候補から[最適化]を選択します。
目的
— 目的関数タイプLinear
|Quadratic
|Least squares
|Nonlinear
|Nonsmooth
目的関数タイプ。該当するラベルの付いたボタンをクリックすることによって指定されます。選択した目的関数によって、使用可能なソルバーと問題に推奨されるソルバーが決定されます (Solver
を参照)。
制約
— 制約タイプUnconstrained
|Lower bounds
|Upper bounds
|Linear inequality
|Linear equality
|Second-order cone
|Nonlinear
|Integer
制約タイプ。該当するラベルの付いたボタンをクリックすることによって指定されます。複数の制約タイプを指定できます。選択した制約によって、問題で使用可能なソルバーと推奨されるソルバーが決定されます (Solver
を参照)。
ソルバー
— 最適化ソルバーMATLAB が問題を解くために使用する最適化ソルバー。使用可能なソルバーのリストからソルバーを選択することによって指定されます。使用可能なソルバーと推奨されるソルバーは、所有しているライセンスと選択したObjective
とConstraints
によって異なります。
使用可能なソルバー
制約タイプ | 目的の種類 | ||||
---|---|---|---|---|---|
線形 | 二次 | 最小二乗法 | 非線形 | 滑らかでない | |
制約なし | 解は自明 | quadprog |
lsqcurvefit ,lsqnonlin ,lsqnonneg ,lsqlin |
fgoalattain ,fminsearch ,fminimax ,fminunc ,fsolve ,fzero ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),particleswarm (Global Optimization Toolbox),simulannealbnd (Global Optimization Toolbox) |
fminsearch ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),particleswarm (Global Optimization Toolbox),simulannealbnd (Global Optimization Toolbox) |
範囲のみ | linprog |
quadprog |
lsqcurvefit ,lsqnonlin ,lsqnonneg ,lsqlin |
fgoalattain ,fminbnd ,fmincon ,fminimax ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),particleswarm (Global Optimization Toolbox),simulannealbnd (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
fminbnd ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),particleswarm (Global Optimization Toolbox),simulannealbnd (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
線形 | linprog |
quadprog |
lsqlin ,fmincon |
fgoalattain ,fmincon ,fminimax ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
線形 + 整数 | intlinprog |
ga (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
ga (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
ga (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
ga (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
2 次錐 | coneprog |
fgoalattain ,fmincon ,fminimax ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
fgoalattain ,fmincon ,fminimax ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
fgoalattain ,fmincon ,fminimax ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
非線形 | fgoalattain ,fmincon ,fminimax ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
fgoalattain ,fmincon ,fminimax ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
fgoalattain ,fmincon ,fminimax ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
fgoalattain ,fmincon ,fminimax ,ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
ga (Global Optimization Toolbox),gamultiobj (Global Optimization Toolbox),paretosearch (Global Optimization Toolbox),patternsearch (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
非線形 + 整数 | ga (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
ga (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
ga (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
ga (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
ga (Global Optimization Toolbox),surrogateopt (Global Optimization Toolbox) |
例:fmincon
追加の入力を伴う関数の場合は、最適化が、最適化変数を選択し、固定データ入力を含むワークスペース変数を指定するように要求します。例については、あるベクトルへの最適化変数の配置と他の変数へのデータの配置を参照してください。この例には、3 つの関数入力が含まれています。
最適化では、すべての関数入力が指定されるまでコードが生成されません。
最適化では、varargin
入力を含む関数またはエラーを含む関数を解析できません。
ファイルから目的関数または非線形制約関数を選択すると、最適化がそのファイルの場所を MATLAB パスに追加します。
最適化で解析エラーが発生した場合や複数のローカル関数の名前が重複している場合は、使用可能なローカル関数のリストが空になります。
fmincon
|intlinprog
|surrogateopt
(Global Optimization Toolbox)|patternsearch
(Global Optimization Toolbox)