BP神经网络|函数逼近

本文档展示了如何使用MATLAB的神经网络工具箱创建并训练一个前馈BP网络来拟合一个1+sin(k*pi/4*p)的非线性函数。首先定义了函数,然后构建了一个包含4个隐藏层神经元的网络,并采用'tansig'和'purelin'作为隐藏层和输出层的激活函数。在训练过程中,设置了50个迭代周期和0.01的训练精度目标。训练后,比较了未训练和训练后的网络输出结果,显示了网络对非线性函数的拟合能力。

今天晚上复现了一篇论文。

clear all
clc
k=1;
p=[-1:0.05:8];
t= 1 + sin (k*pi/4*p);
%plot(p,t,'-');
%title( '要逼近的非线性函数' );
%xlabel('时间');
%ylabel('非线性函数');

%建立网络
n=4; %隐含层神经元数目
net = newff(minmax(p),[n,1],{'tansig' 'purelin'},'trainlm')  %创建前馈BP网络
y1=sim(net,p);
%figure;
%plot(p,t,'-',p,y1,':');
%title( '未训练网络的输出结果' );
%xlabel( '时间' );
%ylabel('仿真输出原函数');

%训练网络
net.trainParam.epochs=50; %网络训练时间设置为50
net.trainParam.goal=0.01; %训练精度为0.01
net=train(net,p,t); %开始训练
y2=sim(net,p );
figure;
plot(p,t,p,y1,p,y2);
title('训练后网络的输出结果');
xlabel('时间');
ylabel('仿真输出');

结果

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值