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

📄 hock22.m

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

%全局最优求解
%利用在固定半径的广义球内随机产生n个点 
%做为初始搜索值,进行搜索,保存其结果。
%n次搜索后,从最终的n个结果当中选取最好的结果。

x0=[-3;-1;-3;-1];    %初始点
n=4;                 %参数个数n
%x0=[-1.2;1.0];
%n=2;


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

Y=zeros(1,n);
X=zeros(n,n);
%E=100*(rand(n,n)-0.5);    %在半径为50的广义球内,随机产生n个初始搜索点,x0无效

tic
%for k=1:M
i=0;
for k=1:n      %最外面循环,用于判断极值点是否未全局极值
  
  %x0=E(:,k)
  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
  
  Y(k)=fm(x0);        %保存搜索结果
  X(:,k)=x0;
  
  x0=100*(rand(n,1)-0.5);
  h=1;                   %重新搜索,初始化x0 and h
  
end

[y,i]=find_column(Y,n);
%h
X(:,i)
y
toc


                
            
            
    
    
    
    
    
    
    


    

⌨️ 快捷键说明

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