风速威布尔分布和ARMA预测模型matlab程序.doc

风速威布尔分布和ARMA预测模型matlab程序.doc

ID:60755880

大小:22.00 KB

页数:4页

时间:2020-12-13

风速威布尔分布和ARMA预测模型matlab程序.doc_第1页
风速威布尔分布和ARMA预测模型matlab程序.doc_第2页
风速威布尔分布和ARMA预测模型matlab程序.doc_第3页
风速威布尔分布和ARMA预测模型matlab程序.doc_第4页
资源描述:

《风速威布尔分布和ARMA预测模型matlab程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、__________________________________________________clcclear%%1.计算风速weibull分布%数据处理loaddata;mu=mean(speed);%原始数据的统计参数sigma=sqrt(var(speed));%计算威布尔分布参数parmhat=wblfit(speed);k=parmhat(2);c=parmhat(1);%k=(sigma/mu)^-1.086;%c=mu/gamma(1+1/k);%威布尔分布拟合[y,x]=hist(speed,ceil(max(speed)

2、/0.5));%x是区间中心数,组距-1.5prob1=y/8760/0.5;%计算原始数据概率密度,频数除以数据种数,除以组距prob2=(k/c)*(x/c).^(k-1).*exp(-(x/c).^k);%威布尔分布figure(1)title('Weibull分布拟合图');bar(x,prob1,1)holdonplot(x,prob2,'r')legend('历史数据','Weibull拟合结果')%legend('Weibull拟合结果')holdoffsave('result_weibull.mat')%%2.ARMA模型预测风

3、速clcclearloaddatay=speed(1:300);Data=y;%共300个数据SourceData=Data(1:250,1);%前250个训练集step=50;%后50个测试TempData=SourceData;TempData=detrend(TempData);%去趋势线收集于网络,如有侵权请联系管理员删除__________________________________________________TrendData=SourceData-TempData;%趋势函数%--------差分,平稳化时间序列-----

4、----H=adftest(TempData);difftime=0;SaveDiffData=[];while~HSaveDiffData=[SaveDiffData,TempData(1,1)];TempData=diff(TempData);%差分,平稳化时间序列difftime=difftime+1;%差分次数H=adftest(TempData);%adf检验,判断时间序列是否平稳化end%---------模型定阶或识别--------------u=iddata(TempData);test=[];forp=1:5%自回归对应PA

5、CF,给定滞后长度上限p和q,一般取为T/10、ln(T)或T^(1/2),这里取T/10=12forq=1:5%移动平均对应ACFm=armax(u,[pq]);AIC=aic(m);%armax(p,q),计算AICtest=[test;pqAIC];endendfork=1:size(test,1)iftest(k,3)==min(test(:,3))%选择AIC值最小的模型p_test=test(k,1);q_test=test(k,2);break;endend%------1阶预测-----------------TempData=

6、[TempData;zeros(step,1)];n=iddata(TempData);%m=armax(u(1:ls),[p_testq_test]);%armax(p,q),[p_testq_test]对应AIC值最小,自动回归滑动平均模型m=armax(u,[p_testq_test]);%-------------------------------------------P1=predict(m,n,1);PreR=P1.OutputData;PreR=PreR';Noise.std=sqrt(m.NoiseVariance);e=n

7、ormrnd(0,Noise.std,1,300);收集于网络,如有侵权请联系管理员删除__________________________________________________fori=251:300PreR(i)=-m.A(2:p_test+1)*PreR(i-1:-1:i-p_test)'+m.C(1:q_test+1)*e(i:-1:i-q_test)';end%-------------------------------------------%----------还原差分-----------------ifsize(S

8、aveDiffData,2)~=0forindex=size(SaveDiffData,2):-1:1PreR=cumsum([SaveDiffDat

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。