风雨悠扬 2015-09-13 01:29 采纳率: 100%
浏览 2025
已采纳

matlab程序问题,希望大神帮我注释一下

 %%请大神帮我注释一下,网上找的源代码,但是注释不全
%%  清空环境
clear
clc
tic
%% 参数初始化
% 粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;

maxgen  = 200; % 进化次数
sizepop = 20;  % 种群规模

Vmax = 1;
Vmin = -1;
popmax = 5;
popmin = -5;

%% 产生初始粒子和速度
for i = 1:sizepop
    % 随机产生一个种群
    pop(i,:) = 5 * rands(1,2); % 初始种群
    V(i,:) = rands(1,2);   % 初始化速度
    % 计算适应度
    fitness(i) = fun(pop(i,:));  % 染色体的适应度
end

% 找最好的染色体
[bestfitness bestindex] = min(fitness);
zbest = pop(bestindex,:);  % 全局最佳
gbest = pop;  % 个体最佳
fitnessgbest = fitness;  % 个体最佳适应度值
fitnesszbest = bestfitness;  % 全局最佳适应度值
%% 迭代寻优
for i = 1:maxgen
    for j = 1:sizepop

        % 速度更新
        V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));
        V(j,find(V(j,:)>Vmax)) = Vmax;
        V(j,find(V(j,:)<Vmin)) = Vmin;

        %种群更新
        pop(j,:) = pop(j,:) + 0.5*V(j,:);
        pop(j,find(pop(j,:)>popmax)) = popmax;
        pop(j,find(pop(j,:)<popmin)) = popmin;

        % 自适应变异
        if rand > 0.8
            k = ceil(2*rand);
            pop(j,k) = rand;
        end

        % 适应度值
        fitness(j) = fun(pop(j,:));
    end

    % 个体最优更新
    if fitness(j) < fitnessgbest(j)
        gbest(j,:) = pop(j,:);
        fitnessgbest(j) = fitness(j);
    end

    % 群体最优更新
    if fitness(j) < fitnesszbest
        zbest = pop(j,:);
        fitnesszbest = fitness(j);
    end

    yy(i) = fitnesszbest;

end
toc
%% 结果分析
plot(yy);
title(['适应度曲线    ' '终止代数=' num2str(maxgen)]);
xlabel('进化代数');
ylabel('适应度');
  • 写回答

1条回答 默认 最新

  • SunliyMonkey 2015-09-13 06:28
    关注

    果断自己,边读边注释呀,才有提高

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)