hock10.m

来自「用于Hooke—Jeeve模式搜索算法」· M 代码 · 共 65 行

M
65
字号
%2n试验搜索
%即使记录变化的量

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


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

tic
%for k=1:M
i=0;
while(1)    
    if (h<e)
           break;
    end
    
    i=i+1;
    x1=findgoodpoint_2n(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
    
%end
i
h
x0
fm(x0)
toc


                
            
            
    
    
    
    
    
    
    


    

⌨️ 快捷键说明

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