MATLAB实现灰色预测程序 很全,很强大,数学建模当中用到的

发布时间:2024-11-10

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

disp('预测精度过低,需要对模型进行修正')

end

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 则命令是:

huise([579.8 547.5 527.0 492.3

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; %AGO 处理,即是对初始数列进行一阶累加

x=cumsum(x_orig); %计算系数(a 和 u)------------------------

n=leh(x_orig); %生成矩阵 B

for i=1:(n-1);

B(i)=-(x(i)+x(i+1))/2;

en

B=[B' ones(n-1,1)]; %生成矩阵 Y

for i=1:(n-1);

y(i)=x_ori(i+1);

ed

Y=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('灰度模型 GM(1,1)');

grid on

y=eq;

e=x_error;

p=x_mcve(end-predict+1:end);

所有文档>>学术论文>>会议论文>>

灰色GM(1,N)模型在经济中的预测与应用

http:///p-137710835384.html %计算每一个值 %输出图形中的各点 %相对误差的均值 %画出预测模型和初

MATLAB实现灰色预测程序 很全,很强大,数学建模当中用到的.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219