- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于均值生成函数时间序列预测算法程序
基于均值生成函数时间序列预测算法程序1. predict_fun.m为主程序;2. timeseries.m和 seriesexpan.m为调用的子程序function ima_pre=predict_fun(b,step)% main program invokes timeseries.m and seriesexpan.m% input parameters:% b-------the training data (vector);% step----number of prediction data;% output parameters:% ima_pre---the prediction data(vector);old_b=b;mean_b=sum(old_b)/length(old_b);std_b=std(old_b);old_b=(old_b-mean_b)/std_b;[f,x]=timeseries(old_b);old_f2=seriesexpan(old_b,step);% f(f0.0001f-0.0001)=f(f0.0001f-0.0001)+eps;R=corrcoef(f);[eigvector eigroot]=eig(R);eigroot=diag(eigroot);a=eigroot(end:-1:1);vector=eigvector(:,end:-1:1);Devote=a./sum(a);Devotem=cumsum(Devote);m=find(Devotem=0.995);m=m(1);V1=f*eigvector;V=V1(:,1:m);% old_b=old_b;old_fai=inv(V*V)*V*old_b;eigvector=eigvector(1:m,1:m);fai=eigvector*old_fai;f2=old_f2(:,1:m);predictvalue=f2*fai;ima_pre=std_b*predictvalue+mean_b;
1.子函数: timeseries.m % timeseries program%% this program is used to generate mean value matrix f;function [f,x]=timeseries(data) % data--------the input sequence (vector);% f------mean value matrix f;n=length(data);for L=1:n/2? ? nL=floor(n/L);? ? for i=1:L? ?? ???sum=0;? ?? ???for j=1:nL? ?? ?? ???sum=sum+data(i+(j-1)*L);? ?? ? end? ?? ? x{L,i}=sum/nL;? ?endendL=n/2;f=zeros(n,L);for i=1:L? ? rep=floor(n/i);? ? res=mod(n,i);? ? b=[x{i,1:i}];b=b;? ? f(1:rep*i,i)=repmat(b,rep,1);? ? if res~=0? ?? ???c=rep*i+1:n;? ?? ???f(rep*i+1:end,i)=b(1:length(c));? ? endend
接上,seriesexpan.m% seriesexpan.m% the program is used to generate the prediction matrix f; function f=seriesexpan(data,step);%data---- the input sequence (vector)% setp---- the prediction number;n=length(data);for L=1:n/2? ? nL=floor(n/L);? ? for i=1:L? ?? ???sum=0;? ?? ???for j=1:nL? ?? ?? ???sum=sum+data(i+(j-1)*L);? ?? ? end? ?? ? x{L,i}=sum/nL;? ?endendL=n/2;f=zeros(n+step,L);for i=1:L? ? rep=floor((n+step)/i);? ? res=mod(n+step,i);? ? b=[x{i,1:i}];b=b;? ? f(1:rep*i,i)=repm
原创力文档


文档评论(0)