灰色预测[GM(11)]MATLAB程序+改进+GM(1,m)多变量的+自己整理并运行过的_第1页
灰色预测[GM(11)]MATLAB程序+改进+GM(1,m)多变量的+自己整理并运行过的_第2页
灰色预测[GM(11)]MATLAB程序+改进+GM(1,m)多变量的+自己整理并运行过的_第3页
灰色预测[GM(11)]MATLAB程序+改进+GM(1,m)多变量的+自己整理并运行过的_第4页
灰色预测[GM(11)]MATLAB程序+改进+GM(1,m)多变量的+自己整理并运行过的_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、灰色预测gm(1,1) matlab程序% 本程序主要用来计算根据灰色理论建立的模型的预测值。% 应用的数学模型是 gm(1,1)。% 原始数据的处理方法是一次累加法。x0=input(请输入数据 );%输入数据请用如例所示形式:48.7 57.17 68.76 92.15n=length(x0);x1=ones(n,1);x1(1)=x0(1);for i=2:nx1(i)=x1(i-1)+x0(i);endb=ones(n-1,2);for i=1:(n-1) b(i,1)=-(x1(i)+x1(i+1)/2; b(i,2)=1;endbt=b;for j=1:n-1 yn(j)=x0(j

2、+1);endyn=yn;a=inv(bt*b)*bt*yn;a=a(1);u=a(2);t=u/a;t_test=input(请输入需要预测个数:);i=1:t_test+n;x1s(i+1)=(x0(1)-t).*exp(-a.*i)+t;x1s(1)=x0(1);for j=n+t_test:-1:2 x0s(j)=x1s(j)-x1s(j-1);endx=1:n;xs=2:n+t_test;x0ss=x0s(2:n+t_test);plot(x,x0,r,xs,x0ss,*-b);det=0;for i=2:n det=det+abs(x0s(i)-x0(i);enddet=det/(

3、n-1);disp(百分绝对误差为:,num2str(det),%);disp(预测值为: ,num2str(x0s(n+1:n+t_test);改进程序1(优化c值,c为微分方程的解的常数)见论文“刘发全,职承杰.灰色预测gm(1,1)模型的一点改进”% 本程序主要用来计算根据灰色理论建立的模型的预测值。% 应用的数学模型是 gm(1,1)。% 原始数据的处理方法是一次累加法。clearjm=xlsread(测试温度); x0=jm;%input(请输入数据 );%输入数据请用如例所示形式:48.7 57.17 68.76 92.15n=length(x0);x1=ones(n,1);x1(

4、1)=x0(1);for i=2:nx1(i)=x1(i-1)+x0(i);endb=ones(n-1,2);for i=1:(n-1) b(i,1)=-(x1(i)+x1(i+1)/2; b(i,2)=1;endbt=b;for j=1:n-1 yn(j)=x0(j+1);endyn=yn;a=inv(bt*b)*bt*yn;a=a(1);u=a(2);for i=1:n-1 h1=0;h1=h1+exp(-a.*i)/x0(i+1);h2=0;h2=h2+(exp(-a.*i)/x0(i+1)2;endt=u/a;h3=(x0(1)-t)*(1-exp(a)(-1)/(x0(1)2);h4

5、=(1-exp(a)(-1)/(x0(1)2;%c=(h1+h3)/(h2+h4);c=h1/h2;t_test=10;%input(请输入需要预测个数:);i=1:t_test+n;x0s(i)=c*exp(-a*i);x=1:n;xs=2:n+t_test;x0ss=x0s(2:n+t_test);plot(x,x0,r,xs,x0ss,*-b);det=0;for i=2:n det=det+abs(x0s(i)-x0(i);enddet=det/(n-1);disp(百分绝对误差为:,num2str(det),%);disp(预测值为: ,num2str(x0s(n+1:n+t_tes

6、t);改进程序2对中的进行调节,不在是取均值(=2)。直到误差达到最小clearjm=xlsread(测试温度);x0=jm;%input(请输入数据 );%输入数据请用如例所示形式:48.7 57.17 68.76 92.15for p=0:0.01:1; n=length(x0);x1=ones(n,1);x1(1)=x0(1);for i=2:nx1(i)=x1(i-1)+x0(i);endb=ones(n-1,2);for i=1:(n-1) b(i,1)=-(p*x1(i)+(1-p)*x1(i+1); b(i,2)=1;endbt=b;for j=1:n-1 yn(j)=x0(j+

7、1);endyn=yn;a=(inv(bt*b)*bt)*yn;a=a(1);u=a(2);t=u/a;for i=1:n-1h1=0;h1=h1+x0(i+1)*exp(-a*i);h2=0;h2=h2+exp(-2*a*i);endh3=(x0(1)-t)*(1-exp(a)(-1);h4=(1-exp(a)(-2);%c=(x0(1)-t)*(1-exp(a)+h1*(1-exp(a)2)/(1+h2*(1-exp(a)2);c=(h1+h3)/(h2+h4);t_test=10;%input(请输入需要预测个数:);i=1:t_test+n;x0s(i)=c*exp(-a*i);x=1

8、:n;xs=2:n+t_test;x0ss=x0s(2:n+t_test);figureplot(x,x0,r,xs,x0ss,*-b);det=0;for i=2:n det=det+abs(x0s(i)-x0(i);enddet=det/(n-1);disp(百分绝对误差为:,num2str(det),%);disp(预测值为: ,num2str(x0s(n+1:n+t_test);end多变量gm(1,m)clear allclc%输入待预测时刻 k 及原始序列 x0x0=48.1 166.2; 509.3 175.9; 532.9 200.1;544.5 258.1;554.2 293

9、.5;576.7 334.8;617.3 376.4;618.2 405.9;623.5 421.3;614.7 390.1;621.0 389.7;%对原始序列 x0 累加生成序列 x1n,m=size(x0);t_test=input(请输入需要预测个数:);k=n+t_test;for j=1:m c=0;for i=1:nc=x0(i,j)+c;x1(i,j)=c;endend%计算数据矩阵 lfor j=1:mfor i=1:n-1l(i,j)=(x1(i,j)+x1(i+1,j)/2;endendl=l ones(n-1,1);%计算 y 及参数估计值for j=1:my(1:n-1,j)=x0(2:n,j);a(:,j)=inv(l*l)*l*y(1:n-1,j) ;enda=a;a=a(1:end,1:end- 1);b=a(1:end,end);%计算模型的拟合值或预测值s=x1(1,1:end);x0s(1:m,1)=s;for k=2:n+t_testx0s(1:m,k)=e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论