Main Content

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

最適化

ライブ エディターでの最適化

説明

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

このタスクを使用すると、次を行うことができます。

  • 目的関数の指定。指定方法として、関数を記述するか、関数を参照します。

  • ソルバー オプションの指定。

  • 最適化の実行。

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

Optimize task in Live Editor

タスクを開く

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

Insert Optimize Live Editor task

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

Choosing Optimize from command completion suggestions

パラメーター

MATLAB が問題の解を求めるために使用する最適化ソルバー。次のいずれかのソルバーとして指定します。

  • fminbnd — 有界領域における 1 つの変数の実関数を最小化します。

  • fminsearch — 非有界領域における複数の変数の実関数を最小化します。

  • lsqnonnegx ≥ 0 に従って norm(C*x-d) を最小化します。

  • fzero — 実数の非線形関数 f(x) = 0 である実点 x を見つけます。

例: fminsearch

最小化する関数 (fminbnd または fminsearch) または根を求める関数 (fzero)。関数ハンドル、ローカル関数名、または関数ファイルとして指定します。

  • 関数ハンドル — 関数ハンドルをワークスペースで作成します。次に、[最適化] タスクで、[目的関数]、[関数ハンドル] を選択し、目的関数を選択します。

  • ローカル関数

    • 新規作成 — [最適化] タスクで、[目的関数]、[ローカル関数] を選択してから、[新規作成] ボタンをクリックします。新しい関数定義がタスクの下に表示されます。オブジェクティブを計算するように関数を編集します。次に、ローカル関数を選択します。

    • 既存 — [目的関数]、[ローカル関数] を選択し、ローカル関数を選択します。

  • 関数ファイル

    • 新規作成 — [最適化] タスクで、[目的関数]、[ファイルから] を選択し、[新規作成] ボタンをクリックします。新しい関数ファイルが表示されます。オブジェクティブを計算するようにファイルを編集し、そのファイルを MATLAB パス上に保存します。[参照] ボタンをクリックして、ファイルを選択します。

    • 既存 — [ファイルから][参照...] を選択し、ファイルを選択します。

ヒント

  • 余分な入力をもつ関数の場合、[最適化] では最適化変数を選択し、固定されたデータ入力が含まれるワークスペース変数を指定する必要があります。この例には、3 つの関数入力が含まれています。

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

    [最適化] では、すべての関数入力を指定した後にのみコードを生成します。

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

  • ファイルから目的関数を選択すると、[最適化] によってファイル位置が MATLAB パスに追加されます。

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

参考

関数

R2020b で導入