快捷搜索:  汽车  科技

灰色预测模型matlab实现(灰色预测模型的MATLAB源码)

灰色预测模型matlab实现(灰色预测模型的MATLAB源码)clc clear;代码:将参数代入预测模型进行数据预测。[89677 99215 109655 120333 135823 159878 182321 209407 246619 300670],现在要预测该公司未来几年的利润情况。

灰色预测适用于小样本的预测,常用来解决一些不确定性的问题。

灰色预测模型matlab实现(灰色预测模型的MATLAB源码)(1)

灰色预测模型matlab实现(灰色预测模型的MATLAB源码)(2)

理论知识书上都有介绍,下面仅列出程序设计,同时方便自己比赛。

  • 对原始数据进行累加;

  • 构造累加矩阵B与常数向量;

  • 求解灰参数;

  • 将参数代入预测模型进行数据预测。

  • 下面举例,一个公司1999到2008年的利润为

    [89677 99215 109655 120333 135823 159878 182321 209407 246619 300670],

    现在要预测该公司未来几年的利润情况。

    在程序中我们仅仅预测该公司10年以后的情况,数据可修改,把(n 10)里的10改成你需要的数字即可。

    灰色预测模型matlab实现(灰色预测模型的MATLAB源码)(3)

    代码:

    1. clc clear;

    2. syms a b;

    3. c=[a b]';

    4. A=[89677 99215 109655 120333 135823 159878 182321 209407 246619 300670];

    5. B=cumsum(A); %原始数据累加

    6. n=length(A);

    7. for i=1:(n-1)

    8. C(i)=(B(i) B(i 1))/2; %生成累加矩阵

    9. end

    10. %计算待定参数的值

    11. D=A;D(1)=[];

    12. D=D';

    13. E=[-C;ones(1 n-1)];

    14. c=inv(E*E')*E*D;

    15. c=c';

    16. a=c(1);b=c(2);

    17. %预测后续数据

    18. F=[];F(1)=A(1);

    19. for i=2:(n 10) %只推测后10个数据,可以从此修改

    20. F(i)=(A(1)-b/a)/exp(a*(i-1)) b/a;

    21. end

    22. G=[];G(1)=A(1);

    23. for i=2:(n 10) %只推测后10个数据,可以从此修改

    24. G(i)=F(i)-F(i-1); %得到预测出来的数据

    25. end

    26. t1=1999:2008;

    27. t2=1999:2018; %多10组数据

    28. G

    29. h=plot(t1 A 'o' t2 G '-'); %原始数据与预测数据的比较

    30. set(h 'LineWidth' 1.5);

    猜您喜欢: