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 + -
显示快捷键?