全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
1033 3
2013-09-19
小弟最近在看《GM(1,1)模型灰色作用量的优化》这篇论文,对其中的计算用matlab,代码如下,(鄙人水平极其有限,对该软件只会简单操作)求得a,b,c与文中结果相同,但最终运行结果差别巨大,很久也没发现错在哪,今特意注册账号恳请各位前辈指点纠正,感激不尽:
clear;clc;
y1=[5425.1 5854 6280 6859.6 7702.8 8472.2];
n=6;
for i=1:n
x1(i)=sum(y1(1:i));
end
y=[y1(2:n)]';
for i=2:n
    x(i)=0.5*x1(i-1)+0.5*x1(i);
end
x=x(2:n);
x=[-x;ones(1,n-1);2:n]';
A=x\y;
a=A(1);
b=A(2);
c=A(3);
for i=1:n+2
    xy(i+1)=(1-exp(a))*(y1(1)-b/a-c/a+c/(a^2))*exp(-i*a)+c/a;%问题应该在这,这里我加上了c/a,论文中没有,核算过一次,好像文中式子漏掉了这个,也可能我算错了,但不管加与否,都对不上
end
xy(1)=y1(1);
xy
附件列表
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-9-21 22:20:22
好几天了,有木有人能给点有用的信息呀。。。万分期待中
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-21 23:03:46
代码没仔细看,不过我这里有段灰色预测的现成代码,供你参考。
clear
syms a b;
c=[a b]';
A=[89677,99215,109655,120333,135823,159878,182321,209407,246619,300670];
B=cumsum(A);  % 原始数据累加
n=length(A);
for i=1:(n-1)
    C(i)=(B(i)+B(i+1))/2;  % 生成累加矩阵
end
% 计算待定参数的值
D=A;D(1)=[];
D=D';
E=[-C;ones(1,n-1)];
c=inv(E*E')*E*D;
c=c';
a=c(1);b=c(2);
% 预测后续数据
F=[];F(1)=A(1);
for i=2:(n+10)
    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a ;
end
G=[];G(1)=A(1);
for i=2:(n+10)
    G(i)=F(i)-F(i-1); %得到预测出来的数据
end
t1=1999:2008;
t2=1999:2018;
G
plot(t1,A,'o',t2,G)  %原始数据与预测数据的比较
xlabel('年份')
ylabel('利润')
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-9-22 18:24:59
你这是传统灰色模型的代码。。。不过还是谢谢你的回复
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群