案例背景
在工程利用中时常会遇到一些繁杂的非线性系统,这些系统状况方程繁杂,难以用数学办法准确建模。在这类情况下,可以树立BP神经网络表达这些非线性系统。该办法把未知系统看成一个黑箱,首先用系统输入输出数据训练神经网络,是网络能够表达函数,然后就能够用训练好的BP神经网络预测系统输出。文章源自微观生活(93wg.com)微观生活-https://93wg.com/4727.html
举例拟合的非线性函数为文章源自微观生活(93wg.com)微观生活-https://93wg.com/4727.html
z=X^2+y^2文章源自微观生活(93wg.com)微观生活-https://93wg.com/4727.html
函数图象为:文章源自微观生活(93wg.com)微观生活-https://93wg.com/4727.html
clc,clear文章源自微观生活(93wg.com)微观生活-https://93wg.com/4727.html
x=-5:0.01:5;文章源自微观生活(93wg.com)微观生活-https://93wg.com/4727.html
[x,y]=meshgrid;文章源自微观生活(93wg.com)微观生活-https://93wg.com/4727.html
z=x.^2+y.^2;文章源自微观生活(93wg.com)微观生活-https://93wg.com/4727.html
mesh文章源自微观生活(93wg.com)微观生活-https://93wg.com/4727.html
应用MATLAB自带的工具箱实现,贴一下代码:文章源自微观生活(93wg.com)微观生活-https://93wg.com/4727.html
x1=unifrnd;
x2=unifrnd;
y=x1.^2+x2.^2;
input=[x1\',x2\'];
output=y\';
k=rand;
[m,n]=sort;
input_train=input,:)\';
output_train=output,:)\';
input_test=input,:)\';
output_test=output,:)\';
%训练数据归一化
[inputn,inputs]=mapminmax;
[outputn,outputs]=mapminmax;
%bp神经网络构建
net=newff;
%网络配置参数
net.trainParam.epochs=100;
net.trainParam.lr=0.1;
net.trainParam.goal=0.00004;
%train
net=train;
%预测数据归一化
inputn_test=mapminmax;
%bp神经网络预测输出
an=sim;
%输出数据反归一化
BPoutput=mapminmax;
figure
plot
legend
hold on
plot
legend
结果:
在迭代次数十次左右就已经到达了精度请求;
可以看出拟合结果无比好,预测输出以及实际值基本重合。
以上就是微观生活(93wg.com)关于“BP神经网络非线性拟合,MATLAB工具箱实现”的详细内容,希望对大家有所帮助!
评论