BP 神经网络的非线性系统建模——非线性函数拟合

  1. BP 神经网络构建根据拟合非线性函数特点确定BP 神经网络结构,由于本次非线性函数有两个输入参数,一个输出参数,所以BP 神经网络结构为2-5-1,即输入层有2 个节点,隐含层有5 个节点,输出层有1 个节点。BP 神经网络训练用非线性函数输入输出数据训练神经网络,使训练后的网络能够预测非线性函数输出。从非线性函数中随机得到2000 组输入输出数据,从中随机选择1900 组作为训练数据,用于网络训练,100 组作为测试数据,用于测试网络的拟合性能。

  2. BP 神经网络主要用到newff、sim 和train3 个神经网络函数,

newff: BP神经网络参数设置函数

函数功能:构建一个BP 神经网络。
函数形式: net = newff (T ,S, TF ,BTF ,BLF,PF ,IPF ,OPF, DDF)
P : 输入数据矩阵。
T :输出数据矩阵。
S:隐含层节点数.
TF :节点传递函数,包括硬限幅传递函数hardlim 、对称硬限幅传递函数hardlims 、线性传递函数pureI in 、正切S 型传递函数tansig 、对数S 型传递函数logsig.
BTF : 训练函数,包括梯度下降BP算法训练函数traingd 、动量反传的梯度下降BP算法训练函数traingdm 、动态自适应学习率的梯度下降BP 算法训练函数trai ngda、动量反传和动态自适应学习率的梯度下降BP 算法训练函数traingd x 、l,evenberg_ Marquardt 的BP 算法训练函数trainlm 。
BLF : 网络学习函数,包括BP 学习规则learngd 、带动量项的BP 学习规则learngdm 。
PF :性能分析函数, 包括均值绝对误差性能分析函数mae、均方差性能分析函数rose.
IPF : 输入处理函数。
OPF , 输出处理函数。
DDF :验证数据划分函数.
一般在使用过程中设置前面6 个参数,后面4 个参数采用系统默认参数。

train :BP神经网络训练函数

函数功能:用训练数据训练BP 神经网络.
函数形式: 〔net,tr ] = train(N ET,X,T,Pi,Ai)
NET : 待训练网络.
X :输入数据矩阵。
T:输出数据矩阵。
Pi : 初始化输入层条件。
Ai :初始化输出层条件。
net : 训练好的网络。
tr : 训练过程记录。
一般在使用过程中设置前面3 个参数,后面2 个参数采用系统默认参数。

sim : BP神经网络预测函数

函数功能:用训练好的BP 神经网络预测函数输出。
函数形式: y=sim(net, x)
net :训练好的网络.
X :输入数据。
Y : 网络预测数据。
  1. 程序实现
%% 该代码为基于BP神经网络的预测算法
%% 清空环境变量
clc
clear%% 训练数据预测数据提取及归一化
%下载输入输出数据
load data input output%从1到2000间随机排序
k=rand(1,2000);
[m,n]=sort(k);%找出训练数据和预测数据
input_train=input(n(1:1900),:)';
output_train=output(n(1:1900));
input_test=input(n(1901:2000),:)';
output_test=output(n(1901:2000));%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);%% BP网络训练
% %初始化网络结构
net=newff(inputn,outputn,5);net.trainParam.epochs=100;
net.trainParam.lr=0.1;
net.trainParam.goal=0.00004;%网络训练
net=train(net,inputn,outputn);%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);%网络预测输出
an=sim(net,inputn_test);%网络输出反归一化
BPoutput=mapminmax('reverse',an,outputps);%% 结果分析figure(1)
plot(BPoutput,':og')
hold on
plot(output_test,'-*');
legend('预测输出','期望输出')
title('BP网络预测输出','fontsize',12)
ylabel('函数输出','fontsize',12)
xlabel('样本','fontsize',12)
%预测误差
error=BPoutput-output_test;figure(2)
plot(error,'-*')
title('BP网络预测误差','fontsize',12)
ylabel('误差','fontsize',12)
xlabel('样本','fontsize',12)figure(3)
plot((output_test-BPoutput)./BPoutput,'-*');
title('神经网络预测误差百分比')
errorsum=sum(abs(error));
  1. 点击(免费)代码中需要的数据data
  2. 运行结果

BP 神经网络的非线性系统建模——非线性函数拟合相关推荐

  1. matlab神经网络(二)-bp神经网络,MATLAB神经网络(2) BP神经网络的非线性系统建模——非线性函数拟合...

    2.1 案例背景 在工程应用中经常会遇到一些复杂的非线性系统,这些系统状态方程复杂,难以用数学方法准确建模.在这种情况下,可以建立BP神经网络表达这些非线性系统.该方法把未知系统看成是一个黑箱,首先用 ...

  2. 一个简单的BP神经网络matlab程序(附函数详解)

    说明:20180604更新 1.此文的程序来自博客:http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html 2.本人对其中涉及到的函数 ...

  3. 遗传算法优化BP神经网络在非线性函数拟合中的应用

    遗传算法优化BP神经网络在非线性函数拟合中的应用 在工程应用中经常会遇到一些复杂的非线性系统,这些系统状态方程复杂,难以用数学方法精确建模.在这种情况下,可以建立BP神经网络表达这些非线性系统.通常B ...

  4. BP神经网络非线性函数拟合

    基于BP神经网络的非线性函数拟合算法流程可以分为BP神经网络构建.BP神经网络训练和BP神经网络预测三步. BP神经网络构建:根据拟合非线性函数特点确定BP神经网络结构. BP神经网络训练:用非线性函 ...

  5. BP神经网络的非线性函数拟合

    BP神经网络主要用到newff,sim 和train3个神经网络函数,各函数解释如下. 1.newff:BP神经网络参数设置函数 函数功能:构建一个BP神经网络. 函数形式:net= newff(P, ...

  6. 基于遗传算法优化的BP神经网络的 非线性函数拟合

    遗传算法 ( GA , Genetic Algorithm ) ,也称进化算法 . 遗传算法是受达尔文的进化论的启发,借鉴生物进化过程而提出的一种启发式搜索算法.因此在介绍遗传算法前有必要简单的介绍生 ...

  7. BP神经网络+遗传算法:求取非线性函数极值(一)

    1.问题描述 对于未知的非线性函数,仅通过函数的输入输出数据难以准确寻找其函数极值,这类问题可以通过利用BP神经网络的非线性拟合能力和遗传算法的非线性寻优能力来解决. 设非线性函数表达式如下: 其函数 ...

  8. bp神经网络训练函数选择,BP神经网络训练过程

    BP神经网络的训练集需要大样本吗?一般样本个数为多少? BP神经网络的训练集需要大样本吗?一般样本个数为多少? BP神经网络样本数有什么影响学习神经网络这段时间,有一个疑问,BP神经网络中训练的次数指 ...

  9. bp神经网络和cnn神经网络,bp神经网络与cnn区别

    深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.Deep ...

  10. 大数据项目(BP神经网络)

    1.基础概念 人工神经网络的概念:其从信息处理角度对人脑神经元网络进行抽象,构建某种简单的模型,按不同的连接方式组成不同的网络.在工程与学术界我们通常把人工神经网络简称为神经网络或类神经网络. 神经网 ...

最新文章

  1. 在Win10 Anaconda中安装Tensorflow
  2. 研究人员利用非线性原理为机器人创造出类似昆虫的步态,脑机接口也可以使用...
  3. 随机生成50个字段的elasticsearch的测试程序输入
  4. sock 文件方式控制宿主机_sock
  5. Oracle监听的静态注册和动态注册
  6. 二叉树的创建_大多数人都不会手写创建并遍历二叉树,一航这里帮你终结了
  7. Linux tee的花式用法和pee
  8. java map转string_【库学科技】32道常见的Java基础面试题
  9. iOS---------- Safe Area Layout Guide before iOS 9.0
  10. 走火入魔的 C/C++ 如何通过编译器预定义的宏值来区分 target OS 是 Windows 还是 Linux...
  11. PyQt5-QComboBox控件使用实现省市级联效果
  12. oozie JAVA Client 编程提交作业
  13. 5.Shell 编程从入门到精通 --- 基本文本处理
  14. 数据分析常见的几种方法
  15. 《你不知道的JavaScript》学习佛系梳理
  16. xp系统怎么进pe修改计算机名,PE下安装原版XP系统装系统图文教程
  17. scikit 线性回归_使用scikit学习线性回归学习和体育运动nba数据数据科学
  18. 支付宝生活号开发配置
  19. Registered driver with driverClassName=oracle.jdbc.driver.OracleDriver was n
  20. Excel中常用技巧

热门文章

  1. python飞机订票系统
  2. 数学建模——主成分分析及spss软件操作
  3. 【python】通讯录制作
  4. 黄山学院计算机作业管理系统,在线作业管理系统
  5. mysql非整型分区_mysql分区
  6. VS2008 ~ VS2019下载地址
  7. 生产调度系统算法模型简要设计
  8. BT种子文件信息库-TorrentinfoLibrary
  9. 高等代数第3版下 [丘维声 著] 2015年版_全国硕士研究生入学统一考试管理类联考综合能力考试大纲(2021年版)...
  10. echarts 图表无数据/空数据 展示“暂无数据”