跪求用MATLAB建立GM(1,1)模型预测到2020年的代码

2024-05-13

1. 跪求用MATLAB建立GM(1,1)模型预测到2020年的代码

实现用MATLAB建立GM(1,1)模型预测(已知:2007~2013年碰撞事故的次数)直到2020年发生碰撞事故的次数。可以通过下列步骤来进行:1、收集数据,x0=[13,16,11,22,19,20,15];2、设定预测数为7年(2020年)3、用GM(1,1)模型预测,预测前应对数据进行预处理,如数据累加累减,均值化处理,4、利用矩阵方法计算灰方程的参数a,u5、计算模拟数据,残差和相对误差6、根据灰方程,预测2014~2020年的碰撞事故的次数7、用plot函数绘制原始数据与预测数据的比较分析图


跪求用MATLAB建立GM(1,1)模型预测到2020年的代码

2. GM(1,N)模型怎么用MATLAB做出来结果?

GM(1,N)模型是怎么样的?

3. 灰色预测模型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),'%')   %后验差检验    %计算小误差概率

灰色预测模型GM(1,n)模型的matlab源代码,包括预测模型的建立,以及模型的精度检验 (主要是精度的检验c,p

4. MATLAB作灰色时预测GM(1,1)模型,怎样在matlab中使用,操作流程,最好举个简单数据例子,下面有代码

第一个貌似是leslie矩阵
第二个才是你说的灰色模型
第二个的用法也很简单
把整个函数扔到M文件中
在主程序的command window中调用即可

5. 怎么用GM(1,1)模型预测后五年的数据?

clear;clc;X0=[128453 129227 130765 129988 131448 132129 132802 133450 134091 135404];pre_num=5;  %预测5年%% 级比检验n=length(X0);Xle=exp(-2/(n+1));Xre=exp(2/(n+1));lambda=X0(1:end-1)./X0(2:end);range=minmax(lambda);if range(2)Xle    disp('所有的级比都落在可容覆盖区间,可以建立GM模型')else    disp('没有通过级比检验')end%% 建模GM(1,1)X1=cumsum(X0);Z1=0.5*(X1(2:end)+X1(1:end-1));Y=X0(2:end)';B=[-Z1(1:end)' ones(n-1,1)];u=B\Y; 閯(B'*B)*B'*Ya=u(1);b=u(2);%% 输出结果Xpre=[X0(1) ones(1,n-1+pre_num)];for k=1:n-1+pre_num    Xpre(k+1)=(X0(1)-b/a)*(exp(-a*k)-exp(-a*(k-1)));enderr=X0-Xpre(1:n);   %计算残差epsilon=abs(err)./X0*100; %计算相对误差rho=1-(1-0.5*a)/(1+0.5*a)*lambda; %计算级比偏差值%% 画图t1=2002:2011;t2=2002:2011+pre_num;plot(t1,X0,'o',t2,Xpre,'r','LineWidth',2)xlabel('年份')ylabel('人口')legend('原始数据','预测数据', 'Location','SouthEast')

怎么用GM(1,1)模型预测后五年的数据?

6. GM(1,N)动态模型的建立,用灰色系统理论的matlab怎么样编写程序

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),'%')   %后验差检验    %计算小误差概率

7. 请问,MATLAB作灰色时预测GM(1,1)模型,怎样在matlab中使用?预测未来六年的港口运量。

利用下列关系式来编制GM(1,1)模型

请问,MATLAB作灰色时预测GM(1,1)模型,怎样在matlab中使用?预测未来六年的港口运量。

8. 急求灰色预测模型GM(1,N)matlab源代码!

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),'%')   %后验差检验    %计算小误差概率
最新文章
热门文章
推荐阅读