赞
踩
灰色预测法是一种用于处理少量数据、数据质量较差或者缺乏历史数据的预测方法。它适用于一些非线性、非平稳的系统,尤其在短期预测和趋势分析方面有着广泛的应用。灰色预测法作为一种强大的数学建模工具,通过利用有限的信息,能够在不完备的条件下进行准确的预测。它在许多领域都得到广泛应用,并且随着灰色系统理论的发展,它的应用前景将更加广阔。
灰色预测法(Gray Forecasting Method)是一种基于少量、不完全信息的数学建模方法,用于预测未来的发展趋势。通过科学的方法分析事物的过去和现在,揭示出其中的发展规律,从而进行准确的预测。
灰色系统理论运用灰色数学处理不确定性量化问题,并充分利用已知信息,寻求系统运动规律。其独特之处在于适用于处理信息匮乏的系统。
灰色生成是通过对原始数据进行特定要求的处理,揭示出数据背后的内在规律。常用的生成方法包括累加生成、累减均值生成和级比生成。
累加生成是一种关键方法,通过对原始数据列进行逐项累加,将灰色过程由灰色转变为白色,突显数据的积分特性和规律。
GM(1,1)模型是灰色预测法中常用的模型之一。它通过对原始数据进行累加生成,建立灰色微分方程,并通过求解方程来得到准确的预测值。
在选择模型后,对其进行精度检验以验证其合理性是必要的。常用的灰色模型精度检验方法包括相对误差大小检验法、关联度检验法和后验差检验法。下面主要介绍后验差检验法:
计算残差得:
function []=huidu() % 本程序主要用来计算根据灰色理论建立的模型的预测值。 % 应用的数学模型是 GM(1,1)。 % 原始数据的处理方法是一次累加法 y=input("请输入数据); n=length(y); yy=ones(n,1); yy(1)=y(1); for i=2:n yy(i)=yy(i-1)+y(i); end for i=1:(n-1) B(i,1)=-(yy(i)+yy(i+1))/2;B(i,2)=1; B=ones(n-1,2); end BT=B'; for j=1:n-1 YN(j)=y(j+1); end YN=YN'; A=inv(BT*B)*BT*YN; a=A(1); U=A(2); t=u/a; i=l:n+2; yys(i+1)=(y(1)-t).*exp(-a.*i)+t;yys(1)=y(1); for j=n+2:-1:2 ys(j)=yys(j)-yys(j-1); end X=1:n; xs=2:n+2;yn=ys(2:n+2);plot(x,y,'^r',xs,yn,'*-b');det=0; sum1=0; sumpe=0; for i=l:n sumpe=sumpe+y(i); end pe=sumpe/n; for i=1:n sum1=sum1+(y(i)-pe).^2; end s1=sqrt(sum1/n); sumce=0; for i=2:n sumce=sumce+(y(i)-yn(i)); end ce=sumce/(n-1);sum2=0; for i=2:n sum2=sum2+(y(i)-yn(i)-ce).^2; end s2=sqrt(sum2/(n-1)); c=(s2)/(s1); disp(['后验差比值为:,num2str(c)]); if c<8.35 disp(系统预测精度好 ) else if c<0.5 disp("系统预测精度合格 ) else if c<0.65 disp("系统预测精度勉强') else disp("系统预测精度不合格 ) end end end disp(['下个拟合值为,num2str(ys(n+1))]); disp([再下个拟合值为',num2str(ys(n+2))]);
github上有完整资料:https://github.com/HuaandQi/-.git
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。