gusucode.com > 《MATLAB神经网络超级学习手册》随书光盘源码程序 > code/15/N15_4.m
clear all clc P=[4 5 6]; T=[1.5 3.6 6.7]; net=newgrnn(P,T); %仿真验证 p=4.5; v=sim(net,p) %PNN网络,概率神经网络 P=[0 0 ;1 1;0 3;1 4;3 1;4 1;4 3]'; Tc=[1 1 2 2 3 3 3]; %将期望输出通过ind2vec()转换,并设计、验证网络 T=ind2vec(Tc); net=newpnn(P,T); Y=sim(net,P); Yc=vec2ind(Y) %尝试用其他的输入向量验证网络 P2=[1 4;0 1;5 2]'; Y=sim(net,P2); Yc=vec2ind(Y) %应用newrb()函数构建径向基网络,对一系列数据点进行函数逼近 P=-1:0.1:1; T=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609... 0.1336 -0.2013 -0.4344 -0.500 -0.3930 -0.1647 -0.0988... 0.3072 0.3960 0.3449 0.1816 -0.0312 -0.2189 -0.3201]; %绘制训练用样本的数据点 plot(P,T,'r*'); title('训练样本'); xlabel('输入向量P'); ylabel('目标向量T'); %绘制隐层神经元径向基传递函数的曲线 p=-3:.1:3; a=radbas(p); plot(p,a) title('径向基传递函数') xlabel('输入向量p') %应用newrb()函数构建径向基网络的时候,可以预先设定均方差精度eg以及散布常数sc eg=0.02; sc=1; %其值的选取与最终网络的效果有很大关系,过小造成过适性,过大造成重叠性 net=newrb(P,T,eg,sc); %网络测试 plot(P,T,'*') xlabel('输入向量'); X=-1:.01:1; Y=sim(net,X); hold on plot(X,Y); hold on legend('目标向量','仿真输出')