最优化之牛顿法
来源:互联网 发布:java实例精通pdf下载 编辑:程序博客网 时间:2024/05/17 17:14
求解无约束现行规划问题的Newton法是利用目标函数的二次Taylor展开式构造搜索方向的方法,它是以为搜索中的Newton法的推广。
考虑UNP,其中f(x)二阶连续可微,▽2f(x)正定。
Newton法就是以Newton方向为搜索方向,以1为步长进行迭代的方法。
算法如下:
1. 初始步。给定初始点x,精度参数e > 0。
2. 终止判断。若||▽f(x)|| <= e,停止,x为最优解。否则转3。
3. 构造搜索方向。令d = - inv( [▽2f(x)] )·▽f(x)。(一维搜索即为 -f'(x)/f''(x) )
4. 确定新的迭代点。令x = x + d。转2。(相当于步长为1)
对于一般的无约束凸二次规划问题(UQP),用Newton法解时剧透二次终止行。
对于一般的无约束非线性规划问题(UNP),用Newton法求解时,既不能保证经过有限次迭代得到精确最优解,也不能保证该算法具有收敛性,并且Newton方向不一定是下降方向。但是在一定条件下,若初始点在最优解附近,则Newton法具有二阶收敛性,即收敛速度非常快。
这里给出凸二次规划问题的求解代码。
'''1/2 x^ * H * x + c^ * x + d'''import numpy as npdef algo(H, c, b, x0, e): x = x0 k = 1 while(True): g = np.dot(H, x) + c norm = np.linalg.norm(g) if(norm < e): break d = -H.I.dot(g) x = x + d print 'k = %s;norm = %s' %(str(k), str(norm)) k += 1 return x if __name__ == '__main__': H = np.matrix([[2.0, 0.0], [0.0, 4.0]]) c = np.matrix([[0.0], [0.0]]) b = 0.0 x0 = np.matrix([[1.0], [1.0]]) e = 1e-6 result = algo(H, c, b, x0, e) print result
为了克服Newton法仅具有局部收敛性,仍以Newton方向为搜索方向,但用最优一维搜索或可接受一维搜索确定步长,这就是阻尼Newton法。
但是当▽2f(x)不是正定矩阵时,Newton方向d可能不是f在x处的下降方向。
0 0
- 最优化之牛顿法
- 最优化理论之牛顿法
- 最优化 牛顿法
- 牛顿法-最优化方法
- 优化之牛顿法
- 无约束最优化方法-牛顿法
- 优化方法之 牛顿法和拟牛顿法
- Deep Learning 最优化方法之Nesterov(牛顿动量)
- 【工程优化】最优化算法--牛顿法、阻尼牛顿法及单纯形法
- 最优化中的牛顿法,二阶收敛性
- 漫步最优化三十三——牛顿法
- 漫步最优化三十四——高斯-牛顿法
- 漫步最优化四十三——拟牛顿法
- 漫步最优化四十四——基本拟牛顿法
- 无约束最优化方法——牛顿法、拟牛顿法、BFGS、LBFGS
- 无约束最优化方法——牛顿法、拟牛顿法、BFGS、LBFGS
- 最优化学习笔记(五)牛顿法及拟牛顿法
- 优化算法:牛顿法
- WPF-补充
- AJAX状态值与状态码
- 常用Keytool 命令
- Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x
- Javascript语法笔记一之typeof与instanceof的用法
- 最优化之牛顿法
- 转:gcc vc
- arm-linux-objdump -D -m arm led_elf > led.dis 是什么意思?
- 学习opendaylight相关知识---Java 注解Annotation
- android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)
- UVA - 10820 Send a Table 欧拉函数
- 搭建springMVC+Hibernate+Spring
- CentOS6.5 Mysqlmysql-5.6.16 主从环境安装配置
- 第二章 思维导图