當前位置:編程學習大全網 - 源碼下載 - 灰色預測模型GM(1,n)模型的matlab源代碼,包括預測模型的建立,以及模型的精度檢驗 (主要是精度的檢驗c,p

灰色預測模型GM(1,n)模型的matlab源代碼,包括預測模型的建立,以及模型的精度檢驗 (主要是精度的檢驗c,p

function GM1_1(X0)

%format long ;

[m,n]=size(X0);

X1=cumsum(X0); %累加

X2=[];

for i=1:n-1

X2(i,:)=X1(i)+X1(i+1);

end

B=-0.5.*X2 ;

t=ones(n-1,1);

B=[B,t] ; % 求B矩陣

YN=X0(2:end) ;

P_t=YN./X1(1:(length(X0)-1)) %對原始數據序列X0進行準光滑性檢驗,

%序列x0的光滑比P(t)=X0(t)/X1(t-1)

A=inv(B.'*B)*B.'*YN.' ;

a=A(1)

u=A(2)

c=u/a ;

b=X0(1)-c ;

X=[num2str(b),'exp','(',num2str(-a),'k',')',num2str(c)];

strcat('X(k+1)=',X)

%syms k;

for t=1:length(X0)

k(1,t)=t-1;

end

k

Y_k_1=b*exp(-a*k)+c;

for j=1:length(k)-1

Y(1,j)=Y_k_1(j+1)-Y_k_1(j);

end

XY=[Y_k_1(1),Y] %預測值

CA=abs(XY-X0) ; %殘差數列

Theta=CA %殘差檢驗 絕對誤差序列

XD_Theta= CA ./ X0 %殘差檢驗 相對誤差序列

AV=mean(CA); % 殘差數列平均值

R_k=(min(Theta)+0.5*max(Theta))./(Theta+0.5*max(Theta)) ;% P=0.5

R=sum(R_k)/length(R_k) %關聯度

Temp0=(CA-AV).^2 ;

Temp1=sum(Temp0)/length(CA);

S2=sqrt(Temp1) ; %絕對誤差序列的標準差

%----------

AV_0=mean(X0); % 原始序列平均值

Temp_0=(X0-AV_0).^2 ;

Temp_1=sum(Temp_0)/length(CA);

S1=sqrt(Temp_1) ; %原始序列的標準差

TempC=S2/S1*100; %方差比

C=strcat(num2str(TempC),'%') %後驗差檢驗 %方差比

%----------

SS=0.675*S1 ;

Delta=abs(CA-AV) ;

TempN=find(Delta<=SS);

N1=length(TempN);

N2=length(CA);

TempP=N1/N2*100;

P=strcat(num2str(TempP),'%') %後驗差檢驗 %計算小誤差概率

  • 上一篇:大藍衛浴網站源代碼
  • 下一篇:錢龍黃金眼的簡介
  • copyright 2024編程學習大全網