【智能控制实验】基于MATLAB的BP神经网络实现非线性函数拟合设计

基于MATLAB的BP神经网络实现非线性函数拟合设计

一、实验要求:

重点是掌握BP神经网络的学习算法原理,掌握matlab工具箱设计BP神经网络拟合非线性模型的方法(m文件);掌握在图形用户界面下设计BP神经网络拟合非线性模型的方法。

设计前馈型网络,在区间[-4,4]上逼近函数img

参考参数设置:

1.1 输入变量和目标输出:

indata=-4:0.1:4;

targetdata=0.35*(1-indata+2*indata.*indata).*exp(-indata.*indata/2) ;

1.2 网络结构

3层BP网络,隐层10个神经元,隐层和输出层激发函数为正切S型传递函数。训练函数为:trainlm。

二、实验内容

2.1掌握matlab工具箱设计BP神经网络拟合非线性模型的方法(m文件)

newff:前馈网络创建函数

语法:

net = newff(A,B,{C},’trainFun’,’BLF’,’PF’)。

A:一个n*2的矩阵,第i行元素为输入信号Xi的最大最小值

B:一个K维行向量,其元素为网络中各个节点的数量。

C:一个K维字符串行向量,每一个分量为对应层的神经元的激活函数,默认为“tansig”

trainFun:为学习规则的采用的训练算法。默认为:“trainlm”

BLF:BP权值/偏差学习函数。默认为:“learngdm”

PF:性能函数,默认为“mse”


train函数

语法:

即网络学习函数:

[net,tr,YI,E] = train(net,X,Y)

X:网络实际输入

Y:网络应有输出

tr:网络跟踪信息

YI:网络实际输出

E:误差矩阵
sim函数

**语法:**Y = sim(net,X)

X:输入给网络的K*N矩阵,K为网络输入个数,N为样本数据量

Y:输出矩阵Q*N,其中Q为网络输出个数
2.1.1 实验代码:
indata=-4:0.1:4;
targetdata=0.35*(1-indata+2*indata.*indata).*exp(-indata.*indata/2);
net = newff([-4,4],[10,1],{'tansig','tansig'});
net.trainParam.epochs = 500; *%训练的最大次数*
net.trainParam.goal = 0.0000001; *%全局最小误差*
net = train(net,indata,targetdata); 
O = sim(net,indata);
plot(indata,O,'*')
2.1.2 实验结果:

【智能控制实验】基于MATLAB的BP神经网络实现非线性函数拟合设计_第1张图片

2.2 掌握在图形用户界面下设计BP神经网络拟合非线性模型的方法

2.2.1 设置输入输出量

打开matlab在命令行输入:nntool

点击import按钮,添加输入变量和目标输出变量,按import按钮,导入输入 变量,点击ok确定;按import按钮,导入目标输出变量,点击ok确定。

2.2.2 设置网络结构

在首页窗口按 new按钮, 新建网络

设置好参数后,按create 按钮创建网络

双击network1

2.3 训练结果

【智能控制实验】基于MATLAB的BP神经网络实现非线性函数拟合设计_第2张图片

【智能控制实验】基于MATLAB的BP神经网络实现非线性函数拟合设计_第3张图片

【智能控制实验】基于MATLAB的BP神经网络实现非线性函数拟合设计_第4张图片

你可能感兴趣的:(智能控制,matlab,神经网络,算法)