⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 search2.m

📁 计算二维无约束优化的Powell法和坐标轮换法,以及一维搜索的黄金分割法和搜索区间确定的两个子程序.
💻 M
字号:
function [a,b]=search(x01,x02,d,h0)  
% search 为外推法确定搜索区间函数
% h0 为初始试探步长
% [a,b] 为搜索区间


%%%%%%%%%% 第一次搜索 %%%%%%%%%
a1=0; y1=ff(x01+d(1)*a1,x02+d(2)*a1);
h=h0;
a2=h; y2=ff(x01+d(1)*a2,x02+d(2)*a2);
if y2>y1  %反向搜索
    h=-h;
    a3=a1;y3=y1;
    a1=a2;y1=y2;
    a2=a3;y2=y3;
end
a3=a2+h;y3=ff(x01+d(1)*a3,x02+d(2)*a3);

%%%%%%%%%% 继续搜索 %%%%%%%%%%
while y3<y2
    h=2*h;
    a1=a2;y1=y2;
    a2=a3;y2=y3;
    a3=a2+h; y3=ff(x01+d(1)*a3,x02+d(2)*a3); 
end

%%%%%%%%%% 确定搜索区间 %%%%%%%%%%
if h>0
    a=a1;b=a3;
else
    a=a3;b=a1;
end
  % a,b

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -