• 大小: 89KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: Matlab
  • 标签: 预测  臭氧总量  

资源简介

基于MATLAB的BP神经网络对臭氧总量进行预测,对生产学习有很大的帮助,为科学研究提供参考,主要包括一些训练样本和模型的构建

资源截图

代码片段和文件信息

N2O=[0.101 0.102 0.106 0.109 0.111 0.113 0.114 0.118 0.119 0.122 0.125 0.129 0.132 0.133 ...
    0.135 0.137 0.139 0.142 0.144 0.147 0.151 0.153 0.155 0.157 0.159 0.161];
CFCot=[0.091 0.096 0.102 0.108 0.113 0.117 0.124 0.131 0.136 0.141 0.147 0.152 0.156 0.16 ...
    0.162 0.165 0.166 0.167 0.169 0.17 0.17 0.171 0.171 0.171 0.171 0.171];
CFCoo=[0.039 0.041 0.043 0.045 0.048 0.05 0.053 0.055 0.058 0.061 0.063 0.065 0.066 0.067 ...
    0.067 0.067 0.067 0.067 0.067 0.066 0.066 0.066 0.065 0.065 0.064 0.064];
ozone=[265.7369863 264.4027397 262.1863014 264.6383562 256.2438356 259.8191781 252.5342466 254.7369863 261.5561644...
    251.5287671 257.4383562 253.6383562 258.8690248 250.4506966 247.8975649 257.2696823 255.2685 252.9157609 ...
    245.837527 256.2294319 250.4585185 250.3536513 255.4165116 249.8003694 253.9006126 247.8528705];
p=[N2O;CFCot;CFCoo];     %输入数据矩阵
t=[ozone];               %输出数据矩阵
%对输入矩阵r和输出矩阵c中数据进行归一化处理
[p1pn]=mapminmax(p);
[t1tn]=mapminmax(t);
%创建一个BP网络,训练函数为trainlm隐含层为三层,节点数分别为1896,传递函数分别为logsigpurelintansig
net=newff(pt[1896]{‘logsig‘‘purelin‘‘tansig‘}‘trainlm‘); %建立模型
net.trainParam.show=1000;             %1000次显示一次结果
net.trainParam.lr=0.05;               %学习速度为0.05
net.trainParam.epochs=5000;           %最大训练轮回为5000次
net.trainParam.goal=0.0000004;        %均方误差为0.0000004
net=train(netp1t1);                 %开始训练,p1t1分别为输入输出的训练数据
%利用原始数据(p1)对BP网络仿真检验模型
an=sim(netp1);                       %用训练好的模型进行仿真
a=mapminmax(‘reverse‘antn);         %把仿真得到的数据还原为原始的数量级;
%本例因样本容量有限使用训练数据进行测试,通常必须用新鲜数据进行测试
x=1979:2004;
newo=a(1:);
plot(xnewo‘r-o‘xozone‘b--+‘) %绘值公路臭氧总量对比图
legend(‘网络输出臭氧总量‘‘实际臭氧总量‘);
xlabel(‘年份‘);ylabel(‘DU‘);
error=abs(newo-ozone)/ozone;         %计算相对误差
%利用训练好的网络进行预测
%用训练好的网络对新数据pnew进行预测时,也应作相应的处理
pnew=[0.163 0.164;0.172 0.172;0.063 0.062];  % 2005年和2006年的相关数据
pnewn=mapminmax(pnew);    %利用原始输入数据的归一化参数对新数据进行归一化
anewn=sim(netpnewn);     %利用归一化后的数据进行仿真
anew=mapminmax(‘reverse‘anewntn);  %把仿真得到的数据还原为原始的数量级










 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       12673  2018-04-14 14:15  基于MATLAB的BP神经网络的臭氧总量预测\net.mat
     文件        2366  2018-04-14 14:26  基于MATLAB的BP神经网络的臭氧总量预测\predict_ozone.m
     文件       84165  2018-04-14 15:04  基于MATLAB的BP神经网络的臭氧总量预测\补充内容.docx
     目录           0  2020-09-01 13:39  基于MATLAB的BP神经网络的臭氧总量预测\

评论

共有 条评论