非精确线搜索
Wolfe
准则
Wolfe
准则是指: 给定
式中:
式(2)有时也用另一个更强的条件
来代替. 这样, 当
Wolfe
准则。
强Wolfe
准则表明, 由该准则得到的新的迭代点
由于
设
f(x) 有下界且gTkdk<0 , 令ρ∈(0,0.5) ,σ∈(ρ,1) . 则存在一个区间[a,b](0<a<b) , 使每个α∈[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 = 2 newxk = -0.75 0.5 newfk = 3.453125
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)