已知15个点的数据,想预测后面的5个点,用BP做了拟合,不知道下一步该怎么办,如何把后面的5个点给弄出来,求教大侠指教
clc
clear
close all
P1=[1:1:15]; % 训练样本
T1=[ 4 6.4 8 8.4 9.28 9.5 9.7 9.86 10.2 10.32 10.42 10.5 10.55 10.58 10.6];
P2=[2:1:15]; %测试样本
T2=[6.4 8 8.4 9.28 9.5 9.7 9.86 10.2 10.32 10.42 10.5 10.55 10.58 10.6];
%---------------------------------------------------
% 归一化
[PN1,minp,maxp,TN1,mint,maxt] = premnmx(P1,T1);
PN2 = tramnmx(P2,minp,maxp);
TN2 = tramnmx(T2,mint,maxt);
%---------------------------------------------------
% 设置网络参数
NodeNum = 20; % 隐层节点数
TypeNum = 1; % 输出维数
TF1 = 'tansig';TF2 = 'purelin'; % 判别函数(缺省值)
net = newff(minmax(PN1),[NodeNum TypeNum],{TF1 TF2});
%---------------------------------------------------
% 指定训练参数
net.trainParam.show=10;
net.trainParam.epochs=1000;
net.trainParam.goal=1.0e-3;
net.trainParam.lr=0.3;
%---------------------------------------------------
% 训练
net = train(net,PN1,TN1); % 训练
%---------------------------------------------------
% 测试
YN1 = sim(net,PN1); % 训练样本实际输出
YN2 = sim(net,PN2); % 测试样本实际输出
MSE1 = mean((TN1-YN1).^2) % 训练均方误差
MSE2 = mean((TN2-YN2).^2) % 测试均方误差
%---------------------------------------------------
% 反归一化
Y2 = postmnmx(YN2,mint,maxt);
%---------------------------------------------------
% 结果作图
subplot(1,2,1);
%为给定的测量实际数据
plot(1:length(T1),T1,'r+:')
subplot(1,2,2);
%为曲线拟合的图形
plot(Y2);