主要内容

。

fminsearch.

相关数值使使をず制约制约変数关节数关最小値を求める

説明

非非ででさされたの値値値求め以のでで指定されたの最で値値求め求め

最小值 x f x

f (x)はスカラーを返す関数,xはベクトルまたは行列です。行为数を参照してください。

x= fminsearch(有趣的X0.は,点X0.を開始点として,有趣的に記述されている関数の局所的最小値xを求めようとします。

x= fminsearch(有趣的X0.选项は,选项構造体に指定する最適化オプションを使って最小化します。优化集を使用してこれらのオプションを設定してください。

x= fminsearch(问题は,问题で説明されている構造体问题の最小値を求めます。

xfval) = fminsearch (___は,前记のすべてのの力构に対して,解xで目的関数有趣的の値をfvalに返します。

xfvalexitflag) = fminsearch (___は,終了条件を記述する値exitflagも返します。

xfvalexitflag输出) = fminsearch (___は最适化プロセスのの含む含む体输出も返します。

すべて折りたたむ

多重のアルゴリズムに対し,难しいことで知られる最适の问题问题问题问题问题を小化し。

f x 1 0 0 x 2 - x 1 2 2 + 1 - x 1 2

関数は,最小値0での点x = [1]で最小化されます。

開始点をx0 = [-1.2,1]に设定し,fminsearch.を使用して。の関数を最小化します。

@(x)100*(x(2) - x(1)^2)^2 + (1 - x(1))^2;x0 = (-1.2, 1);x0, x = fminsearch(有趣)
X =1×21.0000 - 1.0000

fminsearch.ます

各反复で目的关节をプロットするオプションをしします。

选择= optimset (“PlotFcns”,@ OptimplotFval);

目的関数を。関数に設定します。

f x 1 0 0 x 2 - x 1 2 2 + 1 - x 1 2

関数は,最小値0での点x = [1]で最小化されます。

開始点をx0 = [-1.2,1]に设定し,fminsearch.を使用して。の関数を最小化します。

@(x)100*(x(2) - x(1)^2)^2 + (1 - x(1))^2;x0 = (-1.2, 1);x = fminsearch(有趣,x0,选项)

X =1×21.0000 - 1.0000

ファイルを実行することにより与えられる値をもつ目的関数を最小化します。関数ファイルは実数ベクトルxををて,目的关键词スカラースカラースカラーを返さなければませませませませ

次のコードをコピーし,matlab®パス上にあるobjectivefcn1.mという名前のファイルとして含めます。

函数F = objecvefcn1 (x) F = 0;k = -10:10 f = f + exp( - (x(1)-x(2))^ 2  -  2 * x(1)^ 2)* cos(x(2))* sin(2 * x(2));结束

x0 = [0.25,-0.25]objectivefcnの最小値の検索を開始します。

x0 = [0.25, -0.25];x = fminsearch(@ ObjectFCN1,X0)
x = -0.1696 -0.5086

目的関数が追加パラメーターをもつ場合があります。これらのパラメーターは最適化するための変数ではなく,最適化中は固定値になります。たとえば,。タイプ関数にパラメーター一个があるとします。

f x 一个 1 0 0 x 2 - x 1 2 2 + 一个 - x 1 2

この関数は, x 1 一个 x 2 一个 2 で最小値0をもちます。たとえば, 一个 3. の場合,無名関数を作成することによりパラメーターを目的関数に含めることができます。

追加パラメーターを追加引数として使用し,目的関数を作成します。

F = @(x,a)100*(x(2) -x(1)²)^2 + (a-x(1))^2;

MATLAB®ワークワークスペースににパラメーター配置し

a = 3;

パラメーターのワークスペース値が含まれるxの無名関数のみを作成します。

fun = @(x)f(x,a);

x0 = (1.9)から始めて問題を解きます。

x0 = (1.9);x0, x = fminsearch(有趣)
X =1×23.0000 - 9.0000

追加パラメーターを目的関数で使用する方法の詳細については,関数のパラメーター化を参照してください。

fminsearch.使用しして目とののの両ををます。

3変数問題の無名目的関数を記述します。

x0 = [1,2,3];fun = @(x)-norm(x + x0)^ 2 * exp(-norm(x-x0)^ 2 + sum(x));

X0.から始めて有趣的の最小値を求めます。最小値も求めます。

[x, fval] = fminsearch(有趣,x0)
X =1×31.5359 2.5645 3.5932
fval = -5.9565 e + 04

実行中および完了後の両方で最適化の結果を検証します。

ソルバーが実行されると最適化に情報を与える反復表示を提供するように,オプションを設定します。また,ソルバーが実行されると目的関数値を表示するようにプロット関数を設定します。

选择= optimset ('展示'“通路”“PlotFcns”,@ OptimplotFval);

目的关节数と开始点を设定ます。

函数F = objecvefcn1 (x) F = 0;k = -10:10 f = f + exp( - (x(1)-x(2))^ 2  -  2 * x(1)^ 2)* cos(x(2))* sin(2 * x(2));结束

objectivefcn1のコードをMATLAB®パス上のファイルとして含めます。

x0 = [0.25, -0.25];有趣= @objectivefcn1;

すべてのソルバー出力を取得します。これらの出力を使用して,ソルバー完了後に結果を検証します。

[x, fval exitflag、输出]= fminsearch(有趣,x0,选项)
迭代Func-count min f(x)步骤0 1 -6.70447 1 3 -6.89837初始单纯x 2 5 -7.34101展开3 7 -7.91894展开4 9 -9.07939展开5 11 -10.5047展开6 13 -12.4957展开7 15 -12.6957反映8 17 -12.8052在10 21 -13.0189内部的合同外面的契约11 21 -13.0189 12 25 -13.0374反映13 27 -13.122反射14 28 -13.122反映15 29 -13.122反映1611 -13.122在17外33 -13.1279内部的合约内部19 00-13.1279合同20 39 -13.13.1301内部21 41 -13.1305合同内部反映22 43 -13.1306合同23 45 -13.1309合同24 47 -13.1309合同25 49 -13.131在32 59 -13.131合同之外的29 57 -13.131合同内部29 55 -13.131合同内部的21 53 -13.131合同内部的合同反映2153 -13.131合同。31 65 -13.131合同内部33号签约34号合同67 -13.131合同内部35 69 -13.131合同INSIDE优化终止:当前x满足使用选项的终止标准.Tolx为1.000000E-04和F(x)使用选项的收敛标准满足1.000000E-04 x = -0.1696 -0.5086 FVAL = -13.1310 ExitFlag =1输出=带字段的结构:迭代:35 Funccount:69算法:'Nelder-Mead Simplex Direct Search'消息:'优化终止:...'

exitflagの値は1です。つまりfminsearch.

输出構造体は反復回数を示します。反复表示およびプロットはこの情報も示します。输出构造体は,反复反复表示示す关键数码も表示しが,选択したプロット关键。

入力数

すべて折りたたむ

最小化する関数。関数ハンドルまたは关节名称として指定されます。有趣的は,ベクトルまたは配列xを受け,実数スカラーfxででされる目目的关关)を返す关键词。

有趣的をファイルの関数ハンドルとして指定します。

x = fminsearch (x0 @myfun)

ここでmyfunは次のようなmatlab®関数です。

函数f = myfun(x)%计算函数在x处的值

有趣的は,無名関数の関数ハンドルとして指定することもできます。

x = fminsearch (@ (x)规范(x) ^ 2, x0);

例:有趣= @ (x) - x * exp (3 * x)

データ型:char|function_handle|细绳

ソルバー数ベクトルまたはまたは配列指定されます。ソルバーX0.の要素数およびX0.のサイズを使使用して,有趣的がが函数のおよびをを决定ます。

例:x0 =(1、2、3、4)

データ型:双倍的

最適化オプション。优化集などによって返される構造体として指定されます。オプション構造体のこれらのフィールドの値を設定または変更するために,优化集を使用できます。詳細は,最適化オプションリファレンスを参照してください。

展示

表示レベル(反复表示を参照):

  • “通知”(既定の设定) - 关键词が收束ないにのみを表示する。

  • '最终的'- 最终最终力量のみをする。

  • '离开'または“没有”——出力を表示しない。

  • “通路”- 各反复のの力を表示する。

FunValCheck

目的関数値が有効かどうかをチェックします。“上”は目的关节复杂的またはである値を返すと,エラーを表示します。既定の'离开'ではエラーを表示しんん。

Maxfunevals.

可以な关键词最大数次数(正の整数)。既定の设定は200 * Numberofvariables.です。詳細は,許容誤差と停止条件反復と関数計算回数を参照してください。

麦克斯特

可能な反复最大数数(正の整数)。既定値は200 * Numberofvariables.です。詳細は,許容誤差と停止条件反復と関数計算回数を参照してください。

outputfcn.

各反復で最適化関数が呼び出すユーザー定義の関数を1つ以上指定します(関数ハンドルか関数ハンドルの细胞配列として)。既定の設定はなし([])です详细は,触力关节关系关键词を参照してください。

PlotFcns

アルゴリズム実行時における,進行状態の各種測定値のプロット。定義済みのプロットから選択するか,自身で記述します。関数ハンドルか、関数ハンドルの cell 配列を渡します。既定の設定はなし ([])です。

  • @optimplotxは現在の点をプロットします。

  • @optimplotfunccount.は関数計算をプロットします。

  • @OptimplotFval.は関数値をプロットします。

カスタムカスタム关节,触力有关部と同じ文を使し。详细详细,优化工具箱™の出力関数触力关节关系关键词を参照してください。

塔尔芬

関数値に関する終了許容誤差(正のスカラー)。既定の設定は1E-4です。詳細は,許容誤差と停止条件を参照してください。他のソルバーとは異なり,fminsearch.塔尔芬TolX“両方”を満たすと停止します。

TolX

xに関する許容誤差(正のスカラー)。既定値は1E-4です。詳細は,許容誤差と停止条件を参照してください。他のソルバーとは異なり,fminsearch.塔尔芬TolX“両方”を満たすと停止します。

例:选择= optimset(“显示”,“iter”)

データ型:结构体

次のフィールドをもつ構造体として指定される問題構造体です。

フィールド名 エントリ

客观的

目的関数

X0.

xの初期点

求解器

“fminsearch”

选项

优化集などによって返されるオプション構造体

データ型:结构体

出力引数

すべて折りたたむ

実数ベクトルまたは実数配列として返される解です。xのサイズは,X0.のサイズと同じです。通常、exitflagが正の場合,xは問題に対する局所的な解になります。解の質に関する詳細は,ソルバーが成功する場合を参照してください。

解での目的関数値。実数として返されます。一般的に、fval有趣的(x)になります。

fminsearch.の停止理由。整数として返されます。

1

関数が解xに収束したことを示します。

0

反復回数が选项。麦克斯特を超過,または関数評価の回数がoptions.maxfunevals.を超過しています。

-1

アルゴリズムが出力関数により停止したことを示します。

最適化プロセスに関する情報。次のフィールドをもつ構造体として返されます。

迭代

反复数

funcCount

関数評価の回数

算法

Nelder-Mead单形直接搜索

消息

終了メッセージ

ヒント

  • fminsearch.は実数上でのみ最小化します。すなわちxは実数のみで構成され,f (x)は実数のみを返さなければなりません。xに複素数値があるときには,xを実数部と虚数部に分ける必要があります。

  • fminsearch.を使用して微分不可能な問題を解いたり,不連続点を扱ったりすることもできます。特に解析の傍で不連続点が生じない場合です。

  • fminsearch.は一般的に,特に2次を超える次元の問題に対して効率がFminunc.より劣ります。しかし問題が不連続の場合,fminsearch.Fminunc.よりロバストになります。

  • fminsearch.は,二乘和すなわちすなわち次のの问题の推奨推奨ソルバーませませませ

    最小值 x f x 2 2 最小值 x f 1 x 2 + f 2 x 2 + ... + f n x 2

    代わりに,lsqnonlinを使用してください。この関数はこの形式の問題の最適化を行う関数です。

アルゴリズム

fminsearch.は,拉吉拉斯らのシンプレックス探索法[1]を使用します。これはFminunc.のように数値勾配または解析勾配を使用しない直接探索法です。このアルゴリズムは,fminsearchアルゴリズムで詳しく説明します。アルゴリズムが局所的最小値に収束するという保証はありません。

代替机械

アプリ

最最化ライブエディタータスクがfminsearch.にビジュアルインターフェイスを提供ますます。

参照

[1] Lagarias,J.C.,J.A. Reeds,M. H. Wright和P. E. Wright。“低尺寸下狭窄的Nelder-Mead Simplex方法的收敛性能”。暹罗优化杂志。卷。9,第1,199号,第112页,第112-147页。

拡张机械

R2006Aより前に导入