x1 = 0.951843308651988
x2 = 0.907509119521261
f(x1,x2) = 0.00254509869042291
具体过程可以看此答案。
https://zhidao.baidu.com/question/1864194524244410587
armijo 是wolfe的一个条件,它能确保有足够的decrease,但是不能保证alpha足够的精确(最小点)。因为matlab无法估计你函数的复杂程度,它一般还需要一个条件,即构成strong wolfe 来找到更精确的alpha。简单的说,armijo简单但不够精确,strong wolfe 复杂一些但更精确!if(mu^i*gamma0*norm(F(xs)-F(Pc))^2<=...(2-deta)*(xs-Pc)'*(F(xs)-F(Pc)))
if(beta0*norm(F(xs)-F(Pc))^2<=0.5*(xs-Pc)'*(F(xs)-F(Pc)))
这两个语句中,函数F的输入参数缺失,添加上就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)