200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > BP 神经网络的非线性系统建模——非线性函数拟合

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

时间:2022-08-03 20:34:39

相关推荐

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

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

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

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 : 网络预测数据。

程序实现

%% 该代码为基于BP神经网络的预测算法%% 清空环境变量clcclear%% 训练数据预测数据提取及归一化%下载输入输出数据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 onplot(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));

点击(免费)代码中需要的数据data运行结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。