• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-01-06
  • 语言: Matlab
  • 标签: Powell  MATLAB  

资源简介

这是我根据《现代设计理论方法(第二版)》38页中的鲍威尔法理论,基于MATLAB写出的源代码,其中一维搜索极小点函数借鉴于《https://me.csdn.net/shenziheng1》该博主的算法。

资源截图

代码片段和文件信息

%% 一维搜索函数:采用黄金分割法 %%
function [ExtremePosExtremeVal] = OneDimensionSearch(x1Direrr)
% 从X0点开始进行搜索
% Dir:搜索的方向。
% err:黄金分割的停止搜索的精度。
% 返回最优值ExtremeVal,以及最优值对应的点ExtremePos
%% ------------------------Step1:进退法确定区间------------------------------
%计算x1前进,计算x2
y1 = TextF(x1);
x2 = x1+Dir;    %向下一个变量搜索,采用加速步长,初始步长为1
y2 = TextF(x2);
% 确定沿该坐标方向得到的目标函数值是否是下降还是上升
if y1 < y2         % 得到的目标函数值上升,改变坐标方向
    Dir = -Dir;
    temp = x1;
    x1 = x2;
    x2 = temp;
    x3 = x2+Dir;
    y3 = TextF(x3);
else               % 得到的目标函数值下降,继续沿该维向前搜索
    Dir = 2*Dir;
    x3 = x2+Dir;
    y3 = TextF(x3);
end
%初步确定极小值所在的大致区间
while(1) 
    if (y2<=y3) %判断极小值所在的区间大致范围
        a = min(x1x3);
        b = max(x1x3);
        break;
    else        %以步长为1,沿Dir方向向前搜索,一直到函数值出现上升的时候
        

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1771  2019-03-27 15:32  修正鲍威尔法源代码\OneDimensionSearch.m

     文件       2702  2019-03-28 09:10  修正鲍威尔法源代码\PowellMethod.m

     文件        122  2019-03-27 09:08  修正鲍威尔法源代码\TextF.m

     目录          0  2019-03-28 09:11  修正鲍威尔法源代码

----------- ---------  ---------- -----  ----

                 4595                    4


评论

共有 条评论