QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5139|回复: 7
打印 上一主题 下一主题

GM(1,1)预测模型的MATLAB程序求助,急!!!

[复制链接]
字体大小: 正常 放大

20

主题

2

听众

72

积分

升级  70.53%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2009-8-27 23:08 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
GM(1,1)灰色模型的程序实现function GM1=fungry1(x0) %输入原始数据x0
T=input('T=');%从键盘输入从最后一个历史数据算起的第T时点
x1=zeros(1,length(x0));B=zeros(length(x0)-1,2);
yn=zeros(length(x0)-1,1);Hatx0=zeros(1,length(x0)+T);
Hatx00=zeros(1,length(x0));Hatx1=zeros(1,length(x0)+T);
epsilon=zeros(length(x0),1);omega=zeros(length(x0),1);
for i=1:length(x0)
    for j=1:i
        x1(i)=x1(i)+x0(j);
    end
end
for i=1:length(x0)-1
    B(i,1)=(-1/2)*(x1(i)+x1(i+1));
    B(i,2)=1;
    yn(i)=x0(i+1);
end
HatA=(inv(B'*B))*B'*yn % GM(1,1)模型参数估计
for k=1:length(x0)+T
    Hatx1(k)=(x0(1)-HatA(2)/HatA(1))*exp(-HatA(1)*(k-1))+HatA(2)/HatA(1);
end
Hatx0(1)=Hatx1(1);
for k=2:length(x0)+T
    Hatx0(k)=Hatx1(k)-Hatx1(k-1);%累计还原得到历史数据的模拟值
end
for i=1:length(x0) %开始模型检验
    epsilon(i)=x0(i)-Hatx0(i);
    omega(i)=(epsilon(i)/x0(i))*100;
end
% x0;Hatx0;epsilon;omega;  %必要时去掉%得到各种数据
c=std(epsilon)/std(x0);p=0;
for i=1:length(x0)
    if abs(epsilon(i)-mean(epsilon))<0.6745*std(x0)
        p=p+1;
    end
end
p=p/length(x0)
if p>0.95 & c<0.35
    disp('The model is good,and the forecast is:'),
    disp(Hatx0(length(x0)+T))
elseif p>0.85 & c<0.5
    disp('The model is eligibility,and the forecast is:'),
    disp(Hatx0(length(x0)+T))
elseif p>0.7 & c>0.65
    disp('The model is not good,and the forecast is:'),
    disp(Hatx0(length(x0)+T))
else p<=0.7 & c>0.65
    disp('The model is bad and try again')
end
for i=1:length(x0)
    Hatx00(i)=Hatx0(i);
end
z=1:length(x0);
plot(z,x0,'-',z,Hatx00,':') %将原始数据和模拟值画在一个图上帮助观察
text(2,x0(2),'History data: real line')
text(length(x0)/2,Hatx00(length(x0))/2,'Simulation data:broken line')
endT=input('T=');%从键盘输入从最后一个历史数据算起的第T时点????是指什么啊,请大哥们,大姐们教一下,我急用,请快,谢谢我的初始值x0=[1.620938526
0.07925621
0.052318818
0.041252502
0.021800479
0.053132975
0.089908836
0.109153219
0.079331832
0.342192598
0.099718142
0.135194823
0.109274037
0.08152013
0.067876355
0.064706843
0.055562197
0.050848544
]';
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

55

主题

9

听众

957

积分

升级  89.25%

  • TA的每日心情
    开心
    2013-11-20 13:38
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    群组数学建模培训课堂1

    群组C题讨论群

    回复

    使用道具 举报

    数学者 实名认证       

    170

    主题

    10

    听众

    3232

    积分

    该用户从未签到

    新人进步奖 发帖功臣 最具活力勋章

    就是预测期的长度的意思嘛,比如历史数据是由2000年到2007年的,T=3。则预测2008,2009,2010这三年的数据~
    回复

    使用道具 举报

    2

    主题

    5

    听众

    394

    积分

    升级  31.33%

  • TA的每日心情
    开心
    2012-8-24 12:51
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人进步奖

    回复

    使用道具 举报

    alair009        
    头像被屏蔽

    0

    主题

    4

    听众

    361

    积分

    升级  20.33%

  • TA的每日心情
    郁闷
    2012-2-3 19:26
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    风过也        

    0

    主题

    4

    听众

    304

    积分

    升级  1.33%

  • TA的每日心情
    无聊
    2015-10-7 20:41
  • 签到天数: 107 天

    [LV.6]常住居民II

    社区QQ达人 邮箱绑定达人

    群组Matlab讨论组

    群组学术交流A

    群组学术交流B

    群组2011年第一期数学建模

    回复

    使用道具 举报

    0

    主题

    2

    听众

    381

    积分

  • TA的每日心情
    郁闷
    2014-4-3 12:57
  • 签到天数: 99 天

    [LV.6]常住居民II

    群组学术交流B

    回复

    使用道具 举报

    0

    主题

    13

    听众

    33

    积分

    升级  29.47%

  • TA的每日心情
    郁闷
    2016-12-26 19:08
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    社区QQ达人

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2024-4-25 08:10 , Processed in 0.739804 second(s), 92 queries .

    回顶部