input_train=inputtrain;
output_train=outputtrain;
input_test=inputtest;
output_test=outputtest;
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%net=newff(minmax(input_train),[8,6,1],{'tansig','tansig','purelin'},'trainlm');
net= newff(inputn,outputn, 6);
net.trainParam.epochs = 50000;
net.trainParam.lr=1;
net.trainParam.goal=0.01;
net=train(net,inputn,outputn);
inputn_test=mapminmax('apply',input_test,inputps);
an=sim(net,inputn_test);
BPoutput=mapminmax('reverse',an,outputps);
figure(1)
plot(BPoutput,':og');
hold on;
plot(output_test ,'-*');
legend('预测输出','期望输出');
title('BP网络预测输出','fontsize',12);
ylabel('函数输出','fontsize',12);
xlabel('样本','fontsize',12);
error= BPoutput-output_test;
figure(2)
plot(error ,'-*');
title('BP网络预测误差','fontsize',12);
ylabel('误差','fontsize',12);
xlabel('样本','fontsize',12);