数学建模社区-数学中国

标题: GM(2,1) [打印本页]

作者: 森之张卫东    时间: 2015-8-12 10:31
标题: GM(2,1)
  1. <p>%GM(2,1)模型
  2. %时间:2015-7-4-六
  3. clc
  4. clear
  5. x0=[41,49,61,78,96,104]; %原始序列
  6. n=length(x0);
  7. disp('计算1次累加序列')
  8. x1=cumsum(x0)  %计算1次累加序列
  9. disp('计算1次累减序列')
  10. a_x0=diff(x0)' %计算1次累减序列
  11. z=0.5*(x1(2:end)+x1(1:end-1))'; %计算矩阵序列
  12. B=[-x0(2:end)',-z,ones(n-1,1)];
  13. disp('最小二乘法拟合参数')
  14. u=B\a_x0   %最小二乘法拟合参数
  15. x=dsolve('D2x+a1*Dx+a2*x=b','x(0)=c1,x(5)=c2');  %求边值问题的符号解
  16. x=subs(x,{'a1','a2','b','c1','c2'},{u(1),u(2),u(3),x1(1),x1(6)});
  17. yuce=subs(x,'t',0:n-1); %求已知数据点1次累加序列的预测值
  18. x=vpa(x,6); %显示6位数字的符号解</p><p>% x0_hat=diff(yuce(1),yuce); %求已知数据点的预测值
  19. disp('求已知数据点的预测值')
  20. x0_hat=[yuce(1),diff( double(yuce) )];  %差分运算,还原数据</p><p>x0_hat=round(x0_hat) %四舍五入取整数
  21. disp('求残差 ')
  22. epsilon=x0-x0_hat    %求残差
  23. disp(' 求相对误差')
  24. delta=abs(epsilon./x0)  %求相对误差</p><p><p><p><p><p><p><p></p>
复制代码

GM(2,1)的优点.jpg (1.85 MB, 下载次数: 153)

GM(2,1)的优点.jpg

部分结果.PNG (135.84 KB, 下载次数: 164)

部分结果.PNG






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5