基于BP神经网络的非线性函数拟合算法流程可以分为BP神经网络构建、BP神经网络训练和BP神经网络预测三步。
BP神经网络构建:根据拟合非线性函数特点确定BP神经网络结构。
BP神经网络训练:用非线性函数输入输出数据训练神经网络,使训练后的网络能够预测非线性函数输出。
BP神经网络预测:用训练好的网络预测函数输出,并对预测结果进行分析
%输入数据x=rand(1,1500);y=rand(1,1500);p=[x;y]';z=x.^2-y.^2+3;%从1到1500间随机排序k=rand(1,1500);[m,n]=sort(k);%找出训练数据和预测数据input_train=p(n(1:1400),:)';output_train=z(n(1:1400));input_test=p(n(1401:1500),:)';output_test=z(n(1401:1500));%训练样本输入输出数据归一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);%BP网络训练%初始化网络结构net=newff(inputn,outputn,5);net.trainParam.epochs=500;net.trainParam.lr=0.05;net.trainParam.goal=0.0004;%网络训练net=train(net,inputn,outputn);%BP网络预测%预测数据归一化inputn_test=mapminmax('apply',input_test,inputps);%网络预测输出an=sim(net,inputn_test);%网络输出反归一化BPoutput=mapminmax('reverse',an,outputps);%结果分析plot(BPoutput,':og');hold onplot(output_test,'-*');ylabel('仿真输出','fontsize',12);xlabel('样本','fontsize',12);
作者:QinL