求解极值的数值算法

           好几个星期没有更新博客了,最近也是考试多,抽不出多少时间,今天在看书的时候看到了详细的求解极值的算法,都是最基本的,就准备写下来当做学习记录。

(一)最速下降法(梯度下降法)

           描述:先给出 f(X)极小值点的X*的一个估计值Xo(称作初始点),然后依次计算出 Xk+1=g(Xk)并且希望点列{ Xk}的极限就是要找的极值点X*。其中g()为迭代格式Xk+1=Xk+aDk,a为搜索步长,Dk为搜索方向。知道,梯度是函数上升最快的方向,那么梯度的反方向就是函数下降最快的方向,所以Dk就是迭代点梯度反方向,这样,依次迭代就可以找到X*。

          原来这就是梯度下降法啊!看起来一点都不难。但是这一问题的核心是,步长怎么选。

          如果步长选大了,可能收敛不了,选小了,又收敛太慢,这就需要来一个计算,找出最合适的步长。

          然后我写一下具体步骤,包括求步长的方法。

          1、给定初始点Xo∈Rn,令k=0;

          2、计算方向 dk= -▽f(Xk);

          3、计算步长ak 使f(Xk+akdk)<=f(Xk+adk),任意a>0;

          4、令Xk+1=Xk+akdk,如果▽f(Xk+1)=O,算法停止,否则重复。

          这个算法看上去简单,这样就会带来一些问题,比如陷入局部最优,而且在极值点附近下降很慢,总的来说,这个算法收敛是比较慢的。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值