matlab fmincg库函数,MATLAB的'fminsearch'与Octave'fmincg'不同

我试图在MATLAB和Octave中的两个函数之间得到一个简单优化问题的一致答案。这是我的代码:

options = optimset('MaxIter', 500 , 'Display', 'iter', 'MaxFunEvals', 1000);

objFunc = @(t) lrCostFunction(t,X,y);

[result1] = fminsearch(objFunc, theta, options);

[result2]= fmincg (objFunc, theta, options);(请记住,X,Y和θ是早先定义的并且是正确的)。问题如下:当我在MATLAB中使用fmincg运行上面的代码时(推荐fminsearch),我得到了正确的答案。

但是,如果我注释掉fmincg并让我们运行fminsearch,则不会有任何转换。事实上,输出如下所示:

491 893 0.692991 reflect

492 894 0.692991 reflect

493 895 0.692991 reflect

494 896 0.692991 reflect

495 897 0.692991 reflect

496 898 0.692991 reflect

497 899 0.692991 reflect

498 900 0.692991 reflect

499 901 0.692991 reflect

500 902 0.692991 reflect

Exiting: Maximum number of iterations has been exceeded

- increase MaxIter option.

Current function value: 0.692991增加迭代次数不会做杰克。相反,当使用fmincg时,我看到它正在收敛,并最终给出了正确的结果:

Iteration 1 | Cost: 2.802128e-001

Iteration 2 | Cost: 9.454389e-002

Iteration 3 | Cost: 5.704641e-002

Iteration 4 | Cost: 4.688190e-002

Iteration 5 | Cost: 3.759021e-002

Iteration 6 | Cost: 3.522008e-002

Iteration 7 | Cost: 3.234531e-002

Iteration 8 | Cost: 3.145034e-002

Iteration 9 | Cost: 3.008919e-002

Iteration 10 | Cost: 2.994639e-002

Iteration 11 | Cost: 2.678528e-002

Iteration 12 | Cost: 2.660323e-002

Iteration 13 | Cost: 2.493301e-002

.

.

.

Iteration 493 | Cost: 1.311466e-002

Iteration 494 | Cost: 1.311466e-002

Iteration 495 | Cost: 1.311466e-002

Iteration 496 | Cost: 1.311466e-002

Iteration 497 | Cost: 1.311466e-002

Iteration 498 | Cost: 1.311466e-002

Iteration 499 | Cost: 1.311466e-002

Iteration 500 | Cost: 1.311466e-002这给了正确的asnwer。

那么是什么给了?为什么fminsearch在这个最小化案例中不起作用?

附加上下文:

1)Octave是fmincg btw的语言,但是一个快速的谷歌结果也检索这个函数。我的MATLAB也可以调用。

2)我的问题有一个凸面误差表面,其误差表面无处不在。

3)我只能访问fminsearch,fminbnd(我不能使用,因为这个问题是多元的而不是单变量的),所以叶子fminsearch。

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值