rose.m

来自「里面一共有几个关于连续优化的matlab程序」· M 代码 · 共 34 行

M
34
字号
function rose
x=rand(1)*4.096-2.048;y=rand(1)*4.096-2.048;L=1000;t=0.5;a=0.9;s=1;s0=0;q=0.1;
f=rb(x,y);
while s0~=s
    m=0;
    for n=1:L
        u=x+rand(1)*2*q-q;
        v=y+rand(1)*2*q-q;
        b=0;
        while b==0
            if (u<-2.048)|(u>2.048)|(v<-2.048)| (v>2.048)
                u=x+rand(1)*2*q-q;
                v=y+rand(1)*2*q-q;
            else
                b=1;
            end
        end
        df=rb(u,v)-f;
        if df>0
            x=u;y=v;f=f+df;m=1;
        elseif (df/t>-88)&(exp(df/t)>rand(1))
            x=u;y=v;f=f+df;m=1;
        end
    end
    t=t*a;
    if m==0
        s0=s0+1;
    else
        s0=0;
    end
end
maxf=rb(x,y)                    
x
y 

⌨️ 快捷键说明

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