📄 ceshi2.asv
字号:
close all
clear all
clc
% set parameter
M=80;
M2=M/10;
M3=M-M2;
T=6;
Pc=0.6;
Pm=0.004;
N=7;
Len=10;
Lenth=N*Len;
Phi=zeros(M,Lenth);
BestValue=zeros(1,T);
% Generater the first generation of the population
Chro=round(rand(M,Lenth));
Phi=DecodeChro(Chro,M,Lenth,N,Len);
Phi=pi*Phi/2046;
figure(1)
mesh(Phi);
MaxFitness=zeros(1,T);
AveFitness=zeros(1,T);
% Calculate Object fitness
Phi=DecodeChro(Chro,M,Lenth,N,Len);
Phi=pi*Phi/2046;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%555
dr=0.8;
k=2*pi*dr;
Value=ones(M,201);
MaxValue=zeros(M,1);
Index=zeros(M,1);
% find the max value and it's index
s=0;
for j=1:M
s=0;
for f=-1:0.01:1
s=s+1;
for n=1:N
Value(j,s)=Value(j,s)+exp(i*(k*f*n+Phi(j,n)));
end
Value(j,s)=abs(Value(j,s));
if Value(j,s)>MaxValue(j,1)
MaxValue(j,1)=Value(j,s);
Index(j,1)=f;
end
end
end
Lmin=MaxValue;
LIndex=zeros(M,1);
Value1=ones(M,201);
% find the first minimal value on the left
for j=1:M
s=0;
for f=Index(j,1):-0.01:-1
s=s+1;
for n=1:N
Value1(j,s)=Value1(j,s)+exp(i*(k*f*n+Phi(j,n)));
end
Value1(j,s)=abs(Value1(j,s));
if Value1(j,s)<=Lmin(j,1)
Lmin(j,1)=Value1(j,s);
else
break;
end
LIndex(j,1)=f;
end
end
% find the first minimal value on the right
Rmin=MaxValue;
RIndex=zeros(M,1);
Value2=ones(M,201);
for j=1:M
s=0;
for f=Index(j,1):0.01:1
s=s+1;
for n=1:N
Value2(j,s)=Value2(j,s)+exp(i*(k*f*n+Phi(j,n)));
end
Value2(j,s)=abs(Value2(j,s));
if Value2(j,s)<=Rmin(j,1)
Rmin(j,1)=Value2(j,s);
else
break;
end
RIndex(j,1)=f;
end
end
Value3=ones(M,201);
Lmax=zeros(M,1);
for j=1:M
for f=-1:0.01:LIndex(j,1)
for n=1:N
Value(j,1)=Value1(j,1)+exp(i*(k*f*n+Phi(j,n)));
end
Value(j,1)=abs(Value(j,1));
if Lmax(j,1)<Value(j,1)
Lmax(j,1)=Value(j,1);
end
Value(j,1)=1;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -