1

matlab の fminsearch に問題があります。TolX と TolFun を次のように定義しました

options = optimset('TolFun',1e-8, 'TolX', 1e-8)

次に、次を使用して関数のパラメーターを推定しようとしました

[estimates val] = fminsearch(model, start_point,options)

ただし、val は約 3.3032e-04 です。TolFun を 1e-8 に指定しましたが、それよりも前に約 3.3032e-04 の値で終了します。実際には、パラメーターの目的の値は 1.268e-04 付近で得られます。ということでTolFunをセットしてみました。なぜ機能しないのですか。関数の最小値に収束するはずですよね?

4

1 に答える 1

1

検索の終了には他の理由があります。たとえば、関数評価の最大数、反復の最大数など fminsearchです。終了の理由に関する情報を提供する追加の出力引数が提供されます。特にOUTPUT、反復回数、終了メッセージなどを提供する完全な引数が必要です。

[X,FVAL,EXITFLAG,OUTPUT] = fminsearch(...) returns a structure
OUTPUT with the number of iterations taken in OUTPUT.iterations, the
number of function evaluations in OUTPUT.funcCount, the algorithm name 
in OUTPUT.algorithm, and the exit message in OUTPUT.message.

もう 1 つの可能性は、ローカル ミニマムに陥ったことです。別の開始点または別のオプティマイザーを選択することを除いて、その問題に対して行うべきことはあまりありません。

于 2012-06-08T18:39:26.057 に答える