网站大量收购独家精品文档,联系QQ:2885784924

灰色模型应用举例..doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
灰色模型应用举例.

灰色系统模型的应用 现金流量 (单位:十万) 年份 现金流量(单位:十万) 2000 915.31 2001 3067.03 2002 4211.81 2003 5099.5 2004 12618.01 2005 6700.01 2006 4953.75 2007 7781.31 经观察,我们发现2000年和2004年的数据与其他数据相差得太大,将它们作为异常数据,剔除掉,再得到原始序列: 首先应用原来未改进的方法进行预测,X的 1-AGO为: 对作紧邻均值生成 构造 B矩阵和 Y矩阵。 采用matlab编程完成解答: 得于是 , 对参数进行最小二乘估计,采用matlab编程完成解答如下: 则 估计参数: 则GM(1,1)白化方程为 响应时间式为: 采用matlab编程完成解答 由此得模拟序列: 相对误差序列: 平均相对误差: 精度为三级。 与的灰色关联度:关联度为一级。 采用VC编程完成均方差比值C的解答 程序:#includestdio.h #includemath.h void main() { int i; double x[6]={3206.03,4211.81,5099.5,6700.01,4953.75,7781.31};//x为初始序列 double y[6]={3067.03,4423.78,4997.78,5646.27,6378.89,7206.58};//y为模拟序列 double b[6]; double a=0.00,s,c=0.00,d,e=0.00,f,w;//f为S2,s为s1,w为均方差比值C for(i=0;i6;i++) {a+=(x[i]-5302.235)*(x[i]-5302.235);} s=sqrt(a/6); printf(a=%f,s=%f\n,a,s); for(i=0;i6;i++) {b[i]=x[i]-y[i];printf(b[%d]=%f\n,i,b[i]);c+=b[i];} d=c/6; printf(c=%f,d=%f\n,c,d); for(i=0;i6;i++) {e+=(b[i]-d)*(b[i]-d);} f=sqrt(e/6); w=f/s; printf(f=%f,w=%f\n,f,w); } 运行结果: 则,均方差比值为三级。 小误差概率检验: 所以,小概率误差检验是一级。 该模型并非所有检验都合格,且较为重要的相对误差检验是三级,误差较大,如直接应用于实际,会导致较大的误差,造成预测的失真。所以用计算出来的模型直接进行预测时应当慎重。 二、 对已建模型进行改进 下面应用改进的模型: 引入一阶弱化算子D,令 其中, 于是 作为改进后的新序列并按照原来的步骤进行计算。 X的1-AGO为: 对作紧邻均值生成.构造B矩阵和Y矩阵。 采用matlab编程完成解答 且,设,对参数进行最小二乘估计 采用matlab编程完成解答 所以 可得GM(1,1)白化方程 时间响应式为: 采用matlab编程完成解答 由此得模拟序列: 相对误差序列: 采用matlab编程完成解答 平均相对误差: 精度为一级。 与的灰色关联度,采用matlab编程完成解答: 所以 关联度为一级。 采用VC编程完成均方差比值 C的解答 程序如下: #includestdio.h #includemath.h void main() { int i; double x[6]={5302.24,5749.28,6133.64,6478.36,6367.53,7781.31};//x为初始序列 double y[6]={5302.24,5648.95,6044.63,6468.02,6921.07,7405.85};//y为模拟序列 double b[6]; double a=0.00,s,c=0.00,d,e=0.00,f,w;//f为S2,s为s1,w为均方差比值C for(i=0;i6;i++) {a+=(x[i]-6298.46)*(x[i]-6298.46);} s=sqrt(a/6); printf(a=%f,s=%f\n,a,s); for(i=0;i6;i++) {b[i]=x[i]-y[i];printf(b[%d]=%f\n,i,b[i]);c+=b[i];} d=c/6; printf(c=

文档评论(0)

s4c2bg5I + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档