mdsk.net
当前位置:首页 >> MATLAB里Bp神经网络怎么做滚动预测 >>

MATLAB里Bp神经网络怎么做滚动预测

你说的应该是预测控制吧,先用bp神经网络建立模型,然后用预测控制进行滚动优化.

训练完成后保存模型,再将要预测的输入数据输入模型,出来的结果就是了

原理就是:建立网络-数据归一化-训练-预测-数据反归一化.附件是电力负荷预测的例子,可以参考.BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一.BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程.它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小.BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer).

建立样本.可以以前一个月、前两个月、前三个月、前12个月、前24个月的数据作为输入,共5个数据.输出就是当月的价格,输出为1个数据.按照这个原则组织样本.归一化.matlab中mapminmax函数.建立网络并训练.newff函数和train函数.预测.用sim函数.你这里是要预测一段连续的时间,所以可能需要滚动式预测,即用预测出来的数据继续进行下一次的预测.参考附件的代码,附件是一个电力负荷预测的实例.

利用matlab做神经网络预测,可按下列步骤进行:1、提供原始数据2、训练数据预测数据提取及归一化3、BP网络训练4、BP网络预测5、结果分析

P=[];输入T=[];输出% 创建一个新的前向神经网络 net_1=newff(minmax(P),[10,1],,'traingdm')% 当前输入层权值和阈值inputWeights=net_1.IWinputbias=net_1.b% 当前网络层权值和阈值layerWeights=net_1.LWlayerbias=net_1.b

b{1}% 当前网络层权值和阈值layerWeights=net_1.].9.05.lr = 0;traingdm'.;purelin'.epochs = 10000;% 计算仿真误差 E = T - A,[10,tr]=train(net_1;tansig'.;.]'.b{2}% 设置训练参数net_1,P..trainParam;net_1.IW{1;net_1,1}layerbias=net_1.];}.

给你个例子如下,net=newff(inputn,outputn,[8,4],{'tansig','purelin'},'trainscg');%初始化网络结构%网络参数配置(迭代次数、学习率、目标)net.trainParam.epochs=3000;net.trainParam.lr=0.08;net.trainParam.goal=0.05;net.divideFcn = '';[net,tr]=

直接用神经网络工具箱里面的函数做: d = [ 1 0.31 0.27 0.41 0.2 0.6 0.21 2 0.31 0.27 0.41 0.2 0.7 0.19 3 0.31 0.27 0.41 0.2 0.8 0.17 4 0.31 0.39 0.63 0.5 0.6 0.62 5 0.31 0.39 0.63 0.5 0.7 0.63 6 0.31 0.39 0.63 0.5 0.8 0.65 7 0.31 0.51 0.85 0.8 0.6

你可以在你的程序后面输入你的想要的输入,格式要正确,然后利用你的网络,

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com