saf2.m
来自「里面一共有几个关于连续优化的matlab程序」· M 代码 · 共 34 行
M
34 行
function saf2;
x=rand(1)*200-100;y=rand(1)*200-100;L=1000;t=0.5;a=0.9;s=1;s0=0;q=1;
f=f2(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<-100)|(u>100)|(v<-100)| (v>100)
u=x+rand(1)*2*q-q;
v=y+rand(1)*2*q-q;
else
b=1;
end
end
df=f2(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
minf=f2(x,y)
x
y
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?