数学建模神经网络预测模型及程序.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
年 份 (年 ) 1(1988) 2(1989) 3(1990) 4(1991) 5(1992) 6(1993) 7(1994) 8(1995) 实际值 (ERI) 0.1093 0.1110 0.1127 0.1141 0.1154 0.1164 0.1171 0.1175 年 份 (年 ) 9(1996) 10(1997) 11(1998) 12(1999) 13(2000) 14(2001) 15(2002) 16(2003) 实际值 (ERI) 0.1178 0.1179 0.1179 0.1179 0.1179 0.1180 0.1182 0.1185 BP 神经网络的训练过程为 : 先用 1988 年到 2002 年的指标历史数据作为网络的输入 ,用 1989 年到 2003 年的指标历史数据作为网络的输出 ,组成训练集对网络进行训练 ,使之误差 达到满意的程度 ,用这样训练好的网络进行预测 . 采用滚动预测方法进行预测 :滚动预测方法是通过一组历史数据预测未来某一时刻的值 ,然 后把这一预测数据再视为历史数据继续预测下去 ,依次循环进行 ,逐步预测未来一段时期的 值 . 用 1989 年到 2003 年数据作为网络的输入 ,2004 年的预测值作为网络的输出 . 接着用 1990 年到 2004 年的数据作为网络的输入 ,2005 年的预测值作为网络的输出 .依次类推 ,这 样就得到 2010 年的预测值。 目前在 BP 网络的应用中 ,多采用三层结构 . 根据人工神经网络定理可知 ,只要用三层的 BP 网络就可实现任意函数的逼近 . 所以训练结果采用三层 BP 模型进行模拟预测 . 模型训练误 差为 0.00001, 隐层单元数选取 8 个 ,学习速率为 0.05, 动态参数 0.6,Sigmoid 参数 0.9, 最大迭 代次数 3000. 运行 3000 次后 ,样本拟合误差等于 0.00021 。 P=[ 。。。 ]; 输入 T=[ 。。。 ];输出 % 创建一个新的前向神经网络 net_1=newff(minmax(P),[10,1],{tansig,purelin},traingdm) % 当前输入层权值和阈值 inputWeights=net_1.IW{1,1} inputbias=net_1.b{1} % 当前网络层权值和阈值 layerWeights=net_1.LW{2,1} layerbias=net_1.b{2} % 设置训练参数 net_1.trainParam.show = 50; net_1.trainParam.lr = 0.05; net_1.trainParam.mc = 0.9; net_1.trainParam.epochs = 10000; net_1.trainParam.goal = 1e-3; % 调用 TRAINGDM 算法训练 BP 网络 [net_1,tr]=train(net_1,P,T); % 对 BP 网络进行仿真 A = sim(net_1,P); % 计算仿真误差 E = T - A; MSE=mse(E) x=[ 。。。 ];% 测试 sim(net_1,x) 既然题目说的是预测,那么倒数第二行的代码 x=[ 。。。];% 测试, x 的值怎么确定呢,是不 是题目从所给的数据中随便选一组作为测试啊?顺便问一下, 为什么要有这个 x 呢?对未来 的预测和这个 x 有什么关系啊 sim(net_1,x) net_1 是已经训练好的网络(用的是 1988-2003 的数据) 从题目知道网

文档评论(0)

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

至若春和景明,波澜不惊,上下天光,一碧万顷,沙鸥翔集,锦鳞游泳,岸芷汀兰,郁郁青青。

1亿VIP精品文档

相关文档