2022年BP及RBP神经网络逼 .pdf
BP及 RBP神经网络逼近、药品销售预测、基本遗传算法设计实验实验指导书雷菊阳编机械工程学院2012 年 6 月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 35 页 - - - - - - - - - 实验一、 BP及 RBP神经网络逼近一、实验目的1、了解 MATLAB 集成开发环境2、了解 MATLAB 编程基本方法3、加深对算法的理解和掌握4、掌握工具包入口初始化及调用5、加深 BP、RBP 神经网络对任意函数逼近的理解二、实验内容1、MATLAB 基本指令和语法。2、算法的 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=1 1;-1 -1;1 1; T=1 1;1 1; % 初始化 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); for epoch=1:max_epoch 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 35 页 - - - - - - - - - %计算隐层各神经元输出 NETi=wij*X; for j=1:N for i=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)-1; end end %计算输出层各神经元输出 NETk=wki*Oi; for i=1:N for k=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)-1; end end %计算误差函数 E=(T-Ok)*(T-Ok)/2; if (Eerr_goal) 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; for j=1:N for i=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)-1; end end % 计算输出层各神经元的输出NETk=wki*Oi; for i=1:N for k=1:L 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 35 页 - - - - - - - - - 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);-4-3-2-10123400.511.522.53名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 35 页 - - - - - - - - - 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);-4-3-2-10123400.511.522.53-4-3-2-1012342468101214名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 35 页 - - - - - - - - - 五、思考题1、试设计一个函数并将结果用图画出。2、假设训练样本 X=1 1;-1 -1;1 1,目标输出 T=1 1;1 1,建立一个输入层 3个神经元,单隐层 8个神经元,输出层 2个神经元的网络结构,其中隐层、输出层神经元的传递函数均为 sigmoid函数,(1)试利用 BP学习算法实现该网络的训练过程;(2)利用增加动量项的 BP学习算法实现该网络;(3)观察两种学习算法的运行结果,比较两种算法的优缺点3、训练参数的改变对逼近性能的影响名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 35 页 - - - - - - - - - 实验二、药品销售预测实验一、实验目的1、 了解利用神经网络处理实际问题的一般思路2、 掌握 MATLAB中常用神经网络函数二、实验内容1、数据预处理。2、神经网络的MA TLAB 实现三、实验步骤1、 熟悉 MATLAB开发环境2、 输入参考程序3、 设置断点,运行程序,观察运行结果四、参考程序下表为某药品的销售情况,现构建一个如下的三层BP神经网络对药品的销售进行预测:输入层有三个结点,隐含层结点数为5,隐含层的激活函数为tansig ;输出层结点数为1个,输出层的激活函数为logsig ,并利用此网络对药品的销售量进行预测,预测方法采用滚动预测方式, 即用前三个月的销售量来预测第四个月的销售量,如用 1、2、3 月的销售量为输入预测第4 个月的销售量,用2、 3、4 月的销售量为输入预测第5 个月的销售量 . 如此反复直至满足预测精度要求为止。月份123456销量205623952600229816341600月份789101112销量187314781900150020461556程序实现:production=2056 2395 2600 2298 1634 1600 1873 1478 1900 1500 2046 1556; gyhvector=(production-1478)/(2600-1478); P=0.5152 0.8173 1.0000 ; 0.8173 1.0000 0.7308; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 35 页 - - - - - - - - - 1.0000 0.7308 0.1390; 0.7308 0.1390 0.1087; 0.1390 0.1087 0.3520; 0.1087 0.3520 0.0000; T=0.7308 0.1390 0.1087 0.3520 0.0000 0.3761; net=newff(0 1;0 1;0 1,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.0196 0.5062 0.0695; 0.3761 0.0196 0.5062; 0 0.3761 0.0196; 0.5152 0.8173 1.0000 ; 0.8173 1.0000 0.7308; 1.0000 0.7308 0.1390; 0.7308 0.1390 0.1087; 0.1390 0.1087 0.3520; 0.1087 0.3520 0.0000; 0.3520 0 0.3761; 0 0.3761 0.0196; 0.3761 0.0196 0.5062; y=sim(net,test); x=1:12; figure; plot(x,gyhvector,rs,x,y,bo); set(gca,xtick,x);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 35 页 - - - - - - - - - 实验结果: goal=0.005 五、思考题简述利用MATLAB神经网络函数处理实际工程问题的一般方法和步骤名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 35 页 - - - - - - - - - 实验三、基本遗传算法设计实验一、实验目的1、 了解基本遗传算法全局优化一般思路2、 掌握选择、交叉、变异算子如何实现3、轮盘赌方法(roulette wheel model) 如何用程序方法实现4、适应度函数设计方法二、实验内容1、初始化处理。2、神经网络的MA TLAB 实现三、实验步骤1、熟悉 MATLAB开发环境2、输入参考程序3、设置断点,运行程序,观察运行结果四、参考程序1、初始化function result=Initial(length)for i=1:lengthr=rand();result(i)=round(r);end2、Matlab 实现 - 十进制与二进制转换function y=Dec(a,b,x,L)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 35 页 - - - - - - - - - base=2.(L-1):-1:0);y=dot(base,x);y=a+y*(b-a)/(2L-1);3、Matlab 实现 - 适应度函数计算function F=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=24x=zeros(NP,L);for i=1:NP; x(i,:)=Initial(L); fx(i)=fitness(Dec(a,b,x(i,:),L);endfor k=1:NG sumfx=sum(fx); px=fx/sumfx; ppx=0; ppx(1)=px(1);for i=2:NP ppx(i)=ppx(i-1)+px(i);endfor i=1:NP sita=rand();for n=1:NPif sita=ppx(n) SelFather=n;break;endend SelMother=floor(rand()*(NP-1)+1; posCut=floor(rand()*(L-2)+1; r1=rand();if r1=pc nx(i,1:posCut)=x(SelFather,1:posCut);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 35 页 - - - - - - - - - nx(i,(posCut+1):L)=x(SelMother,(posCut+1):L); r2=rand();if r2fv fv=fitx; xv=Dec(a,b,x(i,:),L);endend5、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、实验结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 35 页 - - - - - - - - - 五、思考题1、求 y=x*x在【 0,31 】的最大值2、如何求最小值并考虑怎样修改程序:f(x)=x2-10 x+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 (error is error0) (1) 0.51()101SGSSe-=+名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 35 页 - - - - - - - - - If (error is error=0) then (du is du=0) (1) If (error is error0) then (du is du0) (1) If (error is error0) and (de is de0) (1) If (error is error0) and (de is de0) then (du is du0) (1) 过程输出仿真:四阶龙格库塔法三、实验参考程序模糊 PID 控制器:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 35 页 - - - - - - - - - 常规的 PID 控制器:05001000150020002500300002468101214名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 35 页 - - - - - - - - - 五、思考题1、模糊控制器设计方法2、龙格库塔法模拟控制对象输出的原理? 0500100015000246810121416名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 35 页 - - - - - - - - - 实验五、模糊自适应PID 控制设计实验一、实验目的1、掌握如何运用模糊推理来实现PID 各个参数自动调节2、掌握如何将操作人员的经验进行形式化变成可用的知识库3、掌握过程输出如何仿真4、模糊 PID 控制器程序设计方法5、掌握自适应 PID 算法如何用程序来实现二、实验要求具体要求如下:1、模糊PID 控制器设计方法。2、过程输出仿真。3、Matlab 程序设计实现及调试。四、实验原理名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 35 页 - - - - - - - - - 模糊化规则由 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。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 35 页 - - - - - - - - - 五、实验参考程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 29 页,共 35 页 - - - - - - - - - 00.050.10.150.20.250.30.350.40.450.500.20.40.60.811.21.4time(s)rin,yout名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 35 页 - - - - - - - - - 00.050.10.150.20.250.30.350.40.450.5-0.200.20.40.60.811.21.4time(s)u00.050.10.150.20.250.30.350.40.450.5-0.200.20.40.60.811.2time(s)error名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 31 页,共 35 页 - - - - - - - - - 00.050.10.150.20.250.30.350.40.450.5-20246810121416x 10-3time(s)ki00.050.10.150.20.250.30.350.40.450.50.330.340.350.360.370.380.390.40.410.420.43time(s)kp名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 32 页,共 35 页 - - - - - - - - - -3-2-1012300.20.40.60.81eDegreeofmembershipNBNMNSZPSPMPB00.050.10.150.20.250.30.350.40.450.50.20.30.40.50.60.70.80.91time(s)kd名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 33 页,共 35 页 - - - - - - - - - -0.25-0.2-0.15-0.1-0.0500.050.10.150.20.2500.20.40.60.81kpDegreeofmembershipNBNMNSZPSPMPB-3-2-1012300.20.40.60.81ecDegreeofmembershipNBNMNSZPSPMPB名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 34 页,共 35 页 - - - - - - - - - 五、思考题1、自适应模糊PID 控制基本原理及框图2、考虑在改变控制对象传递函数的情况下如何修改程序,并以具体实例说明。System fuzzpid: 2 inputs, 3 outputs, 49 rulese (7)ec (7)kp (7)ki (7)kd (7)fuzzpid(m am dani)49 rules-0.06-0.04-0.0200.020.040.0600.20.40.60.81kiDegreeofmembershipNBNMNSZPSPMPB名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 35 页,共 35 页 - - - - - - - - -