logo资料库

MATLAB实现灰色预测程序.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
灰色GM(1,N)模型在经济中的预测与应用
MATLAB 实现灰色预测程序 灰色预测 很好的东西呐,······~~··`~··~~~~~~~~~~~~~~~~~~~~~````````````` fon [feval,au,ec,C,P]=GM1_1(x, r) if nrgin<2 myar=0; end [mx,nx]=size(x); if mx==1 x=x'; end n=length(x); for i=2:n z(i-1)=0.5*x1(i)+0.5*x1(i-1); end Y=x(2:end); B(:,1)=-z; 2)/au(1)); yc(1)=x(1); for k=1:n+myear-1
y1(k+1)=pm*exp(-au*k)+a(2)/au(1); yc(k+1)=y1(k+1)-y1(k); end feval=yc'; ex=ec./x; r=0; rou=0.5; for k=1:n r=r+rou* s(ec(k))+rou*max(a (ec))); end r=r/n; %原始序列的标准差 s1=std(x); %计算残差的标准差 s2=std(ec); %计算 C
C=s2/s1; %计算后验概率 deta=ec-mean(ec); index=fineta)<0.6745*s1); P=length(index)/n; %% if C<0.35&P>0.95 disp('预测精度为一级') elsP>0.8 disp('预测精度为二级') elseif >0.7 disp('预测精度为三级') else end disp('预测精度过低,需要对模型进行修正') if r>0.6 disp('关联度符合检验要求') end t1=1:length(x); t2=1:lengt);
plot(t1,x,'b--+',t2,feval,'r-o') legend('原始数据','预测数据') 另一个程序 function [y,p,e]=huise_1_1(X,k) %灰色模型的 malab 程序 %Example [y,p]=gm_1_1([200 250 300 350],2) %接口描述: X 的预测的初始数列,|X|>4,K 是指向后进行预测的个数 %命令格式: 程序保存的文件名,eg:huise.m 则命令是: 492.3 547.5 527.0 huise([579.8 437.0],5) if nargout>3; r('Too maoutput argument.'); en if nargin==1,k=1;x_orig=X; elseif ==0|nargin>2 errr('Wrong nu arguments.'); end x_rig=X; predict=k; 行一阶累加 x=cumsum(x_orig); u)------------------------ n=leh(x_orig); for i=1:(n-1); B(i)=-(x(i)+x(i+1))/2; en B=[B' ones(n-1,1)]; for i=1:(n-1); y(i)=x_ori(i+1); ed Y=y'; %AGO 处理,即是对初始数列进 % 计 算 系 数 (a 和 %生成矩阵 B %生成矩阵 Y %计算系数 a=au(1) u=au(2) au=(inv(B'*B))*(B'*Y); %------------------------------------------------------
%把 huise 模型公式转换成 %计算每一个值 %输出图形中的各点 %相对误差的均值 %画出预测模型和初 -- 符号 coef1=au(2)/au(1); coef2=x_or (1)-coef1; co3=0-au(1); costr1=nm2str(coef1); costr2=numstr(abs(coef2)); costr3=ntr(coef3); eq=strcat(ctr1,'+',costr2,'e^',costr3,'*(t-1))'); for t=1:(n+predict) mcv(t)=co1+coef2*exp(coef3*(t-1)); end x_mcv0=diff(mcv); x_mcve=[x_orig(1) x_mcv0] x_c_error=x_orig_n-x_mcv; x_errr=mn(abs(x_c_error./x_orig_n)); if x_error>0.2 disp('del disqualification!'); elseif x_error>0.1 dip('model check out'); disp('model is perfect!'); end plot(1:n,x_orig,'o',1:n+predict,x_mcve); p=x_mcve(end-predict+1:end); 始数列的点 xlabel('年份(从第一个数据年份起)'); ylabel('产水量(万吨)'); tie('灰度模型 grid on y=eq; e=x_error; p=x_mcve(end-predict+1:end); GM(1,1)'); 所有文档>>学术论文>>会议论文>> 灰色 GM(1,N)模型在经济中的预测与应用 http://www.doc88.com/p-137710835384.html
分享到:
收藏