求用matlab编BP神经网络预测程序

求用matlab编BP神经网络预测程序,第1张

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)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

不可能啊 我2009

%由于数据比较大,我又懒得用归一化,所以直接把数据悔旅降了3个数量级,

%不过我觉得应该没问搭凯题,但用归一化结果应该更准确些。。

%由于初始权值和阀值均是随机给的,所以每次仿真都有碧枝凳点点不同,这是正常的。

p=[1183 1303 12781303 1278 12841278 1284 1187 ...

1284 1187 11541187 1154 12671154 1267 1241...

1267 1241 13021241 1302 11951302 1195 1256]'*0.001

t=[ 1284 1187 1154 1267 1241 1302 1195 1256 1348]*0.001

net=newff(minmax(p),[3,1],{'tansig','purelin'},'traingda')

net.trainParam.goal=0.001

net.trainParam.show=20

net.trainParam.epochs=1000

net.trainParam.min_grad=1e-10

net.trainParam.mc=0.95

[net,tr]=train(net,p,t)

t1=sim(net,[1302 1195 1256]'*0.001)

t2013=t1*1000%2013 的 预测 数据

运行结果:

t2013 =

1301.9

a=randn(100,20) 桥陆差        悉改                 %20列100行的随机数

meanvalue=mean(a)               敏皮         %20列数,对应a每列的平均值

maxminvalue=max(a)-min(a)                %20列数,对应a的最大减最小值

stdvalue=std(a,0) %除以n-1的变准差        %20列数,对应a每列的标准差

%如果要除以n的标准差 stdvalue=std(a,1)

stdall=std(meanvalue,0)                  %1个数,对于20个平均值的标准差


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8266707.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存