使用BP神经网络实现函数逼近

1 一元函数逼近

1.1 待逼近函数
在这里插入图片描述
1.2 代码

clear,clc
p=[-4:0.1:4]; %神经网络输入值
t=sin(0.5*pi*p)+sin(pi*p); %神经网络目标值
n=15; %隐藏层神经元个数
net=newff(minmax(p),[1,n,1],{'tansig','tansig','purelin'},'trainlm'); %建立网络结构
net.trainParam.epochs=200; %最大训练步数
net.trainParam.goal=0.1; %最大训练误差
net=train(net,p,t); %训练网络
y=net(p); %神经网络输出值
plot(p,t,'*',p,y,'-')
title('使用BP神经网络函数逼近');
xlabel('输入值');
ylabel('目标值/输出值');
mse=mse(y,t) %实际误差

1.3 运行结果
在这里插入图片描述
在这里插入图片描述
MSE=0.0828

2 二元函数逼近

2.1 待逼近函数
在这里插入图片描述
2.2 代码

clear,clc
t=[0:0.1:10*pi]; %辅助参数
x=(t+0.5*pi).*sin(t+0.5*pi); %神经网络输入值(指标1)
y=(t+0.5*pi).*cos(t+0.5*pi); %神经网络输入值(指标2)
z=1.5*t; %神经网络目标值
n=25; %隐藏层神经元个数
net=newff(minmax([x;y]),[2,n,1],{'tansig','tansig','purelin'},'trainlm'); %建立网络结构
net.trainParam.epochs=500; %最大训练步数
net.trainParam.goal=0.5; %最大训练误差
net=train(net,[x;y],z); %训练网络
zf=net([x;y]); %神经网络输出值
plot3(x,y,z,'*',x,y,zf,'r-')
title('使用BP神经网络函数逼近');
xlabel('输入值(指标1)');
ylabel('输入值(指标2)');
zlabel('目标值/输出值')
mse=mse(zf,z) %实际误差

2.3 运行结果
在这里插入图片描述
在这里插入图片描述
MSE=0.4959

​ 声明:本文转自使用BP神经网络实现函数逼近

posted @   little_fat_sheep  阅读(223)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示