数学建模社区-数学中国

标题: 灰色Verhulst预测模型 [打印本页]

作者: 森之张卫东    时间: 2015-8-12 10:58
标题: 灰色Verhulst预测模型
  1. <p>%灰色Verhulst模型
  2. %时间:2015-7-4-六
  3. %页码:P380
  4. clc,clear
  5. x0=[4.93   2.33   3.87   4.35   6.63   7.15   5.37   6.39   7.81   8.35];
  6. x1=cumsum(x0);  %求1次累加序列
  7. n=length(x0);
  8. z=0.5*(x1(2:n)+x1(1:n-1));   %求x1的均值生成序列
  9. B=[-z',z'.^2];
  10. Y=x0(2:end)';
  11. disp('估计参数a,b的值')
  12. ab_hat=B\Y     %估计参数a,b的值
  13. x=dsolve('Dx+a*x=b*x^2','x(0)=x0');  %求解常微分方程
  14. x=simple(x);  %对符号解进行化简
  15. x=subs(x,{'a','b','x0'},{ab_hat(1),ab_hat(2),x0(1)});  %代入参数值
  16. disp('求已知数据点1次累加序列的预测值')
  17. yuce=subs(x,'t',[0:n-1])   %求已知数据点1次累加序列的预测值
  18. disp('显示6位数字的符号解')
  19. x=vpa(x,6) %显示6位数字的符号解
  20. %{
  21. x0_hat=[yuce(1),diff(yuce)] %求已知数据点的预测值
  22. epsilon=x0-x0_hat    %求残差
  23. delta=abs(epsilon./x0)  %求相对误差
  24. xlswrite('book4.xls',[x0',x0_hat',epsilon',delta'])
  25. %}
  26. disp('求已知数据点的预测值')
  27. x0_hat=double( [yuce(1),diff( double(yuce) )] ) %求已知数据点的预测值
  28. disp('求残差 ')
  29. epsilon=double( x0-x0_hat ) %求残差
  30. disp(' 求相对误差')
  31. delta=double( abs(epsilon./x0) )  %求相对误差
  32. xlswrite('book4.xls',[x0',x0_hat',epsilon',delta'])</p><p><p>
  33. </p>
复制代码

灰色Verhulst模型.jpg (1.97 MB, 下载次数: 230)

灰色Verhulst模型.jpg

部分结果.PNG (135.52 KB, 下载次数: 191)

部分结果.PNG


作者: 林-zhu-fugitive    时间: 2015-8-12 22:03
很棒的样子哈





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