clear
clc
global popsize %%粒子群个数
popsize=100;
global dimsize %%变量个数
dimsize=10;
global a0min %%a0下限
a0min=-1e-10;
global a0max %%a0上限
a0max=1e-10;
global a1min %%a1下限
a1min=1e-10;
global a1max %%a1上限
a1max=9e-10;
global dmin %%d下限
dmin=200;
global dmax %%d上限
dmax=300;
global gmin %%g下限
gmin=-0.2;
global gmax %%g上限
gmax=0.8;
global va0min %%a0下限
va0min=-1e-10;
global va0max %%a0上限
va0max=1e-10;
global va1min %%a1下限
va1min=1e-10;
global va1max %%a1上限
va1max=9e-10;
global vdmin %%d下限
vdmin=200;
global vdmax %%d上限
vdmax=300;
global vgmin %%g下限
vgmin=-0.2;
global vgmax %%g上限
vgmax=0.8;
global wcmax %%
wcmax=0.9;
global wcmin %%
wcmin=0.1;
global c1
global c2
c1=2;
c2=2;
global maxgeneration %%迭代总次数
maxgeneration=100;
global generation
global PBEST
global GBEST
global PVALUER
global GVALUER
global YY
YY=[-0.54081-0.60692i,0.012149 + 0.68679i,0.11882 - 0.19483i,0.13601 - 0.34158i,-0.4657 + 0.35149i,0.57219 + 0.084515i,-0.30602 - 0.45357i,-0.12448 + 0.4733i,0.28253 - 0.22736i,-0.041232 - 0.046053i,-0.27818 + 0.10149i,0.35255 + 0.10889i,-0.15708-0.33035i,-0.12981+0.30804i,0.27992-0.10334i,-0.16859-0.046979i,-0.074748+0.027345i,0.18405+0.1087i,-0.06962-0.22639i,-0.11754+0.19898i,0.20472-0.035646i,-0.14713-0.09783i,0.015134 + 0.072464i,0.065154+0.05626i,-0.01676-0.14516i,-0.096746+0.11933i,0.14494-0.0074938i,-0.089348-0.095349i,0.0039871+0.09879i,0.030279-0.0085858i];
global f;
f=1000000:1000000:30000000;
generation=1; %%第一次
pop=initpop(popsize); %%初始化
[pbest,gbest,objvalue,gvaluer]=calobjvalue(pop);%%calobjvalue函数的功能是计算目标函数的适应度
PBEST=pbest;
GBEST=gbest;
PVALUER=objvalue;
GVALUER=gvaluer;
%[pbest,gbest,pvaluer,objvaluetemp]=regulate(pop,pbest,gbest,objvalue);%%粒子在进化过程中依据其适应度,调节个体最好位置Pbest和群体最好位置best
pop=renew(pop,PBEST,GBEST); %%%对粒子的速度和位置进行进化
for generation=2:maxgeneration %%迭代次数
[pbest,gbest,objvalue]=calobjvalue(pop);%%calobjvalue函数的功能是计算目标函数的适应度
for n=1:popsize
if(objvalue(n,1)<PVALUER(n,1))
PVALUER(n,1)=objvalue(n,1);
PBEST(n,1:dimsize)=pbest(n,1:dimsize)
end
end
[GVALUER,m]=min(PVALUER);
GVALUER
GBEST=PBEST(m,1:dimsize)
%[pbest,gbest,pvaluer,objvaluetemp]=regulate(pop,PBEST,GBEST,objvalue);%%粒子在进化过程中依据其适应度,调节个体最好位置Pbest和群体最好位置best
pop=renew(pop,PBEST,GBEST); %%%对粒子的速度和位置进行进化
end
GBEST
GVALUER
k=0.95;
a0=GBEST(1,1);a1=GBEST(1,2);
g=[GBEST(1,7),GBEST(1,8),GBEST(1,9),GBEST(1,10)];
d=[GBEST(1,3),GBEST(1,4),GBEST(1,5),GBEST(1,6)];
c=1.5*10^8;
HH=0;
for i=1:4
H=g(1,i)*exp(-(a0+a1*f.^k)*d(1,i)-j*2*pi*f.*d(1,i)/c);
%H=g(1,i)*exp(-(a0+a1*f.^k)*d(1,i)).*exp(-j*2*3.14*f*d(1,i)/c);
HH=HH+H;
end
plot(f,HH,'r-',f,YY,'g-');
grid on;
LEGEND('粒子群算法','实测值');
PSO.rar_GA PSO算法_PSO_pso迭代_迭代搜索_迭代搜索算法
版权申诉
172 浏览量
2022-09-20
19:10:20
上传
评论
收藏 4KB RAR 举报
林当时
- 粉丝: 100
- 资源: 1万+