?? sa.m
字號:
%1.參數(shù)初始化
x0=[1 1]; %初始解
T0=10000; %初始溫度
a=0.9;
n=1; %n表示外循環(huán)次數(shù)
m=100; %m表示外循環(huán)次數(shù)
x1=x0; %x1代表當前最優(yōu)解
T=T0; %T代表當前溫度
%2.循環(huán)迭代
while T>0.01
for i=1:m
f1=f(x1);
x2(1)=x1(1)+0.1*(rand-0.5);
x2(2)=x1(2)+0.1*(rand-0.5);
f2=f(x2);
if (f2-f1)<0
x1=x2;
elseif exp((f1-f2)/T)>rand
x1=x2;
end
end
c_obj(n)=f(x1); %記錄當前最優(yōu)目標函數(shù)值
n=n+1;
T=a*T; %溫度更新函數(shù)
end
%3.輸出結(jié)果
f1=f(x1); %計算最終目標函數(shù)值
disp('The result is:')
disp(x1)
disp('The final result of objective function is:')
disp(f1)
%4.繪圖
t=1:n-1;
plot(t,c_obj,':');
xlabel('迭代次數(shù)');
ylabel('函數(shù)值');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -