2024.5.27(周一)
function [section] = JinTuiFa(fx, x0, h0, t)
%%%输入目标函数x,初始点x0,初始步长h0和加停系数t:
%%%采用进退法确定搜索区间ra,bl; 输出搜索区间
f = inline(fx);
h = h0;
a = x0;
k = 0; % k是计数器,同时也做指示器:如果第1次目标函数就没有下降,将
% 作为反白搜索的指示标记:
judge = 1; % 循环判断器
while judge == 1 %%ture继续循环
x1 = x0 + h;
k = k + 1;
if f(x1) < f(x0) % 判断搜索方白,保证是下降方向;
h = t * h; % 加大步长,一般情况下选择加倍系数为2)
% 最值区间的一端;
a = x0; % 更新初始点
x0 = x1;
else
if k == 1
% 判断初始方向是否错误
h = -h; % 方白错误,选择反方白
else
% 将跳出循环
judge = 0; % error,不满足循环条件,
end
end
end
m = min(a, x1);
n = max(a, x1);
section = sprintf('%.4f, %.4f', m, n); % 格式化输出区间
end
分类:
软件工程日报(2024年春)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)