全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
6714 11
2008-10-14
 

function [y,p,e]=gm_1_1(X,k)
%Build the calculating dieplate for the typical gray model.
%Example [y,p]=gm_1_1([200 250 300 350],2)

%Designed by NIXIUHUI,Dalian Fisher University.
%20 April,2004. Last modified by NXH at 25 September,2004   

if nargout>3,error('Too many output argument.');end
if nargin==1,k=1;x_orig=X;
elseif nargin==0|nargin>2
   error('Wrong number of input arguments.');
end
x_orig=X;
predict=k;

%AGO process
x=cumsum(x_orig);


%compute the coefficient(a and u)------------------------
n=length(x_orig);
%first generate the matrix B
for i=1:(n-1);
B(i)=-(x(i)+x(i+1))/2;
end
B=[B' ones(n-1,1)];
%then generate the matrix Y
for i=1:(n-1);
y(i)=x_orig(i+1);
end
Y=y';
%get the coefficient. a=au(1) u=au(2)
au=(inv(B'*B))*(B'*Y);
%--------------------------------------------------------
%change the grey model to symbolic expression
coef1=au(2)/au(1);
coef2=x_orig(1)-coef1;
coef3=0-au(1);
costr1=num2str(coef1);
costr2=num2str(abs(coef2));
costr3=num2str(coef3);
eq=strcat(costr1,'+',costr2,'e^',costr3,'*(t-1))');

 

%comparison of calculated and observed value
for t=1:n+predict
   mcv(t)=coef1+coef2*exp(coef3*(t-1));
end
x_mcv0=diff(mcv);
x_mcve=[x_orig(1) x_mcv0];
x_mcv=diff(mcv(1:end-predict));
x_orig_n=x_orig(2:end);
x_c_error=x_orig_n-x_mcv;
x_error=mean(abs(x_c_error./x_orig_n));

if x_error>0.2
   disp('model disqualification!');
elseif x_error>0.1
   disp('model check out');
else
   disp('model is perfect!');
end
%predicting model and plot gragh
plot(1:n,x_orig,'diamond',1:n+predict,x_mcve);
p=x_mcve(end-predict+1:end);
xlabel('CURVE OF GREY MODEL ANALYSIS');
title('GM(1,1)');
grid on
y=eq;
e=x_error;
p=x_mcve(end-predict+1:end);


http://www.51xuewen.com/group/topic_show.aspx?groupid=742&id=6394
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2009-3-21 10:39:00
Thank you !!!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-7-29 21:57:01
momo,谢谢~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-8-2 15:26:01
感谢啊 真的很伟大啊 楼主!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-8-16 18:43:11
x谢谢 正用的着
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2009-8-16 19:18:41
英文,不懂
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群