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