matlab无约束优化问题,步长由 Armijo 线搜索生成,具体请看图 有大神熟练的话,可以私信,有偿编代码

matlab无约束优化问题,步长由 Armijo 线搜索生成,具体请看图 有大神熟练的话,可以私信,有偿编代码,第1张

这是用最速下降法(梯度法)计算的结果。

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的输入参数缺失,添加上就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11264835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存