求bp网络函数逼近程序
各位大虾:你好,我想用BP网络完成函数的逼近,解决电流卡片系统模式识别这些问题。但在模拟的过程中其效果不是很好,特此上来求助,谢谢!
我输入样本和目标向量如下:
p=1:1:16; t=;希望通过对网络进行训练,使得网络输出值逐渐向实验值逼近。 参考http://forum.vibunion.com/thread-840-1-1.html
%%%%%函数逼近%%%%
clear all;
clc;
p=-10:.05:10;
t=(3+3.*cos(p))/2;
net=newff(minmax(p),,{'tansig' 'purelin'},'trainlm');
net.trainParam.epochs=50; %训练次数50次;
net.trainParam.goal=0.01; %训练目标为误差小于0.01
net.trainParam.lr=0.01; %学习速率为0.01
net=train(net,p,t); %开始训练网络
y1=sim(net,p);
figure(2);
plot(p,t,'-r',p,y1,'-b','LineWidth',2);
title('非线性函数逼近');
xlabel('输出');
ylabel('时间');
t1=0:.5:5;
set(gca,'Ytick',t1);
cell_string{1}='\fontsize{10}\fontname{宋体}红色为原函数图形';
cell_string{2}='\fontsize{10}\fontname{宋体}蓝色为仿真后图形';
text(1.7,2.7,cell_string);
逼近的是一个非线性函数 原理上可以自己用于其他任何非线性函数的逼近
页:
[1]