BP及RBP神经网络逼近.docx
- 文档编号:17038094
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:34
- 大小:1.05MB
BP及RBP神经网络逼近.docx
《BP及RBP神经网络逼近.docx》由会员分享,可在线阅读,更多相关《BP及RBP神经网络逼近.docx(34页珍藏版)》请在冰点文库上搜索。
BP及RBP神经网络逼近
《BP及RBP神经网络逼近、药品销售预测、基本遗传算法设计实验》
实验指导书
雷菊阳编
机械工程学院
2012年6月
实验一、BP及RBP神经网络逼近
一、实验目的
1、了解MATLAB集成开发环境
2、了解MATLAB编程基本方法
3、加深对BP算法的理解和掌握
4、掌握工具包入口初始化及调用
5、加深BP、RBP神经网络对任意函数逼近的理解
二、实验内容
1、MATLAB基本指令和语法。
2、BP算法的MATLAB实现
三、实验步骤
1、熟悉MATLAB开发环境
2、输入参考程序
3、设置断点,运行程序,观察运行结果
四、参考程序
1、BP算法的matlab实现程序
%lr为学习步长,err_goal期望误差最小值,max_epoch训练的最大次数,隐层和输出层初值为零
lr=0.05;
err_goal=0.01;
max_epoch=3000;
a=0.9;
Oi=0;
Ok=0;
%两组训练集和目标值
X=[11;-1-1;11];
T=[11;11];
%初始化wki,wij(M为输入节点j的数量;q为隐层节点i的数量;L为输出节点k的数量)
[M,N]=size(X);
q=8;
[L,N]=size(T);
wij=rand(q,M);
wki=rand(L,q);
wij0=zeros(size(wij));
wki0=zeros(size(wki));
forepoch=1:
max_epoch
%计算隐层各神经元输出
NETi=wij*X;
forj=1:
N
fori=1:
q
Oi(i,j)=2/(1+exp(-NETi(i,j)))-1;
end
end
%计算输出层各神经元输出
NETk=wki*Oi;
fori=1:
N
fork=1:
L
Ok(k,i)=2/(1+exp(-NETk(k,i)))-1;
end
end
%计算误差函数
E=((T-Ok)'*(T-Ok))/2;
if(E break; end %调整输出层加权系数 deltak=Ok.*(1-Ok).*(T-Ok); w=wki; wki=wki+lr*deltak*Oi'; wki0=w; %调整隐层加权系数 deltai=Oi.*(1-Oi).*(deltak'*wki)'; w=wij; wij=wij+lr*deltai*X'; wij0=w; end epoch%显示计算次数 %根据训练好的wki,wij和给定的输入计算输出 X1=X; %计算隐层各神经元的输出 NETi=wij*X1; forj=1: N fori=1: q Oi(i,j)=2/(1+exp(-NETi(i,j)))-1; end end %计算输出层各神经元的输出 NETk=wki*Oi; fori=1: N fork=1: L Ok(k,i)=2/(1+exp(-NETk(k,i)))-1; end end Ok%显示网络输出层的输出 2、BP逼近任意函数算法的matlab实现程序 ⏹X=-4: 0.08: 4; ⏹T=1.1*(1-X+2*X.^2).*exp(-X.^2./2); ⏹net=newff(minmax(X),[20,1],{'tansig','purelin'}); ⏹net.trainParam.epochs=15000; ⏹net.trainParam.goal=0.001; ⏹net=train(net,X,T); ⏹X1=-1: 0.01: 1; ⏹y=sim(net,X1); ⏹figure; ⏹plot(X1,y,'-r',X,T,': b','LineWidth',2); 3.RBF能够逼近任意的非线性函数 ⏹X=-4: 0.08: 4; ⏹T=1.1*(1-X+2*X.^2).*exp(-X.^2./2); ⏹net=newrb(X,T,0.002,1); ⏹X1=-1: 0.01: 1; ⏹y=sim(net,X1); ⏹figure; ⏹plot(X1,y,'-r',X,T,': b','LineWidth',3); 五、思考题 1、试设计一个函数并将结果用图画出。 2、假设训练样本X=[11;-1-1;11],目标输出T=[11;11],建立一个输入层3个神经元,单隐层8个神经元,输出层2个神经元的网络结构,其中隐层、输出层神经元的传递函数均为sigmoid函数, (1)试利用BP学习算法实现该网络的训练过程; (2)利用增加动量项的BP学习算法实现该网络; (3)观察两种学习算法的运行结果,比较两种算法的优缺点 3、训练参数的改变对逼近性能的影响 实验二、药品销售预测实验 一、实验目的 1、了解利用神经网络处理实际问题的一般思路 2、掌握MATLAB中常用神经网络函数 二、实验内容 1、数据预处理。 2、神经网络的MATLAB实现 三、实验步骤 1、熟悉MATLAB开发环境 2、输入参考程序 3、设置断点,运行程序,观察运行结果 四、参考程序 下表为某药品的销售情况,现构建一个如下的三层BP神经网络对药品的销售进行预测: 输入层有三个结点,隐含层结点数为5,隐含层的激活函数为tansig;输出层结点数为1个,输出层的激活函数为logsig,并利用此网络对药品的销售量进行预测,预测方法采用滚动预测方式,即用前三个月的销售量来预测第四个月的销售量,如用1、2、3月的销售量为输入预测第4个月的销售量,用2、3、4月的销售量为输入预测第5个月的销售量.如此 反复直至满足预测精度要求为止。 月份 1 2 3 4 5 6 销量 2056 2395 2600 2298 1634 1600 月份 7 8 9 10 11 12 销量 1873 1478 1900 1500 2046 1556 程序实现: production=[205623952600229816341600187314781900150020461556]; gyhvector=(production-1478)/(2600-1478); P=[0.51520.81731.0000; 0.81731.00000.7308; 1.00000.73080.1390; 0.73080.13900.1087; 0.13900.10870.3520; 0.10870.35200.0000;]'; T=[0.73080.13900.10870.35200.00000.3761]; net=newff([01;01;01],[5,1],{'tansig','logsig'},'traingd'); net.trainParam.epochs=500;%%%%可以改 net.trainParam.goal=0.005; LP.lr=0.1; net=train(net,P,T); test=[0.01960.50620.0695; 0.37610.01960.5062; 00.37610.0196; 0.51520.81731.0000; 0.81731.00000.7308; 1.00000.73080.1390; 0.73080.13900.1087; 0.13900.10870.3520; 0.10870.35200.0000; 0.352000.3761; 00.37610.0196; 0.37610.01960.5062;]'; y=sim(net,test); x=[1: 12]; figure; plot(x,gyhvector,'rs',x,y,'bo'); set(gca,'xtick',x); 实验结果: goal=0.005 五、思考题 简述利用MATLAB神经网络函数处理实际工程问题的一般方法和步骤 实验三、基本遗传算法设计实验 一、实验目的 1、了解基本遗传算法全局优化一般思路 2、掌握选择、交叉、变异算子如何实现 3、轮盘赌方法(roulettewheelmodel)如何用程序方法实现 4、适应度函数设计方法 二、实验内容 1、初始化处理。 2、神经网络的MATLAB实现 三、实验步骤 1、熟悉MATLAB开发环境 2、输入参考程序 3、设置断点,运行程序,观察运行结果 四、参考程序 1、初始化 functionresult=Initial(length) fori=1: length r=rand(); result(i)=round(r); end 2、Matlab实现----十进制与二进制转换 ⏹functiony=Dec(a,b,x,L) ⏹base=2.^((L-1): -1: 0); ⏹y=dot(base,x); ⏹y=a+y*(b-a)/(2^L-1); 3、Matlab实现---适应度函数计算 ⏹functionF=fitness(x) ⏹F=20+x+10*sin(4*x)+8*cos(3*x); 4、Matlab实现----GA() function[xv,fv]=GA(fitness,a,b,NP,NG,pc,pm) L=24;%L=ceil(log((b-a)/eps+1))L=24 x=zeros(NP,L); fori=1: NP; x(i,: )=Initial(L); fx(i)=fitness(Dec(a,b,x(i,: ),L)); end fork=1: NG sumfx=sum(fx); px=fx/sumfx; ppx=0; ppx (1)=px (1); fori=2: NP ppx(i)=ppx(i-1)+px(i); end fori=1: NP sita=rand(); forn=1: NP ifsita<=ppx(n) SelFather=n; break; end end SelMother=floor(rand()*(NP-1))+1; posCut=floor(rand()*(L-2))+1; r1=rand(); ifr1<=pc nx(i,1: posCut)=x(SelFather,1: posCut); nx(i,(posCut+1): L)=x(SelMother,(posCut+1): L); r2=rand(); ifr2<=pm posMut=round(rand()*(L-1)+1); nx(i,posMut)=~nx(i,posMut); end else nx(i,: )=x(SelFather,: ); end end x=nx; fori=1: NP fx(i)=fitness(Dec(a,b,x(i,: ),L)); end end fv=-inf; fori=1: NP fitx=fitness(Dec(a,b,x(i,: ),L)); iffitx>fv fv=fitx; xv=Dec(a,b,x(i,: ),L); end end ⏹ 5、Matlab实现----主程序 a=0; b=10; NP=10;%%%%改 NG=2000;%%%该 pc=0.6; pm=0.04; [xv,fv]=GA(@fitness,a,b,NP,NG,pc,pm); disp“最优个体" xv disp“最优适应度" fv 6、实验结果 五、思考题 1、求y=x*x在【0,31】的最大值 2、如何求最小值并考虑怎样修改程序: f(x)=x2-10x+16【0,31】的最小值? 实验四、模糊PID控制器设计实验 一、实验目的 1、掌握常规PID算法如何用程序来实现 2、掌握过程输出如何仿真 3、模糊PID控制器程序设计方法 4、比较两种控制器的控制效果 二、实验要求 具体要求如下: 1、模糊PID控制器设计方法。 2、过程输出仿真。 3、Matlab程序设计实现及调试。 三、实验原理 对于已知系统的传递函数为: ,假设系统给定为阶跃值R=10,系统的初始值R(0)=0,试分析设计: a、常规的PID控制器 b、模糊PID控制器 c、比较两种控制器的控制效果 控制规则: If(erroriserror<<0)then(duisdu>>0) (1) If(erroriserror=0)then(duisdu=0) (1) If(erroriserror>>0)then(duisdu<<0) (1) If(erroriserror<0)and(deisde<0)then(duisdu>>0) (1) If(erroriserror>0)and(deisde>0)then(duisdu<<0) (1) 过程输出仿真: 四阶龙格库塔法 三、实验参考程序 模糊PID控制器: 常规的PID控制器: 五、思考题 1、模糊控制器设计方法 2、龙格库塔法模拟控制对象输出的原理? 实验五、模糊自适应PID控制设计实验 一、实验目的 1、掌握如何运用模糊推理来实现PID各个参数自动调节 2、掌握如何将操作人员的经验进行形式化变成可用的知识库 3、掌握过程输出如何仿真 4、模糊PID控制器程序设计方法 5、掌握自适应PID算法如何用程序来实现 二、实验要求 具体要求如下: 1、模糊PID控制器设计方法。 2、过程输出仿真。 3、Matlab程序设计实现及调试。 四、实验原理 模糊化规则由PID各个参数对系统的影响得到: (a)当误差|e|较大时,说明误差的绝对值较大,不论误差的变化趋势如何,都应该考虑控制器的Kp取较大值,以提高响应的快速性;而为防止因为|ec|瞬时过大,kd应该取较小的值;为控制超调,ki也应该取值很小。 (b)当误差|e|在中等大小时,为保证系统的相应速度并控制超调,应减小Kp,Ki值应增大,Kd应适中。 (c)当误差|e|较小时,为保证系统具有良好的稳态特性,应加大Kp、Ki的取值,同时为避免产生振荡,Kd的取值应该和|ec|联系起来。 模糊PID控制根据系统运行的不同状态,考虑Kp、Ki、Kd三者的关联,根据工程经验设计模糊整定这三个参数,选择输入语言变量为误差e和偏差变化率ec,语言变量值取{NB,NM,NS,0,PS,PM,PB}七个模糊值;选择输出语言变量为△Kp,△Ki,△Kd语言变量值也取{NB,NM,NS,0,PS,PM,PB}七个模糊值,建立△Kp,△Ki,△Kd的模糊规则表如下表1、表2、表3。 五、实验参考程序 五、思考题 1、自适应模糊PID控制基本原理及框图 2、考虑在改变控制对象传递函数的情况下如何修改程序,并以具体实例说明。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BP RBP 神经网络 逼近