gusucode.com > 《MATLAB神经网络超级学习手册》随书光盘源码程序 > code/16/N16_1.m

    clear all
clc
%  定义训练样本变量 
% P 为输入变量 
P = [-1:0.05:1]; 
% T 为目标变量 
%randn('seed',78341223); 
T = sin(2*pi*P)+0.1*randn(size(P)); 
%  绘制样本数据点
figure(1)
plot(P,T,'+'); 
title('绘制样本数据点');
xlabel('输入变量');
ylabel('目标变量'); 
hold on; 
%  绘制不含噪声的正弦曲线
figure(2)
plot(P,sin(2*pi*P),':');     
title('绘制不含噪声的数据点');
xlabel('输入变量');
ylabel('不含噪声的数据点'); 
hold on
%  创建一个新的前向神经网络 
net=newff(minmax(P),[20,1],{'tansig','purelin'}); 
%  采用 L-M 优化算法 TRAINLM 
net.trainFcn='trainlm';            
%  设置训练参数         
net.trainParam.epochs = 200;         
net.trainParam.goal = 1e-6;  
% 重新初始化  
net=init(net);               
% %  采用贝叶斯正则化算法 TRAINBR         
% net.trainFcn='trainbr';                
% %  设置训练参数         
% net.trainParam.epochs = 200;         
% randn('seed',192736547); 
% %  重新初始化 
% net = init(net);        
%         
%  调用相应算法训练 BP 网络 
[net,tr]=train(net,P,T); 
%  对 BP 网络进行仿真 
A = sim(net,P); 
%  计算仿真误差 
E = T - A; 
MSE=mse(E) 
%  绘制匹配结果曲线 
figure(3)
plot(P,A,P,T,'+'); 
title('仿真结果比较');
xlabel('输入变量');
ylabel('仿真误差和目标变量'); 
hold on