线搜索技术-进退法
进退法 1
进退法是一种确定搜索区间并保证具有近似单峰性质的数值算法, 其基本思想是从一点出发, 按一定步长, 试图确定函数值呈现“高-低-高”的三点, 从而得到一个近似的单峰区间.
算法1 (进退法)
步1 选取
步2 令
步3 加大步长. 令
步4 反向搜索或输出. 若
输出
MATLAB实现
function [a,b,k]=bfm(phi,alpha0,h0) %功能: 确定搜索区间-进退法 %输入: phi 是目标函数, alpha0初始点和h0是初始步长 %输出: [a,b]是搜索区间 % 一种确定搜索区间并保证具有近似单峰性质的数值算法—进退法, 其基本思想是从一点出发, % 按一定步长, 试图确定函数值呈现“高-低-高”的三点, 从而得到一个近似的单峰区间 %step1 f0=feval(phi,alpha0); k=0; while(1) %step2 alpha1 = alpha0+h0; f1=feval(phi,alpha1); if f1<f0 %step3 h1=2*h0; Alpha=alpha0; alpha0=alpha1; f0=f1; k=k+1; %k+1后变量变化,注意 alpha0=alpha1; h0=h1; else %step4 if k==0 h1=-1*h0; Alpha=alpha1; alpha1=alpha0; f1=f0; k=1; %k+1后变量变化注意 alpha0=alpha1; h0=h1; else a=min(Alpha,alpha1); b=max(Alpha,alpha1); break; end end end
测试
>> clear >> phi=@(x)((x-1)^2); >> [a,b,k]=bfm(phi,0,0.1) a = 0.3 b = 1.5 k = 3
- 马昌凤. 最优化方法及其Matlab程序设计[M]. 科学出版社, 2010. ↩
【推荐】国内首个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)