BP神经网络的非线性系统建模

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BP神经网络的非线性系统建模

一、题目

拟合的非线性函数为:y=x12+x22

二、模型建立

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

从非线性函数中随机得到2000组输入输出数据,从中随机选择1900组作为训练数据,用于网络训练,100组作为测试数据,用于测试网络的拟合性能。

利用Matlab中工具箱函数。

三、Matlab实现

3.1数据选择和归一化

从输入输出数据中随机选取1900组数据作为网络训练数据,100组数据作为网络测试数据,并对训练数据进行归一化处理。

%%清空环境变量

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));

%选连样本输入输出数据归一化

[inputn,inputps]=mapminmax(input_train);

[outputn,outputps]=mapminmax(output_train);

3.2BP神经网络训练

用训练数据训练BP神经网络,使网络对非线性函数输出具有预测能力。

%%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);

3.3BP神经网络预测

%%BP网络预测

%预测数据归一化

inputn_test=mapminmax('apply',input_test,inputps); %网络预测输出

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;

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))

四、结果分析

用训练好的BP 神经网络预测函数输出,预测结果如图1所示。

样本

函数输出图1BP 神经网络预测

BP 神经网络预测输出和期望输出的误差如图2所示

0102030405060708090100

误差样本图2BP 神经网络预测误差

相关文档
最新文档