?? bp1.m
字號:
clc
clear
close all
%定義要逼近的非線性函數
x1=[-1:0.1:1];
x2=[-1:0.1:1];
t=sin(pi*x1)*cos(pi*x2);
figure;
mesh(x1,x2,t);
title('要逼近函數的三維圖形');
xlabel('x1軸');
ylabel('x2軸');
zlabel('輸出函數');
%建立相應的前饋BP網絡
p=[-1,1;-1,1];
net=newff(p,[8,8,64,1],{'radbas' 'netprod' 'normprod' 'purelin'},'trainlm');
net.trainParam.epochs=20;
net.trainParam.goal=0.05;
[net,tr]=train(net,p,t);
m1=tr;
y1=net.trainParam.goal;
y=sim(net,p);
figure;
mesh(x1,x2,y);
title('訓練后的網絡仿真結果');
xlabel('x1軸');
ylabel('x2軸');
zlabel('仿真輸出');
eg=0.05;
r=0.25; %學習率
net=newrb(p,t,eg,r);
net.trainParam.epochs=20;
net.trainParam.goal=0.05;
[net,tr]=train(net,p,t);
m2=tr;
y2=net.trainParam.goal;
plot(m1,y1,'-',m2,y2,'--');
axis([1,10,0,0.3]);
title('學習曲線');
xlabel('t');
ylabel('e(RMS)');
legend('學習率為0.7','學習率為0.25');
grid on;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -