陈希 发表于 2017-4-26 22:06

搜集工具箱中

你不知道的事111 发表于 2017-4-27 17:55

111111111111111111111111111111111

robintemp 发表于 2017-5-1 15:04

空间啦克隆空间乐扣乐扣拉开距离

SeanWang123 发表于 2017-5-2 15:47

GM0.m  
%该函数为GM(1,1)模型返回还原值   
function f=GM0(x0,t)  %数据数列   
=size(x0);        %算出数据数列的大小   
x1(1)=x0(1);           %累加生成数列   
for i=2:N;      
    x1(i)=x1(i-1)+x0(i);   
end  
x2=[];              %累加生成数列均值生成数列   
for j=1:(N-1);      
    x2(j)=(x1(j)+x1(j+1))/2;   
end  
x=x0;              %数据数列镜像  
x(1)=[];           %删除第一个数据   
Y=x';              %数据列向量   
global a;   
global b;   
B(:,1)=-x2';  
B(:,2)=1;   
A=inv(B'*B)*B'*Y;   %求参量a,b组成的参数向量   
a=A(1,1);           %求参数a   
b=A(2,1);           %求参数b   
f=(1-exp(a))*(x0(1)-b/a)*exp(-a*(t-1));  
f  
  
GM1.m:  
%该函数为GM(1,1)模型中数据数列进行光滑比检验   
function f=GM1(x0)   %数据数列   
N=max(size(x0));       %算出数据数列的大小   
x1=cumsum(x0);         %累加生成数列   
global J;   
global J1;  
global J2;   
x0(1)=[];   
x1(N)=[];   
global r;  
r=x0./x1;   
for j=2:(N-1);           %判断数据数列是否满足准光滑条件1     
   if(r(j)>=0.5||r(j)<0)           
       J1=0;           
       break;      
   else  
       J1=1;      
   end  
end  
for l=1:(N-2);           %判断数据数列是否满足准光滑条件2      
    if((r(l+1)/r(l))>=1)           
        J2=0;           
        break;      
    else  
        J2=1;      
    end  
end  
J=J1+J2;   
if(J==2)                 %判断数据数列是否为准光滑数列      
    disp('数据为准光滑数列')  
else  
    disp('数据不是准光滑数列')   
end  
  
GM2.m  
%该函数为GM(1,1)模型还原值参数计算   
function f=GM2(x0)  %数据数列  
=size(x0);      %算出数据数列的大小   
x1(1)=x0(1);         %累加生成数列   
for i=2:N;        
    x1(i)=x1(i-1)+x0(i);   
end  
x2=[];              %累加生成数列均值生成数列   
for j=1:(N-1);        
    x2(j)=(x1(j)+x1(j+1))/2;  
end  
  x=x0;              %数据数列镜像        
  x(1)=[];           %删除第一个数据   
  Y=x';              %数据列向量   
  global a;   
  global b;   
  B(:,1)=-x2';   
  B(:,2)=1;   
  A=inv(B'*B)*B'*Y;   %求参量a,b组成的参数向量   
  a=A(1,1);           %求参数a   
  disp('参数a为:')   
  a   
  b=A(2,1);           %求参数b   
  disp('参数b为:')   
  b  
  
GM3.m  
%该程序实现G(1,1)模型的精度检验   
%包括平均相对误差,绝对关联度,均方差比值,小误差概率检验  
function f=GM3(x0)   
N=max(size(x0));   
x=GM0(x0,1:N);  %利用已有程序GM2得出数据列模型估计值   
x(1)=x0(1);     %更正第一个估计值   
disp('模型模拟估计值为')   
x   
A=x-x0;         %计算绝对残差序列   
disp('模型估计值绝对残差序列为:')  
A   
G=abs(A);   
Amin=min(G);    %计算最小绝对值绝对残差   
Amax=max(G);    %计算最大绝对值绝对残差   
B=A./x0;        %计算相对误差序列   
disp('模型估计值相对误差序列为:')   
B   
P=sum(abs(B))/N;     %计算平均相对误差   
disp('模型估计值平均相对误差为:')  
P   
for i=1:1:N       %通过循环计算关联系数序列      
    D(i)=(Amin+0.5*Amax)/(G(i)+0.5*Amax);   
end  
R=sum(D)/N;   
disp('关联度为:')   
R   
x_=sum(x0)/N;    %计算数据的均值   
S1=(sum((x0-x_).^2)/(N-1))^0.5;   %计算数据序列方均差  
A_=sum(A)/N;     %计算残差平均值   
S2=(sum((A-A_).^2)/(N-1))^0.5;    %计算残差序列方均差  
C=S2/S1;         %计算方均差比值   
disp('均方差比值为:')   
C   
S0=0.6745*S1;  
E=A-A_;   
F=find(E<S0);   
M=max(size(F)); %计算小残差个数  
p=M/N;          %计算小误差概率   
disp('小误差概率为:')  
p  

SeanWang123 发表于 2017-5-2 15:48

你好打发率阿萨德却无法的说法阿安慰却未必

brdkec 发表于 2017-5-6 11:37

还没看。

a247234 发表于 2017-5-6 23:10

666
445

ipryad 发表于 2017-5-7 12:41

正在学习中

纵横大数据 发表于 2017-6-18 09:39

谢谢站长的分享

疯小妹 发表于 2017-7-5 23:43

先谢楼主
页: 5 6 7 8 9 10 11 12 13 14 [15] 16 17
查看完整版本: 灰色预测系统的matlab工具箱