part618.m

来自「单变量寻优基本算法的原码」· M 代码 · 共 39 行

M
39
字号
a=0;
b=1;
e=0.0005;
M=100;
%l=(a+b)/2;
xbest=0;
ybest=0;
tic

for i=1:M
    l=b-a;
    if l<e     %一定要使用区间大小作为判断条件,
               %不管函数如何,区间总是随着迭代次数的增加不断变小,
               %而且区间大小是确定的,迭代次数固定
        break;
    end
    x1=a+0.382*l;
    
    x2=b-0.382*l;
    y1=f(x1);
    y2=f(x2);

    %for i=1:10
    if(y1>y2)
       a=x1;
       ybest=y2;
       xbest=x2;
    else
       b=x2;
       ybest=y1;
       xbest=x1;
    end
end

i
l
xbest
ybest
toc

⌨️ 快捷键说明

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