qq_41353443 2020-04-03 16:43
浏览 176

蚁群算法和灰色预测模型

这是我从别人那里找的蚁群算法计算灰色预测模型参数的代码,搞不懂是什么问题,有没有大佬可以解释一下?

C=input('C=');   
NC=input('NC='); 
m=input('m=');  
Q=input('Q=');   
x=[852532 919448 999036 1090947 1197860 1322437 1528890 1716323]; 
x1=cumsum(x); 
for i=1:7 
     for j=1:100  
         a(i,j)=rand; 
         while a(i,j)==0 
             a(i,j)=rand;   
         end 
         b(i,j)=C;   
     end  
end 
for i=1:7 
     for j=1:100 
         p0(i,j)=1/100; 
     end  
end 
a=sort(a,2);   
p0=cumsum(p0,2);  
e0=10000; 
for t=1:NC    
     for n=1:m  
         for i=1:7 
             p(i)=rand;   
             for   j=1:99 
                 if p(i)>=p0(i,j) & p(i)<p0(i,j+1) 
                     c(i)=a(i,j);  
                 else if p(i)<a(i,1) 
                         c(i)=a(i,1); 
                     else  
                         c(i)=a(i,100); 
                     end 
                 end 
             end 
         end 
         for i=1:7 
             A(i,1)=-(c(i)*x1(i)+(1-c(i))*x1(i+1)); 
             A(i,2)=1; 
         end 
         for i=1:7 
             y(i)=x(i+1); 
         end 
         Y=y'; 
         au=inv(A'*A)*A'*Y; 
         for i=0:7 
             x2(i+1)=(x(1)-au(2)/au(1))*exp(-au(1)*i)+au(2)/au(1); 
         end 
         x3=zeros(8); 
         for i=1:7 
             x3(i+1)=x2(i+1)-x2(i); 
             x3(1)=x(1); 
         end 
         e2=0; 
         for i=1:8 
             e(i)=x3(i)-x(i); 
             e2=e2+e(i)*e(i); 
         end 
         if e2<e0 
             e0=e2; 
             f=au; 
             e1=e; 
             D=c;    
             H=Q/e2;   
         end 
     end 
     for i=1:7 
         for j=1:100 
             if D(i)==a(i,j) 
                 b(i,j)=r*b(i,j)+H; 
             end 
         end 
     end 
     u=sum(b,2); 
     for i=1:7 
         for j=1:100 
             p0(i,j)=b(i,j)/u(i); 
         end 
     end 
     p0=cumsum(p0,2); 
end 
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 ROS Turtlebot3 多机协同自主探索环境时遇到的多机任务分配问题,explore节点
    • ¥15 Matlab怎么求解含参的二重积分?
    • ¥15 苹果手机突然连不上wifi了?
    • ¥15 cgictest.cgi文件无法访问
    • ¥20 删除和修改功能无法调用
    • ¥15 kafka topic 所有分副本数修改
    • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
    • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
    • ¥40 串口调试助手打开串口后,keil5的代码就停止了
    • ¥15 电脑最近经常蓝屏,求大家看看哪的问题