灰色预测最经典代码

[复制链接]
妖刀 发表于 2017-9-19 15:46 | 显示全部楼层 |阅读模式
灰色预测MATLAB代码:
  1. ******************************************************
  2. ********************关联度计算************************
  3. ******************************************************
  4. clc,clear
  5. load x.txt
  6. for i=1:15
  7.     x(i,:)=x(i,:)/x(i,1);
  8. end
  9. for i=16:17
  10.     x(i,:)=x(i,1)./x(i,:);
  11. end
  12. data=x;
  13. n=size(data,1);
  14. ck=data(1,:);m1=size(ck,1);
  15. bj=data(2:n,:);m2=size(bj,1);
  16. for i=1:m1
  17.     for j=1:m2
  18.         t(j,:)=bj(j,:)-ck(i,:);
  19.     end
  20.     jc1=min(min(abs(t')));jc2=max(max(abs(t')));
  21.     rho=0.5;
  22.     ksi=(jc1+rho*jc2)./(abs(t)+rho*jc2);
  23.     rt=sum(ksi')/size(ksi,2);
  24.     r(i,:)=rt;
  25. end
  26. r
  27. [rs,rind]=sort(r,'descend')

  28. [m,n]=size(x);
  29. for i=1:m
  30.     k=1:n;
  31.     Theta(i)=sum(k.*x(i,1:n))-sum(x(i,1:n))*sum(k/n);
  32. end
  33. ANS_SIGN=sign(Theta)
  34. ******************************************************************
  35. ***************************运行结果*******************************
  36. ******************************************************************
  37. r =

  38.   Columns 1 through 7

  39.     0.5881    0.6627    0.8536    0.7763    0.8549    0.5022    0.6592

  40.   Columns 8 through 14

  41.     0.5820    0.6831    0.6958    0.8955    0.7047    0.9334    0.8467

  42.   Columns 15 through 16

  43.     0.6970    0.8258
  44. ANS_SIGN =

  45.   Columns 1 through 12

  46.      1     1     1     1     1     1     1     1     1     1     1     1

  47.   Columns 13 through 17

  48.      1     1     1     1     1
  49. *********************************************************************
  50. *********************************************************************
  51. *********************************************************************

  52. *********************************************************************
  53. ************************投资和收入关联矩阵***************************
  54. *********************************************************************

  55. clc,clear
  56. load data.txt
  57. n=size(data,1);
  58. for i=1:n
  59. data(i,:)=data(i,:)/data(i,1);
  60. end
  61. ck=data(6:n,:);m1=size(ck,1);
  62. bj=data(1:5,:);m2=size(bj,1);
  63. for i=1:m1
  64. for j=1:m2
  65. t(j,:)=bj(j,:)-ck(i,:);
  66. end
  67. jc1=min(min(abs(t')));jc2=max(max(abs(t')));
  68. rho=0.5;
  69. ksi=(jc1+rho*jc2)./(abs(t)+rho*jc2);
  70. rt=sum(ksi')/size(ksi,2);
  71. r(i,:)=rt;
  72. end
  73. r
  74. *********************************************************************
  75. *****************************运行结果********************************
  76. *********************************************************************
  77. r =

  78.     0.8016    0.7611    0.5570    0.8102    0.9355
  79.     0.6887    0.6658    0.5287    0.8854    0.8004
  80.     0.8910    0.8581    0.5786    0.5773    0.6749
  81.     0.6776    0.6634    0.5675    0.7800    0.7307
  82.     0.8113    0.7742    0.5648    0.8038    0.9205
  83.     0.7432    0.7663    0.5616    0.6065    0.6319
  84. **********************************************************************
  85. **********************************************************************
  86. **********************************************************************

  87. **********************************************************************
  88. ********************************旱灾预测******************************
  89. **********************************************************************
  90. clc,clear
  91. a=[390.6,412,320,559.2,380.8,542.4,553,310,561;
  92. 300,632,540,406.2,313.8,576,587.6,318.5,0];
  93. t0=find(a<=320);
  94. t1=cumsum(t0);n=length(t1);
  95. B=[-0.5*(t1(1:end-1)+t1(2:end)),ones(n-1,1)];Y=t0(2:end);
  96. r=B\Y
  97. y=dsolve('Dy+a*y=b','y(0)=y0');
  98. y=subs(y,{'a','b','y0'},{r(1),r(2),t1(1)});
  99. yuce1=subs(y,'t',[0:n+1])
  100. digits(6),y=vpa(y)
  101. yuce=diff(yuce1);
  102. yuce=[t0(1),yuce]
  103. **********************************************************************
  104. *****************************运行结果*********************************
  105. **********************************************************************
  106. r =

  107.    -0.2270
  108.     6.5358


  109. yuce1 =

  110. [ 2, (71012758924377989423*exp(4096/18047))/2305843009213693952 - 66401072905950601519/2305843009213693952, (71012758924377989423*exp(8192/18047))/2305843009213693952 - 66401072905950601519/2305843009213693952, (71012758924377989423*exp(12288/18047))/2305843009213693952 - 66401072905950601519/2305843009213693952, (71012758924377989423*exp(16384/18047))/2305843009213693952 - 66401072905950601519/2305843009213693952, (71012758924377989423*exp(20480/18047))/2305843009213693952 - 66401072905950601519/2305843009213693952, (71012758924377989423*exp(24576/18047))/2305843009213693952 - 66401072905950601519/2305843009213693952, (71012758924377989423*exp(28672/18047))/2305843009213693952 - 66401072905950601519/2305843009213693952]


  111. y =

  112. 30.7969*exp(0.226963*t) - 28.7969


  113. yuce =

  114. [ 2, 0, 0, 0, 0, 0, 0, 0, 0]
  115. ************************************************************************
  116. ************************************************************************
  117. ************************************************************************

  118. ************************************************************************
  119. ******************************交通噪声**********************************
  120. ************************************************************************
  121. clc,clear
  122. x0=[71.1 72.4 72.4 72.1 71.4 72.0 71.6 0];
  123. n=length(x0);
  124. lamda=x0(1:n-1)./x0(2:n)
  125. range=minmax(lamda)
  126. x1=cumsum(x0)
  127. for i=2:n
  128. z(i)=0.5*(x1(i)+x1(i-1));
  129. end
  130. B=[-z(2:n)',ones(n-1,1)];
  131. Y=x0(2:n)';
  132. u=B\Y
  133. x=dsolve('Dx+a*x=b','x(0)=x0');
  134. x=subs(x,{'a','b','x0'},{u(1),u(2),x1(1)});
  135. yuce1=subs(x,'t',[1:n-1]);
  136. digits(6),y=vpa(x)
  137. yuce=[x0(1),diff(yuce1)]
  138. epsilon=x0-yuce
  139. delta=abs(epsilon./x0)
  140. rho=1-(1-0.5*u(1))/(1+0.5*u(1))*lamda
  141. ************************************************************************
  142. **********************************计算结果******************************
  143. ************************************************************************
  144. lamda =

  145.     0.9820    1.0000    1.0042    1.0098    0.9917    1.0056


  146. range =

  147.     0.9820    1.0098


  148. x1 =

  149.    71.1000  143.5000  215.9000  288.0000  359.4000  431.4000  503.0000


  150. u =

  151.     0.0023
  152.    72.6573
  153. y =

  154. 31000.0 - 30928.9*exp(-0.00234379*t)


  155. yuce =

  156. [ 711/10, 0, 0, 0, 0, 0, 0]


  157. epsilon =

  158. [ 0, 362/5, 362/5, 721/10, 357/5, 72, 358/5]


  159. delta =

  160. [ 0, 1, 1, 1, 1, 1, 1]


  161. rho =

  162.     0.0203    0.0023   -0.0018   -0.0074    0.0107   -0.0032
  163. ***********************************************************************
  164. ***********************************************************************
  165. ***********************************************************************

  166. ***********************************************************************
  167. ************************
复制代码


GM11.m

1022 Bytes, 下载次数: 7, 下载积分: 军费 -2

回复

使用道具 举报

小六六 发表于 2017-10-15 01:10 | 显示全部楼层
顶顶顶顶顶
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们
关于我们
免责声明
帮助中心
常见问题
意见反馈
论坛规则
加入我们
版主招募
人才招聘
竞赛合作
高校合作
社团加盟
联系我们
客服QQ:2563054446
官方微信号:
请在工作日10:00-19:00联系客服
关注微信公众号
返回顶部
快速回复 返回顶部 返回列表