MATLAB 神经网络预测的问题
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 14:40:28
MATLAB 神经网络预测的问题
我有2001到2008的数据,我可以2001-2003的预测2004的,2001-2004预测2005的,他们之所以能够预测是因为所要预测的年份2004,2005···的都有实测数据,然后用预测值和实测数据比较评价模型···现在的问题是MATLAB神经网络如果没有实测值的能不能进行预测,比如我想依据2001到2008的数据,预测2009,2010的 有没有相关程序
我有2001到2008的数据,我可以2001-2003的预测2004的,2001-2004预测2005的,他们之所以能够预测是因为所要预测的年份2004,2005···的都有实测数据,然后用预测值和实测数据比较评价模型···现在的问题是MATLAB神经网络如果没有实测值的能不能进行预测,比如我想依据2001到2008的数据,预测2009,2010的 有没有相关程序
%神经网络算法
%这是我以前数模校内选拔赛的猪肉价格预测模型的算法,你参考下
clear;clc;
%P=0:0.1:2*pi;T=sin(P);pnew=0:0.01:2*pi;
P=1985:2009;
T=[33139.6,...
33719.1,32773,34221.8,35281,36240.8,36964.6,38421,39300,41461.9,...
44169.2,36283.6,40034.8,42256.3,43144.2,41633.6,41950.5,41776.2,...
41381.8,42123.4,43319.1,41850.4,43989.5,46264,48204.8];
[pn,minp,maxp,tn,mint,maxt]=premnmx(P,T);%
net = newff(minmax(pn),[5 6 1],{'tansig' ,'logsig','purelin'},'trainlm');
%net=init(net);
net.trainParam.show=50;%显示训练结果的间隔步数
net.trainParam.epochs=10000; %最大训练步数
net.trainParam.goal=0.01; %训练目标误差
net.trainParam.lr=0.05;
[net,tr]=train(net,pn,tn);
pnew=1985:2010;
pnewn=tramnmx(pnew,minp,maxp);
anewn=sim(net,pnewn);
tnew=postmnmx(anewn,mint,maxt)
%tnew=sim(net,pnew);
plot(P,T,'*',pnew,tnew,'r');
%P=0:2*pi;T=sin(P);pnew=0:0.1:2*pi;
%
%
%这是我以前数模校内选拔赛的猪肉价格预测模型的算法,你参考下
clear;clc;
%P=0:0.1:2*pi;T=sin(P);pnew=0:0.01:2*pi;
P=1985:2009;
T=[33139.6,...
33719.1,32773,34221.8,35281,36240.8,36964.6,38421,39300,41461.9,...
44169.2,36283.6,40034.8,42256.3,43144.2,41633.6,41950.5,41776.2,...
41381.8,42123.4,43319.1,41850.4,43989.5,46264,48204.8];
[pn,minp,maxp,tn,mint,maxt]=premnmx(P,T);%
net = newff(minmax(pn),[5 6 1],{'tansig' ,'logsig','purelin'},'trainlm');
%net=init(net);
net.trainParam.show=50;%显示训练结果的间隔步数
net.trainParam.epochs=10000; %最大训练步数
net.trainParam.goal=0.01; %训练目标误差
net.trainParam.lr=0.05;
[net,tr]=train(net,pn,tn);
pnew=1985:2010;
pnewn=tramnmx(pnew,minp,maxp);
anewn=sim(net,pnewn);
tnew=postmnmx(anewn,mint,maxt)
%tnew=sim(net,pnew);
plot(P,T,'*',pnew,tnew,'r');
%P=0:2*pi;T=sin(P);pnew=0:0.1:2*pi;
%
%