gusucode.com > 《MATLAB神经网络超级学习手册》随书光盘源码程序 > code/8/N8_5_2.m
clc clear all %%%%%%%%产生输入变量x1 x2%%%%%%%%%%%%%%% x=rand(2,200); %将x转换到[-1 1]之间 x=(x-0.5)*1*2; x1=x(1,:); x2=x(2,:); %%%%%%%%产生输出变量y%%%%%%%%%%%%%%%%%% y=30+x1.^2-5*cos(2*pi*x1)+3*x2.^2-5*cos(2*pi*x2); %%%%%%%%建立RBF网络%%%%%%%%%%%%%%%%%%%% %采用approximate RBF神经网络。spread为默认值 net=newrb(x,y); %%%%%%%%建立测试样本%%%%%%%%%%%%%%%%%% [n,m]=meshgrid(-1:0.1:1); row=size(n); tx1=n(:); tx1=tx1'; tx2=m(:); tx2=tx2'; tx=[tx1;tx2]; %%%%%%%%网络仿真%%%%%%%%%%%%%%%%%%%%%%% t=sim(net,tx); %%%%%%%%绘制3维图%%%%%%%%%%%%%%%%% figure(2) %网络仿真得到的函数图像 p=reshape(t,row); subplot(1,3,1) mesh(n,m,p); zlim([0,50]) title('仿真结果图象') %目标函数图像 [x1, x2]=meshgrid(-1:0.1:1); y=30+x1.^2-5*cos(2*pi*x1)+3*x2.^2-5*cos(2*pi*x2); subplot(1,3,2) mesh(x1,x2,y); zlim([0,50]) title('目标函数图像') %目标函数图象和仿真函数图象的误差图像 subplot(1,3,3) mesh(x1,x2,y-p); zlim([-0.1,0.05]) title('误差图像') set(gcf,'position',[400 ,280,880,390])