GM(1,1) 灰色方程模型预测人口

  • Post author:
  • Post category:其他


网上有很多介绍的,但公式一堆怎么算出来的都不知道,这次就来说一下怎么用EXCLE来算吧。下面用灰色方程预测模型的基本模式就是套用别人写好的一个灰色系统的初级算法GM(1,1)。若只是拿来应用,试出来效果不好的话,大可不用。

现在有2000年-2010年某市总人口,现在用灰色方程模型来做一下。

第一步,对原始数据(X^(0) )做一次累加生成处理,得到一次累加序列X^(1)

第一个方程中,X^(0)  (1)代表原始数据的第一个数1013.4,k代表时间,从1开始,即2000年为1,依次累加。里面未知参数为a和u,也就是需要求这两个的值,下面就是求解的拆分步骤。方程看不懂也没事,反正也是虚的,最后我把excle表放出来,如果有需要的直接可以改改数套用一下试试。

第二步,求B这个矩阵,也就是求第一步中累加生成数据的滑动平均。

因为是-1/2嘛, 把负号加上,将计算结果改为负数,这样B矩阵就出来了。

第三步,Yn代表从2001年开始的原始数据列,直接复制到B矩阵旁边。

第四步,B和Yn都有了,可以求B^T *B了。EXCLE是可以进行矩阵运算的,先选中2×2的数据框,输入函数mmult(transpose(E3:F12),E3:F12),输完后按Ctrl+Shift+Enter,便可以计算出矩阵运算结果。

第五步,求(B^T *B)^(-1) 逆矩阵运算,同样选中2×2的数据框,输入函数minverse,按Ctrl+Shift+Enter计算出逆矩阵。

第六步,求BT*Yn,这次是选中2×1的矩阵,输入mmult(transpose),同样是按Ctrl+Shift+Enter。

第七步,计算[a,u]^T,选中2×1的矩阵,输入公式,按Ctrl+Shift+Enter计算。得出来a为-0.014,u为997.6。那就可以直接计算u/a=-71024.7

至此,红色部分是公式中所需要的数值,都拆解计算出来了

所以,将求出来的数都代入这个公式

得到方程

在EXCLE里再进行计算,记得按shift+4,u/a等一些数是位置固定的。

这个预测的值是对累加值的预测,需要还原到原始数据的预测值,就是后一个数减去前一个数。第一个数保持不变。这样算出来可以看到从0到10跟2000年至2010年的常住人口数基本上差距大不,还算可以。

可以一直往下拖,需要预测到哪年拖到哪一年,这样算至2035年常住人口是1642.8万人。

有需要这张EXCLE的【一点规划】后台回复【灰色方程】,大可替换一下数据根据自己需要试试。

求关注/(ㄒoㄒ)/~~



版权声明:本文为weixin_45709844原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。