gusucode.com > 《MATLAB神经网络超级学习手册》随书光盘源码程序 > code/16/N16_1_1.m
clear all clc % 定义训练样本矢量 % P 为输入矢量 P = [-1:0.05:1]; % T 为目标矢量 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; % 定义验证样本 % 验证样本的输入矢量 v.P = [-0.975:0.05:0.975]; % 验证样本的目标矢量 v.T = sin(2*pi*v.P)+0.1*randn(size(v.P)); % 创建一个新的前向神经网络 net=newff(minmax(P),[5,1],{'tansig','purelin'},'traingdx'); % 设置训练参数 net.trainParam.epochs = 500; net.trainParam.goal = 1e-6; net = init(net); % 训练 BP 网络 [net,tr]=train(net,P,T,[],[],v); % 对 BP 网络进行仿真 A = sim(net,P); % 计算仿真误差 E = T - A; MSE=mse(E) % 绘制仿真拟合结果曲线 figure(3) plot(P,A,P,T,'+'); title('绘制样本数据点'); xlabel('输入变量'); ylabel('目标变量');