update_velocity.m

来自「pso程序」· M 代码 · 共 37 行

M
37
字号
function update_velocityglobal swarm_size;      % 种群规模global swarm;           % 种群,三维数组global w;               % 速度惯性系数,为0—1的随机数global c1;              % 个体最优导向系数global c2;              % 全局最优导向系数global x_min;           % x的下限global x_max;           % x的上限global y_min;           % y的下限global y_max;           % y的上限global gen;             % 迭代次数global exetime;         % 当前迭代次数global max_velocity;    % 最大速度global best_in_history; % 最优解变化轨迹global index_gbest;     % 全局最优解的粒子的序号global dimension;       % 空间的维数global points_size;     % points_size--行数,即点数global x;               % 初始点的x坐标数组global y;               % 初始点的y坐标数组% 更新粒子的速度for i = 1 : swarm_size    for j = 1:dimension        swarm(i, 2, j) = w*rand*swarm(i, 2, j) + c1*rand*(swarm(i, 3, j) - swarm(i, 1, j)) + c2*rand*(swarm(index_gbest, 3, j) - swarm(i, 1, j));   %x velocity component      %         % 限制粒子的运动速度%         if abs(swarm(i, 2, j)) > max_velocity%             if swarm(i, 2, j) > 0%                 swarm(i, 2, j) = max_velocity;%             else%                 swarm(i, 2, j) = -max_velocity;%             end%         end            endend

⌨️ 快捷键说明

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