bp神经网络算法步流程_MATLAB BP神经网络的非线性系统建模非线性函数拟合

点击上方蓝字关注“公众号”

fdc53d8dd088db75d9678bf5c1f2c263.gif

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

在实际工程应用中会遇到一些复杂的非线性系统,这些系统方程复杂,难以用数学方法建模。在这种情况下,可以使用BP神经网络表达这些非线性系统。

该方法把位置系统看成是一个黑箱,首先用系统输入输出数据训练BP神经网络,使网络能够表达该未知函数,然后用训练好的BP神经网络预测系统输出。

19ffaee59937f2ba9ab2000b2cefcf89.gif

 基于BP神经网络的非线性函数拟合算法流程可以分为BP神经网络构建、BP神经网络训练和BP神经网络预测三步。

 BP神经网络构建根据拟合非线性函数特点确定BP神经网络结构,由于该非线性函数有两个输入参数,一个输出参数,所以BP神经网络结构为2-5-1,即输入层有两个节点,隐含层有5个节点,输出层有1个节点。

BP神经网络训练用非线性函数输入输出数据训练神经网络,使训练后的网络能够预测非线性函数输出。从非线性函数中随机得到2000组输入输出数据,从中随机选择1900组作为训练数据,用于网络训练,100组作为测试数据,用于测试网络的训练性能。

19ffaee59937f2ba9ab2000b2cefcf89.gif

神经网络预测用训练好的网络预测函数输出,并对预测结果进行分析。

根据非线性函数方程随机得到该函数的2000组输入输出数据,将数据存储在data.mat文件中,input是函数输入数据,output是函数输出数据。从输入输出数据中随机选取1900组数据作为网络训练数据,100组数据作为网络测试数据,并对训练数据进行归一化处理。

49a8e23a58bc53123b6bc9914a1924da.gif 99d8b116d202bfbdedfe8f4b2bf54c01.png 7cac7160eb013b26b754c5894b97ed28.png

01

主程序介绍

%% 清空环境变量
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));

bd548e2d78a73e34d30c11c52ad526d5.gif

01

仿真主程序

%选连样本输入输出数据归一化
[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);

02

%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
%网络预测输出
an=sim(net,inputn_test);
%网络输出反归一化
BPoutput=mapminmax('reverse',an,outputps);

03

%网络预测输出
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;

04

仿真结果图

9f3754c2a03d064c878fd53dac9f9d9f.png

c58803dd878d917a301060cd673a5a86.png

73844ff885995d65939e1a73e170118d.png

ab07d76a504a858a62dc9d529a88730b.png

ed9ba4736c75d8ac39c62972725a77a6.png

e44bb6b128194deeba8e16bf031be5cf.gif

具体仿真程序链接,微信公众号回复【神经网络】即可获得链接。

未完待续

扫码关注

不迷路

8b2aa4a84a152a8d4b838dc02b9b655a.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值