⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example61.m

📁 是一个用MATLAB编的一个系统
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%                            初始化
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%v=[0 0 0];
va=str2num(va);
vb=str2num(vb);
vc=str2num(vc);
T_start=str2num(T_start);
lanmda=str2num(lanmda);
v=[va vb vc];
W=[0 0.55 0.45;0.55 0 0.2;0.45 0.2 0];
B=[0.65 0.3 0.4];

Energy=[];
Wend=100;

% T_start=3;
T_end=0.5;

% lanmda=0.8;

T=T_start;


x=round(rand*3);
if x==0
    x=3;
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%                          模拟退火
%                          
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

while(T>=T_end)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%                         随机抽样过程
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    while (Wend>=0)
        x=round(rand*3);
        if x==0
            x=3;
        end;
    
        if x==1
            uvx=v(2)*W(1,2)+v(3)*W(1,3)-B(1);
        end;
        if x==2
            uvx=v(1)*W(2,1)+v(3)*W(2,3)-B(2);
        end;
        if x==3
            uvx=v(1)*W(1,3)+v(2)*W(2,3)-B(3);
        end;
    
        if (uvx>=0)|((uvx<0)&((1/(1+exp(-uvx/T)))>rand/2))
            v(x)=1;
        end;
        Ene=-W(1,2)*v(1)*v(2)-W(1,3)*v(1)*v(3)-W(2,3)*v(2)*v(3)+B(1)*v(1)+B(2)*v(2)+B(3)*v(3);
        Energy=[Energy Ene];
        [ss zz]=size(Energy);
        if zz>=6
            if (Energy(zz)==Energy(zz-1))&(Energy(zz-1)==Energy(zz-2))&(Energy(zz-2)==Energy(zz-3))&(Energy(zz-3)==Energy(zz-4))&(Energy(zz-4)==Energy(zz-5))
                break;
                break;
            end;
        end;
        Wend=Wend-1;
    end;
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%                          退火过程
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    T=T*lanmda;
end;
figure('name','能量曲线','numbertitle','off');
i=1:zz;
plot(i,Energy)
title('E');
xlabel('steps');
            

⌨️ 快捷键说明

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