当前位置:文档之家› 多变量灰色预测模型算法的Matlab程序

多变量灰色预测模型算法的Matlab程序

多变量灰色预测模型算法的Matlab程序
多变量灰色预测模型算法的Matlab程序

Matlab+灰色预测模型模型GM(1,1)

GM(1,1)灰色预测模型 Introduction Initial 给定原始序列: x(0) =(x(0)(1), x(0)(2), x(0)(3)…, x(0)(n)) Step 1 一次AGO(1-AGO)生成序列,以弱化原始序列的随机性和波动性:x(1) =(x(1)(1), x(1)(2), x(1)(3)…, x(1)(n)) Matlab Program clear syms a b; c=[a b]'; fid=fopen('.\Grey Model\test.txt'); x0=fscanf(fid,'%f');x0=x0'; fclose(fid); x1=cumsum(x0); %原始数据累加 n=length(x0); for i=1:(n-1) z(i)=(x1(i)+x1(i+1))/2; %生成累加矩阵end %计算待定参数的值 Y=x0;Y(1)=[]; Y=Y'; B=[-z;ones(1,n-1)];B=B'; c=inv(B'*B)*B'*Y; c=c'; a=c(1);b=c(2); %预测后续数据 %预测之后10个时间单位的数据 xx1=[];xx1(1)=x0(1); for i=2:(n+10) xx1(i)=(x0(1)-b/a)/exp(a*(i-1))+b/a; end xx0=[];xx0(1)=x0(1);

Step 2 (1) dx (1) dt +ax1t=u,式中a, u为待定系数。 灰微分方程模型为: x0k+az1k=u,z为背景值 z1k=1/2(x1k+x1k?1) (2) 构造矩阵B和数据向量Y n Y n=Ba Y n=x02 x03 ? x0n , B= ?1/2(x11+x12), ?1/2(x12+x13), ? ?1/2(x1n?1+x1n), 1 1 ? 1 a=a u=(B T B)?1B T Y n Step 3 模型响应函数 x1k+1= x01?u e?ak+ u x0k+1=x1k+1?x1k Step 4 检验和判断GM(1,1)模型的精度(1) 残差检验for i=2:(n+10) xx0(i)=xx1(i)-xx1(i-1); end %关联度检验 for i=1:n e(i)=abs(x0(i)-xx0(i)); end mmax=max(e); for i=1:n ee(i)=0.5*mmax/(e(i)+0.5*mmax); end r=sum(ee)/n; %后验差检验 x0bar=sum(x0)/n; s1=0; for i=1:n s1=s1+(x0(i)-x0bar)^2; end s1=sqrt(s1/n); s2=0; ebar=sum(e)/n; for i=1:n s2=s2+(e(i)-ebar)^2; end s2=sqrt(s2/n); C=s2/s1; p=0; for i=1:n if abs(e(i)-ebar)<0.6745*s1

数学建模之灰色预测模型

、灰色预测模型 简介(P372) 特点:模型使用的不是原始数据列,而是生成的数据列。 优点:不需要很多数据,一般只用4个数据就能解决历史数据少,序列的完整性 和可靠性低的问题。 缺点:只适用于中短期的预测和指数增长的预测。 1、GM(1,1)预测模型 GM(1,1)表示模型为一阶微分方程,且只含有一个变量的灰色模型。 1.1模型的应用 ① 销售额预测 ② 交通事故次数的预测 ③ 某地区火灾发生次数的预测 ④ 灾变与异常值预测,如对旱灾,洪灾,地震等自然灾害的时间与程度进行预报 (百度文库) ⑤ 基于GM(1,1)模型的广州市人口预测与分析(下载的文档) ⑥ 网络舆情危机预警(下载的文档) 1.2步骤 ① 级比检验与判断 由原始数据列x (0) =(x (o ) (1),x (o ) (2),…,x (0)(n))计算得序列的级比为 2 2 若序列的级比(k) -(e^ '.e 0 2),贝U 可用x (0)作令人满意的GM(1,1)建模。 光滑比为 P (k )= k x <0) ( k) \- (0) x (I) i 珀 若序列满足 p(k 1) ::1,k =2,3,…,n-1; p(k) p(k)〔0,T,k=3,4, ,n; 「:: 0.5. ■ (k)二 x (0)(k -1) x (0) (k) ,k - 2,3, , n.

则序列为准光滑序列。 否则,选取常数c 对序列x (0)做如下平移变换 y (o )(k)=x (o ) (k) c,k=1,2「, n, 序列y (0)的级比 、 y 0(k-1) 一 'y (k) (0) ,k = 2,3, , n ? y(k) ② 对原始数据x (0)作一次累加得 x ⑴=(x ⑴(1),X (1)(2),…,x (1)(n)) =(x (0)(1,x (0)(1 +x (0) (2),…,x (0)⑴+…+x (0)(n)). 建立模型: dx ( 1 ) ——ax ⑴=b,( 1) dt ③ 构造数据矩阵B 及数据向量丫 ■ -z (1) ⑵ 1 1 f x (0) (2)1 B = -z ⑴⑶1 9 亍 ,丫二 x (0)(3) a -z ⑴(n) 1_ x (0) (n)J 其中:z ⑴(k) =0.5x ⑴(k) 0.5x ⑴(k -1),k =2,3, ,n. ④ 由 求得估计值召=b?= ⑤ 由微分方程(1)得生成序列预测值为 ( b?) b? x>(1)(k+1)= :x (0)(1)—三 ,k=0,1,…,n —V, l 召丿 召 则模型还原值为 00)(k 1)=0)化 1)-0),k =1,2, ,n-1,. ⑥ 精度检验和预测 残差 ;(k) =x (0)(k)-?(0)(k),k=1,2, ,n, -(B T B)4B T Y u?=

灰色预测模型的Matlab程序及检验程序(精)

灰色预测模型的Matlab 程序及检验程序 %灰色预测模型程序 clear syms a b; c=[a b]'; A=[46.2 32.6 26.7 23.0 20.0 18.9 17.5 16.3];% 原始序列 B=cumsum(A);%累加n=length(A); for i=1:(n-1) C(i)=(B(i)+B(i+1))/2; end %计算待定参数 D=A; D(1)=[]; D=D'; E=[-C; ones(1,n-1)]; c=inv(E*E')*E*D; c=c'; a=c(1); b=c(2); %预测往后预测5个数据 F=[];F(1)=A(1); for i=2:(n+5) F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a; end G=[];G(1)=A(1); for i=2:(n+5) G(i)=F(i)-F(i-1); end t1=2002:2009; t2=2002:2014; G plot(t1,A,'o',t2,G) %灰色预测模型检验程序 function [ q,c,p ] = checkgm( x0,x1 ) %GM 检验函数 %x0 原始序列

%x1 预测序列 %·返回值 % q –- 相对误差 % c -- ·方差比 % p -- 小误差概率 e0=x0-x1; q=e0/x0; s1=var(x0); %qpa=mean(e0); s2=var(e0); c=s2/s1; len=length(e0); p=0; for i=1:len if(abs(e0(i)) < 0.6745*s1) p=p+1; end end p=p/len; end

线性回归和灰色预测模型案例

预测未来2015年到2020年的货运量 灰色预测模型 是通过少量的、不完全的信息,建立数学模型并做出预测的一种预测方法.当我们应用运筹学的思想方法解决实际问题,制定发展战略和政策、进行重大问题的决策时,都必须对未来进行科学的预测. 预测是根据客观事物的过去和现在的发展规律,借助于科学的方法对其未来的发展趋势和状况进行描述和分析,并形成科学的假设和判断. 灰色系统的定义 灰色系统是黑箱概念的一种推广。我们把既含有已知信息又含有未知信息的系统称为灰色系统.作为两个极端,我们将称信息完全未确定的系统为黑色系统;称信息完全确定的系统为白色系统.区别白色系统与黑色系统的重要标志是系统各因素之间是否具有确定的关系。

建模原理 模型的求解

原始序列为: ) 16909 15781 13902 12987 12495 11067 10149 9926 9329 10923 7691())6(),...1(()0()0()0(==x x x 构造累加生成序列 ) 131159,114250,98469,84567,71580,59085, 48018,37869,27943,18614,7691())6(),...1(()1()1()1(==x x x 归纳上面的式子可写为 称此式所表示的数据列为原始数据列的一次累加生成,简称为一次累加生成. 对(1)X 作紧邻均值生成 ,.... 2)) 1()((21)()1() 1() 1(=-+=k k z k z k z MATLAB 代码如下: x=[7691 18614 27943 37869 48018 590857 71580 84567 98469 114250 131159]; z(1)=x(1); for i=2:6 z(i)=0.5*(x(i)+x(i-1)); end format long g z z = Columns 1 through 3 7691 13152.5 23278.5 Columns 4 through 6 32906 42943.5 319437.5

灰色预测MATLAB程序

作用:求累加数列、求a b的值、求预测方程、求残差 clc %清屏,以使结果独立显示 x=[ ]; format long; %设置计算精度 if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换 x=x'; end n=length(x); %取输入数据的样本量 z=0; for i=1:n %计算累加值,并将值赋予矩阵be z=z+x(i,:); be(i,:)=z; end for i=2:n %对原始数列平行移位 y(i-1,:)=x(i,:); end

for i=1:n-1 %计算数据矩阵B的第一列数据 c(i,:)=*(be(i,:)+be(i+1,:)); end for j=1:n-1 %计算数据矩阵B的第二列数据 e(j,:)=1; end for i=1:n-1 %构造数据矩阵B B(i,1)=c(i,:); B(i,2)=e(i,:); end alpha=inv(B'*B)*B'*y; %计算参数矩阵即a b的值 for i=1:n+1 %计算数据估计值的累加数列,如改为n+1为n+m可预测后m-1个值 ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,: );%显示输出预测值的累加数列 end var(1,:)=ago(1,:) %显示输出预测值 for i=1:n %如改n为n+m-1,可预测后m-1个值 var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值end for i=1:n error(i,:)=x(i,:)-var(i,:); %计算残差 end c=std(error)/std(x); %调用统计工具箱的标准差函数计算后验差的比值c ago %显示输出预测值的累加数列 alpha %显示输出参数数列 var %显示输出预测值 error %显示输出误差 c %显示后验差的比值 作用:数据处理判断是否可以用灰色预测、求级比、求累加数列、求a b的值、求预测方程 clc,clear x0=[ ]'; %注意这里为列向量 n=length(x0); lamda=x0(1:n-1)./x0(2:n) %计算级比 range=minmax(lamda') %计算级比的范围 x1=cumsum(x0) %累加运算 B=[*(x1(1:n-1)+x1(2:n)),ones(n-1,1)]; Y=x0(2:n); u=B\Y %拟合参数u(1)=a,u(2)=b x=dsolve('Dx+a*x=b','x(0)=x0'); %求微分方程的符号解

灰色系统新陈代谢模型源码(matlab)

function g(x); %定义函数gm(x) for j=1:10 clc; %清屏,以使计算结果独立显示 format long; %设置计算精度 if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换x=x'; end; n=length(x); %取输入数据的样本量 z=0; for i=1:n %计算累加值,并将值赋与矩阵be z=z+x(i,:); be(i,:)=z; end for i=2:n %对原始数列平行移位 y(i-1,:)=x(i,:); end for i=1:n-1 %计算数据矩阵B的第一列数据 c(i,:)=-0.5*(be(i,:)+be(i+1,:)); end for j=1:n-1 %计算数据矩阵B的第二列数据 e(j,:)=1; end for i=1:n-1 %构造数据矩阵B B(i,1)=c(i,:); B(i,2)=e(i,:); end alpha=inv(B.'*B)*B.'*y; %计算参数α、μ矩阵 for i=1:n+1 %计算数据估计值的累加数列,如改n+1为n+m可预测后m-1个值ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,:); end var(1,:)=ago(1,:) for i=1:n %如改n为n+m-1,可预测后m-1个值 var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值end for i=1:n error(i,:)=var(i,:)-x(i,:); %计算残差 end c=std(error)/std(x); %调用统计工具箱的标准差函数计算后验差的比值c ago %显示输出预测值的累加数列 alpha %显示输出参数α、μ数列 var %显示输出预测值 error %显示输出误差 c %显示后验差的比值c var=fix(var);

灰色预测matlab程序

Matlab的灰色预测程序: y=input('请输入数据'); n=length(y); yy=ones(n,1); yy(1)=y(1); for i=2:n yy(i)=yy(i-1)+y(i) end B=ones(n-1,2); for i=1:(n-1) B(i,1)=-(yy(i)+yy(i+1))/2; B(i,2)=1; end BT=B'; for j=1:(n-1) YN(j)=y(j+1); end YN=YN'; A=inv(BT*B)*BT*YN; a=A(1); u=A(2); t=u/a; t_test=input('输入需要预测的个数'); i=1:t_test+n; yys(i+1)=(y(1)-t).*exp(-a.*i)+t; yys(1)=y(1); for j=n+t_test:-1:2 ys(j)=yys(j)-yys(j-1); end x=1:n; xs=2:n+t_test; yn=ys(2:n+t_test); plot(x,y,'^r',xs,yn,'*-b'); det=0; for i=2:n det=det+abs(yn(i)-y(i)); end det=det/(n-1); disp(['百分绝对误差为:',num2str(det),'%']); disp(['预测值为:',num2str(ys(n+1:n+t_test))]); 请输入数据[29.8 30.11 41.05 70.12 77.79 77.79 104.82 65.22 82.7 100.79] 输入需要预测的个数4

百分绝对误差为:14.5128% 预测值为:110.5718 120.8171 132.0116 144.2434

灰色预测模型理论及其应用

灰色预测模型理论及其应用 灰色系统理论认为对既含有已知信息又含有未知或非确定信息的系统进行预测,就是对在一定方位内变化的、与时间有关的灰色过程的预测. 尽管过程中所显示的现象是随机的、杂乱无章的,但毕竟是有序的、有界的,因此这一数据集合具备潜在的规律,灰色预测就是利用这种规律建立灰色模型对灰色系统进行预测. 灰色预测模型只需要较少的观测数据即可,这和时间序列分析,多元回归分析等需要较多数据的统计模型不一样. 因此,对于只有少量观测数据的项目来说,灰色预测是一种有用的工具.本文主要围绕灰色预测GM(1,1)模型及其应用进行展开。 一、灰色系统及灰色预测的概念 灰色系统 灰色系统产生于控制理论的研究中。 若一个系统的内部特征是完全已知的,即系统的信息是充足完全的,我们称之为白色系统。 若一个系统的内部信息是一无所知,一团漆黑,只能从它同外部的联系来观测研究,这种系统便是黑色系统。 灰色系统介于二者之间,灰色系统的一部分信息是已知的,一部分是未知的。 区别白色和灰色系统的重要标志是系统各因素间是否有确定的关系。 特点:灰色系统理论以“部分信息已知、部分信息未知”的“小样本”、“贫信息”不确定型系统的研究对象。 灰色预测 灰色系统分析方法是通过鉴别系统因素之间发展趋势的相似或相异程度,即进行关联度分析,并通过对原始数据的生成处理来寻求系统变动的规律。生成数据序列有较强的规律性,可以用它来建立相应的微分方程模型,从而预测事物未来的发展趋势和未来状态。灰色预测是用灰色模型GM(1,1)来进行定量分析的,通常分为以下几类: (1) 灰色时间序列预测。用等时距观测到的反映预测对象特征的一系列数量(如产量、销量、人口数量、存款数量、利率等)构造灰色预测模型,预测未来某一时刻的特征量,或

灰色预测模型介绍

数学模型与数学实验数 课程报告 题目:灰色预测模型介绍专业: 班级: 姓名: 学号: 二0一一年六月

1. 模型功能介绍 预测模型为一元线性回归模型,计算公式为Y=a+b。一元非线性回归模型:Y=a+blx+b2x2+…+bmxm。式中:y为预测值;x为自变量的取值;a,b1,b2……bm为回归系数。当自变量x与因变量y之间的关系是直线上升或下降时,可采用一元线性预测模型进行预测。当自变量x和因变量y之间呈曲线上升或下降时,可采用一元非线性预测模型中的y=a+b1x+b2x2+…+bmxm这个预测模型。当自变量x和因变量y之间关系呈上升一下降一再上升一再下降这种重复关系时,可采用一元线性预测模型中的Y=a+bx这个模型来预测。其中我要在这里介绍灰色预测模型。 灰色预测是就灰色系统所做的预测,灰色系统(Grey System)理论[]1是我国著名学者邓聚 龙教授20世纪80年代初创立的一种兼备软硬科学特性的新理论[95]96]。所谓灰色系统是介于白色系统和黑箱系统之间的过渡系统,其具体的含义是:如果某一系统的全部信息已知为白色系统,全部信息未知为黑箱系统,部分信息已知,部分信息未知,那么这一系统就是灰色系统。一般地说,社会系统、经济系统、生态系统都是灰色系统。例如物价系统,导致物价上涨的因素很多,但已知的却不多,因此对物价这一灰色系统的预测可以用灰色预测方法。 灰色系统理论认为对既含有已知信息又含有未知或非确定信息的系统进行预测,就是对在一定方位内变化的、与时间有关的灰色过程的预测。尽管过程中所显示的现象是随机的、杂乱无章的,但毕竟是有序的、有界的,因此这一数据集合具备潜在的规律,灰色预测就是利用这种规律建立灰色模型对灰色系统进行预测。 灰色系统的基本原理 公理1:差异信息原理。“差异”是信息,凡信息必有差异。 公理2:解的非唯一性原理。信息不完全,不明确地解是非唯一的。 公理3:最少信息原理。灰色系统理论的特点是充分开发利用已有的“最少信息”。 公理4:认知根据原理。信息是认知的根据。 公理5:新信息优先原理。新信息对认知的作用大于老信息。 公理6:灰性不灭原理。“信息不完全”是绝对的。 灰色预测通过鉴别系统因素之间发展趋势的相异程度,即进行关联分析,并对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。其用等时距观测到的反应预测对象特征的一系列数量值构造灰色预测模型,预测未来某一时刻的特征量,或达到某一特征量的时间。 灰色预测模型实际上是一个微分方程, 称为GM模型。GM(1,N)[]1表示1阶的,N个 变量的微分方程型模型;则是1阶的,1个变量的微分方程型模型。在实际进行预测时, 一般选用GM(1,1) 模型, 因为这种模型求解较易, 计算量小, 计算时间短, 精度较高。 现在下面简单介绍有关于灰色预测的相关知识点: 为了弱化原始时间序列的随机性 在建立灰色预测模型之前,需先对原始时间序列进行数据处理,经过数据处理后的时间序列即称为生成列。灰色系统常用的数据处理方式有累加和累减两种。 关联度]1[

灰色预测模型matlab程序精确版

灰色预测模型matlab程序 %下面程序是灰色模型GM(1,1)程序二次拟合和等维新陈代谢改进预测程序,mat lab6.5 ,使用本程序请注明,程序存储为gm1.m %x = [5999,5903,5848,5700,7884];gm1(x); 测试数据 %二次拟合预测GM(1,1)模型 function gmcal=gm1(x) sizexd2 = size(x,2); %求数组长度 k=0; for y1=x k=k+1; if k>1 x1(k)=x1(k-1)+x(k); %累加生成 z1(k-1)=-0.5*(x1(k)+x1(k-1)); %z1维数减1,用于计算B yn1(k-1)=x(k); else x1(k)=x(k); end end %x1,z1,k,yn1 sizez1=size(z1,2); %size(yn1); z2 = z1'; z3 = ones(1,sizez1)'; YN = yn1'; %转置 %YN B=[z2 z3]; au0=inv(B'*B)*B'*YN; au = au0'; %B,au0,au

ufor = au(2); ua = au(2)./au(1); %afor,ufor,ua %输出预测的 a u 和 u/a的值 constant1 = x(1)-ua; afor1 = -afor; x1t1 = 'x1(t+1)'; estr = 'exp'; tstr = 't'; leftbra = '('; rightbra = ')'; %constant1,afor1,x1t1,estr,tstr,leftbra,rightbra strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,r ightbra,'+',leftbra,num2str(ua),rightbra) %输出时间响应方程 %****************************************************** %二次拟合 k2 = 0; for y2 = x1 k2 = k2 + 1; if k2 > k else ze1(k2) = exp(-(k2-1)*afor); end end %ze1 sizeze1 = size(ze1,2); z4 = ones(1,sizeze1)'; G=[ze1' z4]; X1 = x1'; au20=inv(G'*G)*G'*X1; au2 = au20'; %z4,X1,G,au20

灰色预测法原理及解题步骤

灰色预测法原理及解题步骤 一、类型 数列预测——某现象随时间的顺延而发生的变化所做的预测 灾变预测——对发生灾害或异常突变时间可能发生的时间预测 系统预测——对系统中众多变量间相互协调关系的发展变化所进行的预测 拓扑预测——将原始数据作曲线,在曲线上按定值寻找该定值发生的所有时点,并以该定值为框架构成时点数列,然后建立模型预测未来该定值所发生的时点。 注意:使用方法前一定要在段前作一个引子,连接问题分析和数据特点,以下便是:通过对已知数据的分析,随着时间的变化,排污量一直呈增长趋势,并且增长的很快。在这里利用灰色预测模型对()进行预测。通过对数据的分析,传统的数理统计预测方法往往需要足够多的数据,而本问题的数据给出的数据偏小,如果采用传统的方法误差太大。根据上述的特点可采用灰色预测模

型。 二、灰色预测具体步骤 1》检验处理数据,级比必须满足 A、如果不全属于,则要做必要的变换处理(如取适当的常数C,作平移变换),使其落入区域中。 B、若A不成立,则建立GM(1,1)模型 建立GM(1,1)模型 (1)一次累加生成数列AGO,(目的是弱化原始时间序列的随机性,增加其稳定程度) (2)求均值数列 (3)建立GM(1,1)模型相应的白化微分方程 其中:α称为发展灰数;μ称为内生控制灰数。 (4)求的参数估计a、b(最小二乘法)

(5)给出累加时间数列预测模型 (6)做差得到原始预测值 三、检验预测值 (1)残差检验 (2)级比偏差值检验 1》参考数据 计算出级比,再由发展系数a,求出相应级比偏差

若ρ(k)<0.2,则达到一般要求;若ρ(k)<0.1,则效果好程序实现: 采用EXCEl的方法实现灰色预测。 2013-2-2 于北华大学 电子 宋方雷

灰色预测模型matlab程序精确版

%x=[1019,1088,1324,1408,1601];gm1(x); 测试数据%二次拟合预测GM(1,1)模型 function gmcal=gm1(x) if nargin==0 x=[1019,1088,1324,1408,1601] end format long g sizex=length(x); %求数组长度 k=0; for y1=x k=k+1; if k>1 x1(k)=x1(k-1)+x(k); %累加生成 z1(k-1)=-0.5*(x1(k)+x1(k-1)); %z1维数减1,用于计算B yn1(k-1)=x(k); else x1(k)=x(k); end end %x1,z1,k,yn1 sizez1=length(z1); %size(yn1); z2 = z1'; z3 = ones(1,sizez1)'; YN = yn1'; %转置 %YN B=[z2 z3]; au0=inv(B'*B)*B'*YN; au = au0'; %B,au0,au afor = au(1); ufor = au(2); ua = au(2)./au(1); %afor,ufor,ua %输出预测的 a u 和 u/a的值 constant1 = x(1)-ua; afor1 = -afor; x1t1 = 'x1(t+1)'; estr = 'exp'; tstr = 't'; leftbra = '(';

rightbra = ')'; %constant1,afor1,x1t1,estr,tstr,leftbra,rightbra strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,rightbra,'+ ',leftbra,num2str(ua),rightbra) %输出时间响应方程 %****************************************************** %二次拟合 k2 = 0; for y2 = x1 k2 = k2 + 1; if k2 > k else ze1(k2) = exp(-(k2-1)*afor); end end %ze1 sizeze1=length(ze1); z4 = ones(1,sizeze1)'; G=[ze1' z4]; X1 = x1'; au20=inv(G'*G)*G'*X1; au2 = au20'; %z4,X1,G,au20 Aval = au2(1); Bval = au2(2); %Aval,Bval %输出预测的 A,B的值 strcat(x1t1,'=',num2str(Aval),estr,leftbra,num2str(afor1),tstr,rightbra,'+',lef tbra,num2str(Bval),rightbra) %输出时间响应方程 nfinal = sizex-1 + 1;(其中+1可改为+5等其他数字,即可预测更多的数字) %决定预测的步骤数5 这个步骤可以通过函数传入 %nfinal = sizexd2 - 1 + 1; %预测的步骤数 1 for k3=1:nfinal x3fcast(k3) = constant1*exp(afor1*k3)+ua; end %x3fcast %一次拟合累加值 for k31=nfinal:-1:0 if k31>1 x31fcast(k31+1) = x3fcast(k31)-x3fcast(k31-1); else if k31>0

数学建模之灰色预测模型修订稿

数学建模之灰色预测模 型 WEIHUA system office room 【WEIHUA 16H-WEIHUA WEIHUA8Q8-

一、灰色预测模型 简介(P372) 特点:模型使用的不是原始数据列,而是生成的数据列。 优点:不需要很多数据,一般只用4个数据就能解决历史数据少,序列的完整性和可靠性低的问题。 缺点:只适用于中短期的预测和指数增长的预测。 1、GM(1,1)预测模型 GM(1,1)表示模型为一阶微分方程,且只含有一个变量的灰色模型。 模型的应用 ①销售额预测 ②交通事故次数的预测 ③某地区火灾发生次数的预测 ④灾变与异常值预测,如对旱灾,洪灾,地震等自然灾害的时间与程度进行预报。(百度文库) ⑤基于GM(1,1)模型的广州市人口预测与分析(下载的文档) ⑥网络舆情危机预警(下载的文档) 步骤 ①级比检验与判断 由原始数据列(0)(0)(0)(0)((1),(2),,())x x x x n =计算得序列的级比为 (0)(0)(1)(),2,3, ,.() x k k k n x k λ-== 若序列的级比()k λ∈ 221 2 (,)n n e e -++Θ=,则可用(0)x 作令人满意的GM(1,1)建模。 光滑比为 (0)1 (0) 1 () ()() k i x k p k x i -== ∑ 若序列满足 [](1) 1,2,3,,1;() ()0,,3,4, ,;0.5. p k k n p k p k k n ??+<=-∈=<

则序列为准光滑序列。 否则,选取常数c 对序列(0)x 做如下平移变换 (0)(0)()(),1,2, ,,y k x k c k n =+= 序列(0)y 的级比 0(0)(1) (),2,3, ,.() y y k k k n y k λ-=∈Θ= ②对原始数据(0)x 作一次累加得 (1)(1)(1)(1)(0)(0)(0)(0)(0)((1),(2),,())(11+(2),,(1)()).x x x x n x x x x x n ==++(),() 建立模型: (1) (1),dx ax b dt += (1) ③构造数据矩阵B 及数据向量Y (1)(1)(1)(2)1(3)1,()z z B z n ??- ??- ? ?=?? ????- 1??(0)(0)(0)(2)3()x x Y x n ??????=?? ?? ???? () 其中:(1)(1)(1()0.5()0.5(1),2,3,,.z k x k x k k n =+-=) ④由 1??()?T T a u B B B Y b -??==???? 求得估计值?a = ?b = ⑤由微分方程(1)得生成序列预测值为 ? (1) (0)???(1)(1)k 0,1,,1,,??ak b b x k x e n a a -??+=-+=- ? ??? , 则模型还原值为 (0)(1)(1)???(1)(1),1,2,,1,.x k x k x k n +=+-=- ⑥精度检验和预测 残差 (0)(0)?()()(),1,2,,,k x k x k k n ε=-=

灰色预测模型原理

灰色预测模型原理 综合预测模型( 灰色预测模型 (1,1)GM ) 为了是更准确的反映市场实际需求情况,我们建立综合预测模型,利用灰色模型 (1,1)GM 对平均销量做确定性增长趋势进行预测。 我们将时间序列2001—2005的实际销量值 (0)t X 累加处理生成新序列(1)t X ,则GM (1,1)模型相应的微分方程为: (1)(1)t t dX X dt αμ+= (20012005t =年 其中 α 为发展灰数 μ 为内生控制灰数 同时通过α?待估参数向量,?ααμ ??= ??? ,利用最小二乘法求解。解得: ()1?T T B B B Y α-= 矩阵B 为 (1)t X 取累加平均值所得 矩阵Y 为 (0)t X 转置矩阵 求解微分方程,即可得预测模型: ()()1011?t t X X e αμμαα-+??=-+???? ,(20012005)t =年 灰色模型算法描述: Step1. 累加处理生成新序列(1)t X Step2. 迭代计算出矩阵B 迭代计算 (1)(1)12t t t X X V ++= (20012004)t =年

得到 11,2111t t V B V --????=?????? Step3. 生成矩阵Y (0)1t t V X += ( 20012004t =年 T t t Y V = Step4. 计算系数矩阵α ? ()1 ?T T B B B Y α-= 解得,αμ Step5. 由得到的灰数,αμ 解微分方程 ()()1011?t t X X e αμμαα-+??=-+??? ? 即 预测出2006年的书号的平均销售量 Step6. 灰色模型残差检验

灰度预测模型详解举例分析

灰色系统预测 重点内容:灰色系统理论的产生和发展动态,灰色系统的基本概念,灰色系统与模糊数学、黑箱方法的区别,灰色系统预测GM (1,1)模型,GM(1,N)模型,灰色系统模型的检验,应用举例。 1灰色系统理论的产生和发展动态 1982邓聚龙发表第一篇中文论文《灰色控制系统》标志着灰色系统这一学科诞生。 1985灰色系统研究会成立,灰色系统相关研究发展迅速。 1989海洋出版社出版英文版《灰色系统论文集》,同年,英文版国际刊物《灰色系统》杂志正式创刊。目前,国际、国内200多种期刊发表灰色系统论文,许多国际会议把灰色系统列为讨论专题。国际著名检索已检索我国学者的灰色系统论著500多次。灰色系统理论已应用范围已拓展到工业、农业、社会、经济、能源、地质、石油等众多科学领域,成功地解决了生产、生活和科学研究中的大量实际问题,取得了显著成果。 2灰色系统的基本原理 2.1灰色系统的基本概念 我们将信息完全明确的系统称为白色系统,信息未知的系统称为黑色系统,部分信息明确、部分信息不明确的系统称为灰色系统。系统信息不完全的情况有以下四种: 1.元素信息不完全 2.结构信息不完全 3.边界信息不完全 4.运行行为信息不完全 2.2灰色系统与模糊数学、黑箱方法的区别 主要在于对系统内涵与外延处理态度不同; 研究对象内涵与外延的性质不同。 灰色系统着重外延明确、内涵不明确的对象,模糊数学着重外延不明确、内涵明确的对象。 “黑箱”方法着重系统外部行为数据的处理方法,是因果关系的两户方法,使扬外延而弃内涵的处理方法,而灰色系统方法是外延内涵均注重的方法。

2.3灰色系统的基本原理 公理1:差异信息原理。“差异”是信息,凡信息必有差异。 公理2:解的非唯一性原理。信息不完全,不明确地解是非唯一的。 公理3:最少信息原理。灰色系统理论的特点是充分开发利用已有的“最少信息”。 公理4:认知根据原理。信息是认知的根据。 公理5:新信息优先原理。新信息对认知的作用大于老信息。 公理6:灰性不灭原理。“信息不完全”是绝对的。 2.4灰色系统理论的主要内容 灰色系统理论经过10多年的发展,已基本建立起了一门新兴学科的结构体系,其主要内容包括以“灰色朦胧集”为基础的理论体系、以晦涩关联空间为依托的分析体系、以晦涩序列生成为基础的方法体系,以灰色模型(G ,M )为核心的模型体系。以系统分析、评估、建模、预测、决策、控制、优化为主体的技术体系。 灰色关联分析 灰色统计 灰色聚类 3灰色系统预测模型 灰色预测方法的特点表现在:首先是它把离散数据视为连续变量在其变化过程中所取的离散值,从而可利用微分方程式处理数据;而不直接使用原始数据而是由它产生累加生成数,对生成数列使用微分方程模型。这样,可以抵消大部分随机误差,显示出规律性。 3.1灰色系统理论的建模思想 下面举一个例子,说明灰色理论的建模思想。考虑4个数据,记为)4(),3(),2(),1()0()0()0()0(

灰色预测MATLAB程序

灰色预测 专设工⑼他QA—叫吋)为原始数列.其1次累 ?加生成数列为恥=妙①曲⑵,…卅何),其中 X° 仇)二工* ° (0.址=1=2= -:n 5-1 卷定义卫的决导数为 d(k) = *町(上)=x 叫咼-x cl)(Jt-l). 令为数列工①的邻值生成数列.即 却(去)=^(*) + (1- a)x0)(t-lX 于是定义GM (L 1)的灰微分方程模型为 d(k)-血⑴住)=K 即或严>(£) + “尹⑻=人⑴ 在式(1)中』。>(灼称为灰导数,我称为发展系数, 弧称为白化背景值,b称为灰作用量乜 将时刻表殳二2「3「/代入(1)式有 V!1「— a y=代⑶ B =I b*- : X闵0)-Z,:](K)1

于是G\I <1?1)複至可表示为Y = Bu. 現在问题归结为求sb 在值。用一元线性回归?即最小二秦法求它们的活计值 为 注二实陌上回归分析中求估计值是用软件计尊的?有标准程序求解,iOmaClab 等。 GM <1? 1>的白化晏 対于G\I <1> 1)的灰微分方程(1) >如果将灰导数打(Q 的时刻 视为连绫变里"则x°)视为时问(函数卅⑺,于是*〉(Q 対血于导数里级 心2 >白化背臬值申的对应于导数卅⑴。于是G\I (1,1)的坝徽 分方樂対应于的白微分 方程为 内?则数堀列X?可以塗互G\I <19 1) 且可以进行页 色预测。否朋,対数摄做适当的克换处理■如平移叢换: 取C 使得鞍据列 严伙)=工⑴伙)+ G 上=1,2,…, 的级比都華住可吝禎盖内。 心⑴⑴ + o?i> (r)二dr <2) GM mi )质色预测的步骤 1 ?教摇的枪绘与处連 为了ftilGAl (1,1)建複方法的可行性,亲要为已知期S 做必要的检蛉 处理。 设原始教据列为了 逛=(乂°(1)*6(2)严炉00; >计算数列的级比 如果所有的级比都落在可容覆盖区间 ? fc = A- 2,3"?

灰色预测模型的MATLAB 程序及检验程序

灰色预测模型的Matlab程序及检验程序%灰色预测模型程序 clear syms a b; c=[a b]'; A=[46.232.626.723.020.018.917.516.3];%原始序列B=cumsum(A);%累加 n=length(A); for i=1:(n-1) C(i)=(B(i)+B(i+1))/2; end %计算待定参数 D=A; D(1)=[]; D=D'; E=[-C;ones(1,n-1)]; c=inv(E*E')*E*D; c=c'; a=c(1); b=c(2); %预测往后预测5个数据 F=[];F(1)=A(1); for i=2:(n+5) F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a; end G=[];G(1)=A(1); for i=2:(n+5) G(i)=F(i)-F(i-1); end t1=2002:2009; t2=2002:2014; G plot(t1,A,'o',t2,G) %灰色预测模型检验程序 function[q,c,p]=checkgm(x0,x1) %GM检验函数 %x0原始序列 %x1预测序列 %·返回值

%q–-相对误差 %c--·方差比 %p--小误差概率 e0=x0-x1; q=e0/x0; s1=var(x0); %qpa=mean(e0); s2=var(e0); c=s2/s1; len=length(e0); p=0; for i=1:len if(abs(e0(i))<0.6745*s1) p=p+1; end end p=p/len; end 等级相对误差q方差比C小误差概论P I级<0.01<0.35>0.95 II级<0.05<0.50<0.80 III级<0.10<0.65<0.70 IV级>0.20>0.80<0.60

灰色预测MATLAB程序

灰色预测M A T L A B程 序 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

灰色预测 作用:求累加数列、求a b的值、求预测方程、求残差 clc %清屏,以使结果独立显示 x=[ ]; format long; %设置计算精度 if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换 x=x'; end n=length(x); %取输入数据的样本量 z=0; for i=1:n %计算累加值,并将值赋予矩阵be z=z+x(i,:); be(i,:)=z; end for i=2:n %对原始数列平行移位 y(i-1,:)=x(i,:); end for i=1:n-1 %计算数据矩阵B的第一列数据 c(i,:)=*(be(i,:)+be(i+1,:)); end for j=1:n-1 %计算数据矩阵B的第二列数据 e(j,:)=1; end for i=1:n-1 %构造数据矩阵B B(i,1)=c(i,:); B(i,2)=e(i,:); end alpha=inv(B'*B)*B'*y; %计算参数矩阵即a b的值 for i=1:n+1 %计算数据估计值的累加数列,如改为n+1为n+m可预测后m-1个值 ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i- 1))+alpha(2,:)/alpha(1,:);%显示输出预测值的累加数列 end var(1,:)=ago(1,:) %显示输出预测值 for i=1:n %如改n为n+m-1,可预测后m-1个值 var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值end for i=1:n error(i,:)=x(i,:)-var(i,:); %计算残差 end c=std(error)/std(x); %调用统计工具箱的标准差函数计算后验差的比值c ago %显示输出预测值的累加数列

相关主题
文本预览
相关文档 最新文档