matlab中fminsearch的问题

时间:2012-06-08 17:36:18

标签: matlab mathematical-optimization

我在使用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。为什么它不起作用,它应该已经收敛到函数的最小值不是吗?

1 个答案:

答案 0 :(得分: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.

另一种可能性是你陷入了局部最低限度。除了选择不同的起点或不同的优化器之外,没有太多可以解决的问题。