%======================================================================
% Copyright (C) 2005
% All rights reserved.
% File name: FriedmanI.m
% Notes: 应用RBF网络对 Friedman #1 进行函数逼近
% 检验反向传播的逼近效果
% 最简单的简单的梯度下降算法
% Version: 1.0
% Author: bug zhang
% Date: 2005.1
%======================================================================
close all %关闭所有的窗口
clear all %清除所有的变量
k=input('训练集点数=k,k=[3000] ');
if isempty(k),
k=3000;
end;
L=input('最大隐层神经元个数=L,L=[300] ');
if isempty(L),
L=300;
end;
S=input('归一化参数=S,S=[1] ');
if isempty(S),
S=1;
end;
X1=rand(1,k);
X2=rand(1,k);
X3=rand(1,k);
X4=rand(1,k);
X5=rand(1,k);
X=[X1;X2;X3;X4;X5];
Y=10.*sin(pi.*X1.*X2)+20*(X3-0.5).^2+10.*X4+5.*X5;
net=newrb(X,Y,0,S,L);
X1=rand(1,3000);
X2=rand(1,3000);
X3=rand(1,3000);
X4=rand(1,3000);
X5=rand(1,3000);
X=[X1;X2;X3;X4;X5];
Y1=10.*sin(pi.*X1.*X2)+20.*(X3-0.5).^2+10.*X4+5.*X5;
Y2=sim(net,X);
R=linspace(min(Y1),max(Y1),1000);
T=R;
figure(2)
plot(R,T,'-k',Y1,Y2,'+r')