Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

最適化

ライブ エディターでの方程式の最適化または解決

説明

最適化タスクを使用すれば、さまざまなタイプの制約が課される線形目的関数と非線形目的関数を対話的に最適化し、非線形方程式系を解くことができます。このタスクは、自動的に、ライブ スクリプト用の MATLAB®コードを生成します。

このタスクを使用して、次の操作を行うことができます。

  • 問題の特性に基づいてソルバーを選択します。Global Optimization Toolboxをお持ちの場合は、そのソルバーを使用するように選択することもできます。

  • 関数を記述するか、関数を参照することによって、目的関数と制約関数を指定します。

  • ソルバー オプションを指定します。

  • 最適化を実行します。

最適化の使用方法に関する提案については、最適化ライブ エディター タスクの効果的な使い方を参照してください。現在、最適化fseminfソルバー、GlobalSearchソルバー、またはMultiStartソルバーを使用することはできません。

ライブ エディター タスクに関する一般情報については、ライブ スクリプトへの対話型タスクの追加を参照してください。

タスクを開く

MATLAB エディターでライブ スクリプトに最適化タスクを追加するには、[挿入]タブで、[タスク]、[最適化]を選択します。

Insert an Optimize Live Editor task

または、スクリプト内のコード ブロックに、optimfminconなどの関連キーワードを入力します。コマンドの補完候補から[最適化]を選択します。

Choosing Optimize from command completion suggestions

パラメーター

目的関数タイプ。該当するラベルの付いたボタンをクリックすることによって指定されます。選択した目的関数によって、使用可能なソルバーと問題に推奨されるソルバーが決定されます (Solverを参照)。

制約タイプ。該当するラベルの付いたボタンをクリックすることによって指定されます。複数の制約タイプを指定できます。選択した制約によって、問題で使用可能なソルバーと推奨されるソルバーが決定されます (Solverを参照)。

MATLAB が問題を解くために使用する最適化ソルバー。使用可能なソルバーのリストからソルバーを選択することによって指定されます。使用可能なソルバーと推奨されるソルバーは、所有しているライセンスと選択したObjectiveConstraintsによって異なります。

使用可能なソルバー

制約タイプ 目的の種類
線形 二次 最小二乗法 非線形 滑らかでない
制約なし 解は自明 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 つの関数入力が含まれています。

    Optimization input = vars, Fixed input y = y, Fixed input w = w.

    最適化では、すべての関数入力が指定されるまでコードが生成されません。

  • 最適化では、varargin入力を含む関数またはエラーを含む関数を解析できません。

  • ファイルから目的関数または非線形制約関数を選択すると、最適化がそのファイルの場所を MATLAB パスに追加します。

  • 最適化で解析エラーが発生した場合や複数のローカル関数の名前が重複している場合は、使用可能なローカル関数のリストが空になります。

R2020b で導入