BP神经网络非线性函数拟合

基于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 on
plot(output_test,'-*');
ylabel('仿真输出','fontsize',12);
xlabel('样本','fontsize',12);

作者:QinL 

发布了146 篇原创文章 · 获赞 213 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/s0302017/article/details/103763758
今日推荐