非精确线搜索
来源:互联网 发布:windows 虚拟机下载 编辑:程序博客网 时间:2024/06/05 03:16
Wolfe
准则
Wolfe
准则是指: 给定
式中:
式(2)有时也用另一个更强的条件
来代替. 这样, 当
Wolfe
准则。强Wolfe
准则表明, 由该准则得到的新的迭代点
由于
设
f(x) 有下界且gTkdk<0 , 令ρ∈(0,0.5) ,σ∈(ρ,1) . 则存在一个区间[a,b](0<a<b) 均满足(1) 和(3).
Armijo
准则
Armijo 准则是指: 给定
可以证明, 若
Armijo
准则是有限终止的, 即存在正数为了程序实现的方便, 我们将Armijo 准则写成下列详细的算法步骤.
算法4(Armijo准则)
步0 给定
步1 若不等式
成立, 置
步2 令
下面给出Armijo 准则的Matlab 程序
MATLAB程序
Armijo 搜索规则是许多非线性优化算法都必须执行的步骤, 把它编制成可重复利用的程序模块是很有意义的.
amj.m
function [mk,newxk,newfk]=amj(xk,dk,beta,sigma)%%Armijo 搜索规则%input:xk,dk;% beta,sigma%output:mk,xk+1,f(xk+1)m=0;maxm=20;while(m<=maxm) if(fun(xk+beta^m*dk)<=fun(xk)+sigma*beta^m*gfun(xk)'*dk) mk=m;break; end m=m+1;end;alpha=beta^mk;newxk=xk+alpha*dk;fk=fun(xk);newfk=fun(newxk);%fun为输入函数,gfun为对应梯度函数,均在别处定义
fum.m
function f = fun(x)f=100*(x(1)^2-x(2))^2+(x(1)-1)^2;
gfun.m
function gf =gfun(x)gf=[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1); -200*(x(1)^2-x(2))];
实验结果
>> xk=[-1,1]';>> dk=[1,-2]';>> beta=0.5;>> sigma=0.2;>> [mk,newxk,newfk]=amj(xk,dk,beta,sigma)mk = 2newxk = -0.75 0.5newfk = 3.453125
阅读全文
0 0
- 非精确线搜索
- 非精确线搜索之Armijo搜索
- 漫步最优化三十——非精确线搜索
- 使用非精确线搜索Armijo算法确定步长的最速下降法(MATLAB)
- 精确线搜索-黄金分割法
- 最优化理论学习笔记_2(非精确线性搜索)
- 精确搜索
- 精确线搜索——抛物线法
- magento精确搜索
- TQ2440 准精确定时方法 非精确
- 精确异常与非精确异常
- 精确线搜索之黄金分割法(0.618法)
- Mysql float 非精确存储
- 利用inurl进行精确搜索
- 求线段中点(非精确)
- linux 报 外部非精确异常
- 51单片机非精确延时函数
- 非实时系统精确定时器的实现
- MATLAB计时与strel
- uva 11014 三维空间中不共线的点
- NOIP 2015提高组 跳石头
- Tomcat源码解析(12)
- 常用软件包和环境配置(机器学习)
- 非精确线搜索
- nodeJS中读写文件方法的区别
- phrap 拼接序列
- 加多芬解析丨微信支付宝,两匹战狼之争,究竟谁能最终渔翁得利?
- MySQL服务无法启动的问题
- HDU
- 今天开始写博客
- 【润乾报表5】HTML事件--鼠标移入高亮显示
- Git基本操作