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

📄 hock21.m

📁 用于Hooke—Jeeve模式搜索算法
💻 M
字号:
%随机试验搜索
%即使记录变化的量

%全局最优搜索

x0=[-10;-1;-10;-1];    %初始点
n=4;                 %参数个数n
%x0=[-1.2;1.0];
%n=2;
E=eye(n);            %搜索方向

h=1;                %初始步长
a=1.618;            %步长压缩因子
e=0.001;            %截至精度,以搜索步长来判断
M=2000;             %最大迭代次数

tic
%for k=1:M
i=0;
for k=1:n      %最外面循环,用于判断极值点是否未全局极值
    
  while(1)    
    if (h<e)
           break;
    end
    
    i=i+1;
    
    x1=findgoodpoint_rand(x0,h,n);
    if x1==x0             %not find
        h=h/a;
    else                 %find
        while(1)
            xp=x1+(x1-x0);     %模式移动
            %fm(xp)
            if fm(xp)<fm(x1)   % move succeed
               x0=x1;         %change point
               x1=xp;
               
           else
               x0=x1;
               break;
           end
        end
    end
  end
  
  ybest=fm(x0)
  b=50;
  E=10*(rand(n,b*n)-0.5);       %在半径为5的园内搜索50n搜索方向
  for j=1:b*n
      if  fm(x0+E(:,j))<ybest
          ybest=fm(x0+E(:,j));
          xbest=E(:,j);
      end
  end
  
  if abs(ybest-fm(x0))<e
      break;           %退出
  else
      x0=xbest;        %继续搜索
      h=1;
  end
  
end

h
x0
fm(x0)
toc


                
            
            
    
    
    
    
    
    
    


    

⌨️ 快捷键说明

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