⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bpok.m

📁 用bp网络实现逼近
💻 M
字号:
clf
figure(gcf)
clc
%用BP网络进行函数逼近
p=-0.5:0.1:0.5;%输入样本
a=exp(-1.9*(p+0.5));
b=sin(10*p);
t=a.*b; %目标输出
figure(1)
plot(p,t,'r-');
title('target');
xlabel('input vector p');
ylabel('output vector t');
[R,Q]=size(p);    
[S2,Q]=size(t);
S1=8;%隐层神经元个数为8
[w1,b1,w2,b2]=initff(p,S1,'tansig',t,'purelin'); %网络进行初始化
%可以用A1=tansig(w1*p,b1);A2=purelin(w2*p,b2)来替代,或用newff函数
[w1,b1]=rands(S1,R);
[w2,b2]=rands(S2,S1);%权值和阈值进行初始化
df=10;%学习过程显示频率
me=8000;%初始化训练次数
eg=0.02;%误差指标
lr=0.05;%学习率    
tp=[df me eg lr]; 
figure(2);
[w1,b1,w2,b2,ep,tr]=trainbp(w1,b1,'tansig',w2,b2,'purelin',p,t,tp);%用BP算法对网络进行训练
pause  %暂停
figure(3);
ploterr(tr,eg); %画出误差曲线
p=-0.1;
a1=simuff(p,w1,b1,'tansig',w2,b2,'purelin') %计算网络输出
a2=exp(-1.9*(p+0.5));%函数的期望输出
b2=sin(10*p);
t1=a2*b2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -