bp神经网络预测风速matlab模型,BP神经网络模型,预测的数据类别应该怎么改?

clear

clc

load x.txt%将往年的数据存放在txt文本中(这个txt文本里面是四样数据再加上年份列,共20行5列)

x=x';

p=x(1:3,:);

t=x(4,:);%读取数据

n=length(t);%样本长度

times=10;%模拟次数

for k=1:times

[pn,input_str]=mapminmax(p); %数据归一化

[tn,output_str]=mapminmax(t);

net=newff(minmax(pn),[10,1],{'logsig','purelin'},'trainlm'); %形成网络

inputWeights=net.IW{1,1};%  当前输入层权值和阈值

inputbias=net.b{1};

layerWeights=net.LW{2,1}; %  当前网络层权值和阈值

layerbias=net.b{2};

%设置网络参数

net.trainParam.show = 10; %显示训练迭代过程(缺省25)

net.trainParam.lr = 0.01; %学习率(缺省0.01)

net.trainParam.mc = 0.9; %动量因子(缺省0.9)

net.trainParam.epochs = 10000; %最大的训练次数

net.trainParam.goal = 0.001; %训练目的精度

[net,tr]=train(net,pn,tn); %开始训练网络

an=sim(net,pn);

a=mapminmax('reverse',an,output_str); %反归一化

for j=1:n

err(j)=abs(t(j)-a(j))/a(j); %将模拟数据与原有数据进行误差计算

%误差计算

end

%汇率没有改变时,未来三年的预测数据

pnew=[1008115.8   1098495.4   1190375.1

6.99        7.43        8.04

31310.28    31428.76    30891.23];

pnewn=mapminmax('apply',pnew,input_str);

anewn=sim(net,pnewn);

anew=mapminmax('reverse',anewn,output_str);

%汇率改变时,未来三年的预测数据

pnew2=[1008115.8   1098495.4   1190375.1

6.99        7.43        8.04

31310.28*1.05  31428.76*1.05  30891.23*1.05];

pnewn2=mapminmax('apply',pnew2,input_str);

anewn2=sim(net,pnewn2);

anew2=mapminmax('reverse',anewn2,output_str);

yuce(k,:)=anew;

yuce2(k,:)=anew2;%将模拟数据存取

err1(k,:)=err;%计算误差

continue;

end

%误差数据

ave_err=mean(err1);

all_ave_err=mean(ave_err);

ave_yuce=mean(yuce);

ave_yuce2=mean(yuce2);

delta=(ave_yuce2-ave_yuce)./ave_yuce;

ave_delta=mean(delta);

%画图

x=1999:2018;

x2=2019:2021;

plot(x,t,'o',x,a,'-',x2,ave_yuce,'*')%显示这一行的plot中向量长度不同

legend('样本点','以往预测值','未来预测值','Location','SouthEast')

xlabel('年份');ylabel('亿元');

title('过去19年进出口总额对比图及未来几年预测数据点');

2020-2-27 11:27 上传

b4d287d1aacbf0cf95a77c41289acfe6.gif

c5006d1a5b4047f80d42a7082635a87b.gif

54ea4b306bbcef37ebb174c0599111f1.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值