-
大小: 11KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-06-14
- 語言: Matlab
- 標(biāo)簽:
資源簡介
粒子群算法matlab代碼及使用。自編function,可以直接嵌入使用

代碼片段和文件信息
function?[pbestAim_best]=PSO(AimNumMDC1C2K)
%?function?[pbestAim_best]=PSO(AimNumMC1C2DKVminVmaxXminXmax)
%粒子群優(yōu)化算法
%pbest為全局最優(yōu)解
%Aim_best為最優(yōu)解時的函數(shù)值
%Aim是目標(biāo)函數(shù)
%Num是粒子個數(shù)
%M為最大迭代次數(shù)
%D自變量個數(shù)
%C1、C2為學(xué)習(xí)因子
%K是收斂因子
%Vmax為最大速度
%Vmin
%Xmax
%Xmin
D=6;
%初始化種群
for?i=1:1:Num
????for?j=1:1:D
????????x(ij)=randn;??%隨機(jī)初始化位置
????????v(ij)=randn;??%隨機(jī)初始化速度
????end
end
%計(jì)算各粒子適應(yīng)度,初始化pi和pg
for?i=1:1:Num
????p(i)=Aim(x(i:));%目標(biāo)函數(shù)最優(yōu)值
????y(i:)=x(i:);%最優(yōu)位置pbest
end
pg=x(Num:);%全局最優(yōu)位置
for?i=1:(Num-1)
????if?Aim(x(i:)) ????????pg=x(i:);
????end
end
%主循環(huán)
for?i=1:1:M
????for?j=1:1:Num
????????v(j:)=K*(v(j:)+C1*rand*(y(j:)-x(j:))+C2*rand*(pg-x(j:)));%更新速度
????????x(j:)=x(j:)+v(j:);%更新位置
????????
????????if(Aim(x(j:))????????????p(j)=Aim(x(j:));
????????????y(j:)=x(j:);
????????end
?????????if(Aim(x(j:))>p(j))
?????????????pg=y(j:);
?????????end
????end
end
pbest=pg‘;
Aim_best=Aim(pg);
????????
????????
????????
????????
????????
????????
????????
????????
????????
????????
????????
????????
????????
????????
????????
????????
????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-03-17?21:02??粒子群算法\
?????文件????????1272??2017-03-14?18:16??粒子群算法\PSO.m
?????文件???????11809??2017-03-17?21:01??粒子群算法\說明.png
評論
共有 條評論