当前位置:首页 > 数学建模之灰色预测模型
4、Verhulst模型
Verhulst模型主要用来描述具有饱和状态的过程,即S型过程。常用于人口预测、生物生长、繁殖预测和产品经济寿命预测等。(例如B题艾滋病疗法的评价及治疗预测) 4.1步骤
①模型的建立 对原始数据x(0)?(x(0)(1),x(0)(2),,x(0)(n))作一次累加得
,x(0)(1)??x(0)(n)). (1)(1)(1) x?(x(1),x(2),,x(1)(n))?(x(0)(),1x(0)()1+x(0)(2),(1)(1)(1) 令z(k)?0.5x(k)?0.5x(k?1),k?2,3,,n,得x(1)的均值生成序列为 ,z(1)(n)).
z(1)?(z(1)(2),z(1)(3),
则得到灰色Verhulst模型为
x(0)?az(1)?b(z(1))2 灰色Verhulst模型的白化方程为
dx(1)?ax(1)?b(x(1))2 (2) dt ②参数求解
构造数据矩阵B及数据向量Y
??z(1)(2)??z(1)(2)??2??x(0)(2)??(1)?(0)?(1)2??z(3)???z(3))?,Y??x(3)? B???????????????????????????????(1)(1)2(0)????z(n)???z(n))???x(n)?????a?????(BTB)?1BTY u??b? 由
?= ?= b 求得估计值a ③解微分方程(2)得灰色Verhulst模型的时间序列响应为
?(0()1)ax? x(k?1) , ?(0)(0)ak????bxbx(1)??a(?1e)??(1) 通过累减还原得
?(0)(k?1)?x?(1)(k?1)?x?(1)(k). x ④精度检验和预测 同GM(1,1)模型。 例题:
某地区年平均降雨量数据如表1。规定?= 320,并认为x(0)(i)??为旱灾。预测下一次发生的时间。
表1 某地区年平均降雨量数据
解:
模型的建立: ①列出原始数据列x(0)?(x(0)(1),x(0)(2),,x(0)(n)),确定在x(0)?320s的条件下0的下限灾变数列x?与其相对应的时刻数列t(0)。
计算光滑比
p(k)?t(0)(k)?ti?1k?1 (0)(i)判断序列t(0)是否满足满足
p(k?1)?1,k?2,3,p(k)
,5; p(k)??0,??,k?3,4,5;??0.5.②对数列t(0)做1次累加,得t。
③建立GM(1,1)模型。
(1)dt(1)?at(1)?b, (1) dt④构造数据矩阵B及数据向量Y
??z(1)(2)??1??x(0)(2)??(1)??(0)??z(3)??1?,Y??x(3)? B??????????????????????????(1)(0)????z(n)??????x(n)??
(1)(1)(1) 其中:z(k)?0.5t(k)?0.5t(k?1),k?2,3,,5.
⑤由
???a?u????(BTB)?1BTY ??b??。 ?,b 求得估计值a
⑥由微分方程(1)得生成序列预测值为
???ak??(0)bb??(k?1)??x(1)??e?,k?0,1,x????aa??(1),n?1,,
则模型还原值为
?(0)(k?1)?x?(1)(k?1)?x?(1),k?1,2,x
预测到第6个和第7个数据。 模型的求解
,n?1,. (1)根据题得:原始数据列x(0)?(390.6,412,320,559.2,380.8,542.4,553,310, 561,300,632,540,406.2,313.8,576,587.6,318.5)
因为当x(0)?320s时的x(0)(i)为异常值,可得下限灾变数列为
0x??(320,310,300,313.8,318.5) 与其相对应的时刻数列为: t(0)= (3,8,10,14,17)
利用matlab计算得出序列光滑。 (2)对数列t(0)做1次累加,得t(1)?(3,11,21,35,52) ?=6.2585 ?= -0.2536 b(3)由步骤③,④,⑤并利用matlab解得a
(4)由步骤⑥,预测得到第6个和第7个数据为
t(0)(6)?22.034,t(0)(7)?28.3946 由于22.034与17相差5.034这表明下一次旱灾将发生在五年以后。
共分享92篇相关文档