matlab bp预测函数,Matlab的BP如何预测后面的几个点

已知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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值