2012-06-08 56 views
1

我遇到了matlab fminsearch的一些問題。我已經定義了TolX和TolFun如下matlab中fminsearch的問題

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。爲什麼它不能正常工作,它應該已經匯聚到功能的最小值了嗎?

回答

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. 

另一種可能性是,你已經得到陷入局部最小。除了選擇不同的起點或不同的優化器之外,沒有太多的工作要解決這個問題。