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

📄 findgoodpoint_2n.m

📁 用于Hooke—Jeeve模式搜索算法
💻 M
字号:
function  res=findgoodpoint_2n(x0,h,n)

  x1=x0;
  E=eye(n);       %搜索方向
  x=zeros(n,2*n); %存储搜索点
  y=zeros(1,2*n); %存储对应搜索点的值


for i=1:n       %2n个搜索方向,函数值
    x(:,2*i-1)=x1+h*E(:,i);
    x(:,2*i)=x1-h*E(:,i);
    y(2*i-1)=fm(x(:,2*i-1));
    y(2*i)=fm(x(:,2*i));
end

   ybest=y(1);        %最好点
   ybetter=y(1);      % 次好点
   xbest=x(:,1);
   xbetter=x(:,1);
for i=2:2*n        %查找最好点、次好点,并记录相应的函数值
    if y(i)<ybetter
        if  y(i)<ybest
            ybetter=ybest;
            xbetter=xbest;
            ybest=y(i);
            xbest=x(:,i);
        else
            ybetter=y(i);
            xbetter=x(:,i);
        end
    end
end

  xtemp=xbest+xbetter;     %根据最好点和次好点新产生的点
  ytemp=fm(xtemp);

  if ytemp<ybest
      xbest=xtemp;
  end

 if fm(xbest)<fm(x0)
    res=xbest;
 else
     res=x0;
 end

⌨️ 快捷键说明

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