QQ登录

只需要一步,快速开始

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

DGM(2,1)灰色预测模型

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

413

主题

36

听众

1854

积分

升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    跳转到指定楼层
    1#
    发表于 2015-8-12 10:46 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
         DGM2,1)模型,同样是为了解决非单调的摆动发展序列和有饱和的S形序列;
    1. %DGM(2,1)模型
    2. %时间:2015-7-4-六
    3. clc
    4. clear
    5. x0=[2.874,3.278,3.39,3.679,3.77,3.8]; %原始数据序列
    6. n=length(x0);
    7. a_x0=diff(x0)';  %求1次累减序列,即1阶向前差分
    8. B=[-x0(2:end)',ones(n-1,1)];
    9. disp('最小二乘法拟合参数')
    10. u=B\a_x0  %最小二乘法拟合参数
    11. disp('求二阶微分方程的符号解')
    12. x=dsolve('D2x+a*Dx=b','x(0)=c1,Dx(0)=c2');  %求二阶微分方程的符号解
    13. x=subs(x,{'a','b','c1','c2'},{u(1),u(2),x0(1),x0(1)});
    14. yuce=subs(x,'t',0:n-1); %求已知数据点1次累加序列的预测值
    15. x=vpa(x,6)
    16. disp('求已知数据点的预测值')
    17. x0_hat=double( [yuce(1),diff( double(yuce) )] ) %求已知数据点的预测值
    18. disp('求残差 ')
    19. epsilon=double( x0-x0_hat ) %求残差
    20. disp(' 求相对误差')
    21. delta=double( abs(epsilon./x0) )  %求相对误差
    复制代码





    结果.PNG (117.98 KB, 下载次数: 236)

    结果.PNG

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    数学中国版主团队!
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2026-4-12 11:24 , Processed in 0.344956 second(s), 58 queries .

    回顶部