• 大小: 11KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: Matlab
  • 标签:

资源简介

粒子群算法matlab代码及使用。自编function,可以直接嵌入使用

资源截图

代码片段和文件信息

function [pbestAim_best]=PSO(AimNumMDC1C2K)
% function [pbestAim_best]=PSO(AimNumMC1C2DKVminVmaxXminXmax)
%粒子群优化算法
%pbest为全局最优解
%Aim_best为最优解时的函数值
%Aim是目标函数
%Num是粒子个数
%M为最大迭代次数
%D自变量个数
%C1、C2为学习因子
%K是收敛因子
%Vmax为最大速度
%Vmin
%Xmax
%Xmin

D=6;
%初始化种群
for i=1:1:Num
    for j=1:1:D
        x(ij)=randn;  %随机初始化位置
        v(ij)=randn;  %随机初始化速度
    end
end

%计算各粒子适应度,初始化pi和pg
for i=1:1:Num
    p(i)=Aim(x(i:));%目标函数最优值
    y(i:)=x(i:);%最优位置pbest
end

pg=x(Num:);%全局最优位置

for i=1:(Num-1)
    if Aim(x(i:))        pg=x(i:);
    end
end

%主循环
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

评论

共有 条评论