my1.m

来自「一个bp的逼近算法」· M 代码 · 共 40 行

M
40
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   求逼近问题                        %
% author : shanjiao (lin_HuiQiang)    %
% day    : 2004/11/11                 %
% time   :    10:30                   %
% what   : 作业1                      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%初始化训练矩阵u,u的范围是[-0.5 0.5],步长0.05
u=[-0.5:0.05:0.5]
x=[0:1:20]
%计算d,以便得到输出,并用这个输出,作为教导信号
j=1;
for i=-0.5:0.05:0.5
    d(j)=exp(-1.9*(i+0.5))*sin(10*i);
    j=j+1;
end 

%建立网络,[1,10,1]
net=newff([-0.5 0.5],[10,1],{'tansig' 'purelin'});
%训练前先进行一次仿真
a1=sim(net,u);
%设置训练参数:训练次数5000,目标:误差限0.01,训练方法是bp普通算法
net.trainParam.epochs=5000;
net.trainParam.goal=0.0001;
net=train(net,u,d);
%训练完成后进行仿真
a2=sim(net,u);

%将结果绘图比较:原图像,训练前的网络仿真图,训练后的网络仿真图
axis([-0.5 0.5 0 20])
figure 
plot(x,u,'o');
figure
plot(x,d,'ro');
figure
plot(x,a1,'b-');
figure
plot(x,a2,'*');

⌨️ 快捷键说明

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