《基于BP神经网络的非线性函数拟合系统设计代码.docx》由会员分享,可在线阅读,更多相关《基于BP神经网络的非线性函数拟合系统设计代码.docx(3页珍藏版)》请在课桌文档上搜索。
1、基于BP神经网络的非线性函数拟合系统设计代码data.m数据集生成代码clc%关闭所有窗口clear%清除所有变量closeall%关闭所有界面XI=-5:0.22:5;%xl的范围X2=X1;%x2的范围x1,x2=meshgrid(X1,X2);%xl,x2生成网格y=x1.2+x2.2;%根据公式计算ysurf(xl,x2,y);%画曲面图d=xl(l:2000)x2(k2000)ry(l:2000)1;%获取前2000个数据shadinginterp%平滑曲面save(d.mat,d);%保存数据main.mBP神经网络的模型建立,训练,预测和评价clc%关闭所有窗口clear%清除所
2、有变量closeall%关闭所有界面%数据导入load(,d.mat,);D=d;%网络训练y=D(:,3);%输出x=D(:J:2);%输入y,a1=mapminmax(y,-1,1);%输出归一化%x,a2=mapminmax(x,-1,1);%输入归一化datal=x;y;%数据trainsamplejestsample=dividerand(data1,19,1,0);%划分训练集和测试集%创建BP神经网络%创建网络net=newff(trainsample(1:2,:),trainsample(3,:),25,logsig,tansig,trainlm,);%隐层2个,神经元个数是9
3、,9%设置训练次数net.trainParam.epochs=2000;net.trainParam.lr=0.01;%学习率%设置收敛误差net.trainParam.goal=0.000001;%收敛误差%训练网络net,tr=train(net,trainsample(1:2,:),trainsample(3,:);%在训练集和测试集上的表现y_train_predict=sim(net,trainsample(1:2,:);%训练结果y_test_predict=sim(net,testsample(1:2,:);%测试结果predict=mapminmax(reverse,y_tes
4、t_predict,a1);%预测输出反归一化OUtPUt_test=m叩minmax(reverse,testsample(3,:),al);%输出反归一化error=predict-output_test;%计算误差plot(output-testbo,)%画图:测试实际结果holdon%多个曲线画在一张图像上plot(predict,r*,)%画图:预测记过Iegende期望值;预测值,)XlabelC数据组数IylabeIC值,),titleC测试集预测值和期望值的对比)figureplot(error,bo-)%误差曲线%axis(0,100,-0.4,0.4)%横坐标范围0100,纵坐标范围-0.4-0.4XlabeIe数据组数IylabeIe值,),titl或测试集误差曲线)-,Ien=size(output_test);%计算测试集的数量MAEl=sum(abs(error./output_test)/len;%计算MAE指标MSE1=error*error71en;%计算MSE指标RMSE1=MSE1(1/2);%计算RSME指标disp(,误差计算,)disp(平均绝对误差MAE为。num2str(MAEl)%显示结果disp(均方误差MSE为IWm2str(MSEl)disp(均方根误差RMSE为:,num2str(RMSEl)