m10_6.m

来自「MATLAB控制系统仿真与实例详解(附书光盘)」· M 代码 · 共 34 行

M
34
字号
 %通过下面两个参数值的改变比较结果
                 
                  %定义要逼近的非线性函数
                  p = [-1:.05:1];
                  t = sin(pi*p);
                  plot(p,t,'-')
                  title('要逼近的非线性函数');
                  xlabel('时间');
                  ylabel('非线性函数');
                  %建立相应的BP网络
                  net = newff(minmax(p),[10,1],{'tansig' 'purelin'},'trainlm');
                  %对没有训练的网络进行仿真
                  y1 = sim(net,p);
                  %绘出仿真得到的曲线
                  figure;
                  plot(p,t,'-',p,y1,'--')
                  title('没有训练的网络仿真结果');
                  xlabel('时间');
                  ylabel('仿真输出--  原函数-');
                  %训练网络
                  net.trainParam.epochs = 50;
                  net.trainParam.goal = 0.01;
                  net = train(net,p,t);
                  %对训练后的网络进行仿真
                  y2 = sim(net,p);
                  %绘出训练后的仿真结果
                  figure;
                  plot(p,t,'-',p,y1,'--',p,y2,'--')
                  title('训练后的网络仿真结果');
                  xlabel('时间');
                  ylabel('仿真输出');


⌨️ 快捷键说明

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