📄 saf1.m
字号:
function solvef1
x=0;y=0;z=0;L=40;t0=0.1;dt=0.5;s=1;s0=0;
f=f1(x,y,z);
while s0~=s
for n=1:L
a=0;
%随机产生u,v,w三个变量
v=sqrt(40)*rand;
w=(v-6*v*v+140)/24;
u=80-10*w-2*v*v;
b=0;
%保证u,v,w都是非负的
while b==0
if w<0|u<0
v=sqrt(40)*rand;
w=(v-6*v*v+140)/24;
u=80-10*w-2*v*v;
else
b=1;
end
end
df=2*u+9*v+14*w+2*u*w-w*w-f;%计算目标函数差
%接受新解
if df>0
x=u;y=v;z=w;f=f+df;a=1;
elseif (df/t0>-88)&&(exp(df/t0)>rand)
x=u;y=v;z=w;f=f+df;a=1;
end
end
t0=t0*dt;%降温
if a==0
s0=s0+1;
else
s0=0;
end
end
maxf=f1(x,y,z)
x
y
z
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -