clc
tuolingdata4;
P=AA(:,1:5);
T=AA(:,6);
X=P;
Y=T;
[Xn,minX,maxX,Yn,minY,maxY] = premnmx(P',T');%数据归一化处理
[mX,nX]=size(X);
[mY,nY]=size(Y);
nTest=60;
Xn1=Xn(:,1:(mX-nTest));
Xn2=Xn(:,(mX-nTest+1):mX);
Yn1=Yn(:,1:(mX-nTest));
Yn2=Yn(:,(mX-nTest+1):mX);
Y1=Y(1:(mX-nTest),:);
Y2=Y((mX-nTest+1):mX,:);
%minmax returns the Rx2 matrix of minimum and maximum values for each
%row of M.
%net = newff(minmax(Xn1),[S1 S2],{'logsig' 'purelin'},'trainlm');
%net = newff(minmax(Xn1),[S1 S2],{'logsig' 'purelin'},'trainbfg');
%Network Training
%net.trainParam.goal = (0.01);
%net.trainParam.epochs = 1000;
%net.trainParam.show = 5;
%net = train(net,Xn1,Yn1);
%Network Testing
goal=0.1;
sp=1;
mn=300;
df=1;
net=newrb(Xn1,Yn1,goal,sp,mn,df)
%simulate the network:
Ybn1 = sim(net,Xn1)
Yb1 = postmnmx(Ybn1,minY,maxY);
Ybn2 = sim(net,Xn2);
Yb2 = postmnmx(Ybn2,minY,maxY);
SSE=sum((Ybn1-Yn1).^2) %误差平方和
MES=SSE/(mX-nTest) %均方误差
SSE=sum((Yb1-Y1').^2) %误差平方和
MES=SSE/(mX-nTest) %均方误差
disp('fitting Error is:');
Err_Bp1=sqrt(sumsqr(Y1'-Yb1)/(size(Yn1,2)));
%Err_Bp1=sumsqr(Y1'-Yb1)/(size(Yn1,2));
disp(Err_Bp1);
e1=Y1'-Yb1;
e1=abs(e1);
er1=e1./Y1';%平均相对误差
er1=sum(er1)/(size(er1,2));
disp(er1);
%平均绝对误差
er3=sum(e1)/(size(e1,2));
disp(er3);
disp('testing Error is:');
Err_Bp2=sqrt(sumsqr(Y2'-Yb2)/(size(Yn2,2)));
%Err_Bp2=sumsqr(Y2'-Yb2)/(size(Yn2,2));
disp(Err_Bp2);
%平均相对误差
e2=Y2'-Yb2;
e2=abs(e2);
er2=e2./Y2';
er2=sum(er2)/(size(er2,2));
disp(er2);
%平均绝对误差
er4=sum(e2)/(size(e2,2));
disp(er4);
%Err_Bp1=std(Y1'-Yb1)
%Err_Bp2=std(Y2'-Yb2)
Yb=[Yb1 Yb2];
figure(2);
ct=1:1:Q;
plot(ct,Y','r-.',ct,Yb,'b-');
legend('process value','RBF output');
xlabel('Sample No');
ylabel('Value');
figure(3);%画出训练样本的拟合效果图
ct=1:1:(mX-nTest);
plot(ct,Y1,'r:',ct,Yb1,'b-');
legend('value desired','RBF out');
xlabel('Sample No');
ylabel('Value');
%Network Testing
figure(4);%画出检验样本的拟合效果图
ct=(mX-nTest+1):1:Q;
plot(ct,Y2,'r:',ct,Yb2,'b-');
legend('value desired','RBF out');
xlabel('sample No.');
ylabel('Value');
%save net.IW, net.b,net.LW bpw.dat -ascii;
celldisp(net.IW);%Display IW;
celldisp(net.LW);%Display LW;
celldisp(net.b);%Display b;