资源简介
本程序根据训练好的网络文件ANN.mat预测新的数据文件,得到均方误差,并画出预测数据和原数据的对比图。
代码片段和文件信息
%%
%对程序的说明%
%做生成数(使用0.1做因子)之后13年的数据按统计方法标准化后输入训练仿真对比结果。这个过程相当于插值计算%
%输出结果请最后五句r1rlplotyy(ktokt)plotyy(kakf)%
%这样做的缺点是不能检验预测效果的好坏还有一点我对网络初始化的过程没有把握%
% 感谢亲亲使用此代码,此代码解决您的问题了吗~(@^_^@)~
% 没解决的话告诉亲亲一个好消息,登录淘宝店铺“大成软件工作室”,可以下载(????)1分钱成品代码(′▽‘〃)哦~
% 是的,亲亲真的没有看错,挠破头皮的问题真的1分钱就可以解决了(づ??????)づ
% 小的这就把传送门给您,记得要收藏好哦(づ ̄3 ̄)づ╭?~
% 传送门:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-15151018122.5.uwGoq5&id=538759553146
% 如果传送门失效,亲亲可以来店铺讨要,客服MM等亲亲来骚扰哦~(*/ω╲*)
%web https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-15151018122.5.uwGoq5&id=538759553146 -browser
clear
% 数据输入
inv=[189.6 244.2 328.5 405.3 487.5 568.6 669.9 801.6 785.9 859.2 979.7 1086.3 1241];
d1=[15.3 16.6 17.2 22.8 37.6 30.8 38.9 50.8 58.2 41.2 55.8 71.7 82.3];
d2=[117.7 140.7 177.8 209.8 247.7 290.8 343.2 337.1 308.1 353.6 350.1 367.2 415.7];
d3=[56.6 86.9 133.5 172.6 202.2 247 287.8 413.7 419.6 464.4 573.8 647.4 742.1];
f=[822.3 959.7 1198.4 1607.5 1997.6 2380.9 2683.8 2798.9 2897.4 3253 3561 3882 4433];
k=1991:1:2003;
% 使用13年数据训练得到网络仿真计算相对误差
%对原始数据初始化的过程为t(1)=f(1); t(i)=t(i-1)+0.1*f(i)(i=2:13)
% 累加 p1(1)=d1(1);for i=2:13 p1(i)=0.1*d1(i)+p1(i-1);end %
% 累减 a(1)=v(1);for i=2:13 a(i)=(v(i)-v(i-1))*10;end %
% 先赋予0值
p1=zeros(113);p2=zeros(113);p3=zeros(113);t=zeros(113);
p1(1)=d1(1);for i=2:13 p1(i)=0.*d1(i)+p1(i-1);end
p2(1)=d2(1);for i=2:13 p2(i)=0.1*d2(i)+p2(i-1);end
p3(1)=d3(1);for i=2:13 p3(i)=0.1*d3(i)+p3(i-1);end
t(1)=f(1);for i=2:13 t(i)=0.1*f(i)+t(i-1);end
b=[p1;p2;p3;t]‘;
p=[(p1-mean(p1))./std(p1);(p2-mean(p2))./std(p2);(p3-mean(p3))./std(p3)];
tt=(t- mean(t))./std(t);%数据标准化处理标准化为网络输入p期望输出tt
%建立网络并训练
net=newff(minmax(p)[41]{‘tansig‘‘purelin‘}‘trainlm‘);
net.iw{11}=zeros(size(net.iw{11}))+0.5;
net.lw{21}=zeros(size(net.lw{21}))+0.75;
net.b{11}=zeros(size(net.b{11}))+0.5;
net.b{21}=zeros(size(net.b{21}));
net.trainParam.epochs=3000;
net.trainParam.goal =0.000005;
net=train(netptt);
%网络仿真得到网络输出,并计算误差
tt1=sim(netp);
to=tt1.*std(t)+mean(t);%利用标准化的逆变换得到t1的近似值to
a=zeros(113);a(1)=to(1);
for i=2:13 a(i)=(to(i)-to(i-1))*10; end %累减得到近似的实际产值a
r_net=(tt1-tt)./tt;%网络相对误差
r_add=(to-t)./t;%总产值累加数相对误差
r_real=(a-f)./f;%实际总产值相对误差
%输出结果%
r1=[r_net;r_add;r_real]‘%网络相对误差/累加数相对误差/实际值相对误差
r=r_real./r_add %误差放大倍数
l=[to;t;to-t;a;f;a-f]‘%累加数计算值/累加数/绝对误差//计算的实际值/实际值/绝对误差
plotyy(ktokt);%总产值的仿真累加值(to)随时间变化曲线与实际累加值(t)随时间变化曲线
%在这里设置断点以查看这两条曲线%
plotyy(kakf);%总产值的仿真值(a)随时间变化曲线与实际值(f)随时间变化曲线
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3054 2018-03-18 19:36 BP神经网络MATLAB代码\BPmatlab.m
目录 0 2018-03-18 19:36 BP神经网络MATLAB代码\
- 上一篇:matlab 非结构化网格划分
- 下一篇:用MATLAB实现雷达信号的模糊函数图
相关资源
- BP神经网络实现图像压缩MATLAB
- 遗传算法优化BP神经网络程序
- BP神经网络预测的MATLAB实现
- MATLAB应用BP神经网络对英文字母的识别
- BP神经网络在遥感图像中的分类
- 在MATLAB中用BP神经网络进行数据分类
- BP神经网络Matlab程序--绝对经典
- BP神经网络和混沌神经网络
- MATLAB环境下用BP神经网络进行数据分类
- BP神经网络数字识别matlab2014a
- 多层bp神经网络代码附带数据集
- MATLAB BP神经网络工具箱
- bp神经网络算法的一个matlab实现
- matlab BP神经网络 0-9数字识别
- 遗传算法优化BP神经网络,以非线性函
- 基于遗传算法的BP神经网络MATLAB代码
- matlab BP神经网络的动量梯度下降算法
- MATLAB 3层BP神经网络资源
- BP网络训练MATLAB程序
- BP神经网络 拟合正弦曲线的
- 基于matlab的车牌识别,采用的是BP神经
- 利用GA-BP神经网络算法的应用之MATLA
-
Simuli
nk_BP神经网络PID控制 - bp神经网络工具箱
- BP神经网络预测交通量
- matlab当中单层的BP神经网络不使用工具
- 机器学习_BP反向传播算法_MATLAB
- matlab bp神经网络包括数据.mat
- 粒子群算法求解BP神经网络参数
- BP神经网络matlab(简单而经典).
评论
共有 条评论