BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #11149同步于 2014/8/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

[问题]时间序列模型预测电离层TEC浓度,代码求解?

cwhe10
2014/8/21镜像同步2 回复
%武汉大学学报-信息科学版(论文) %利用时间序列分析预报电离层TEC--陈鹏 %本文仿真该论文的图1(b)-即北纬45度,东经125度,年积日201-207,预报年积日208-208,使用精密星历数据 D0=[8.7 8.2 7.7 8.0 7.7 7.3 10.8 10 7.1 6.4 7.3 8.9 ... 8.8 8.1 8.1 8.9 7.9 8.4 10 8.2 5.4 4.7 5.7 8.1 ... 8.4 9.5 7.7 7.7 7.9 8.3 10.9 10.4 6.7 6.1 6.2 7.4 ... 7.8 8 7.9 7.4 8.4 7.6 10.3 9.8 6.0 5.8 6.3 7.8 ... 8.4 8.4 8.6 10.1 9.7 9.0 10.2 8.7 5.5 4.8 4.6 6.1 ... 8.9 8.2 7.6 7.8 7.5 7.6 9.4 8.8 5.5 5.0 5.6 6.9 ... 7.8 7.8 7.1 7.2 7.6 7.7 8.6 8.2 5.5 4.9 5.5 7.2 ]; L0=length(D0); subplot(1,3,1) plot(D0,'r'); grid on title('原始电离层201-207精密星历数据曲线'); %一阶差分数据 for i=13:L0 %一阶差分数据,因为其周期是12,所以。。。 D1(i-12)=D0(i)-D0(i-12); %D1长度为1-72 end L1=length(D1); subplot(1,3,2); plot(D1,'b'); grid on; title('一阶差分电离层201-207精密星历数据,去周期性后的曲线'); %测试一阶差分数据后的均值和方差,是否满足ARMA建模要求 S1=sum(D1)/72; LOSS1=D1(1:L1); V1=var(LOSS1); %一阶差分数据的和与方差 %二阶差分数据 for i=2:L1 %一阶差分数据 D2(i-1)=D1(i)-D1(i-1); %D1长度为1-84 end L2=length(D2); subplot(1,3,3); plot(D2,'b'); grid on; title('二阶差分电离层201-207精密星历数据曲线'); %测试二阶差分数据后的均值和方差,是否满足ARMA建模要求 S2=sum(D2)/71; %S2=0.027 LOSS2=D2(1:L2); V2=var(LOSS2); %V2=3.38 综合上述结果,得出结论:采用一阶差分数据建模 %二阶差分数据标准正太话 D22=(D2-S2)/sqrt(V2); %标准化 %求解自相关系数,定阶AR系数 R0=D22*D22'/72; for i=1:10 R(i)=0; for j=(i+1):L2 R(i)=D22(j)*D22(j-i)/(72-i)+R(i); end end figure; P=[R0 R]; P=P/R0; u=2/sqrt(71);%u=0.2195 plot(P,'r'); grid on title('自相关系数图');%由图可知,可能的模型为AR(5)或MA模型 %求偏自相关系数,定阶MA系数 kk(1)=P(1); PLL1=[P(1) P(2)]; PLL2=toeplitz(PLL1); PRR=[P(2) P(3)]; KK=inv(PLL2'*PLL2)*PLL2'*PRR'; kk(2)=KK(2); %Y-W方程求解偏相关系数 2 PLL1=[PLL1 P(3)]; PLL2=toeplitz(PLL1); PRR=[PRR P(4)]; KK=inv(PLL2'*PLL2)*PLL2'*PRR'; kk(3)=KK(3); %Y-W方程求解偏相关系数 3 PLL1=[PLL1 P(4)]; PLL2=toeplitz(PLL1); PRR=[PRR P(5)]; KK=inv(PLL2'*PLL2)*PLL2'*PRR'; kk(4)=KK(4); %Y-W方程求解偏相关系数 4 PLL1=[PLL1 P(5)]; PLL2=toeplitz(PLL1); PRR=[PRR P(6)]; KK=inv(PLL2'*PLL2)*PLL2'*PRR'; kk(5)=KK(5); %Y-W方程求解偏相关系数 5 PLL1=[PLL1 P(6)]; PLL2=toeplitz(PLL1); PRR=[PRR P(7)]; KK=inv(PLL2'*PLL2)*PLL2'*PRR'; kk(6)=KK(6); %Y-W方程求解偏相关系数 6 PLL1=[PLL1 P(7)]; PLL2=toeplitz(PLL1); PRR=[PRR P(8)]; KK=inv(PLL2'*PLL2)*PLL2'*PRR'; kk(7)=KK(7); %Y-W方程求解偏相关系数 7 PLL1=[PLL1 P(8)]; PLL2=toeplitz(PLL1); PRR=[PRR P(9)]; KK=inv(PLL2'*PLL2)*PLL2'*PRR'; kk(8)=KK(8); %Y-W方程求解偏相关系数 8 %绘制偏自相关曲线图 figure plot(kk,'r'); grid on title('偏自相关曲线图'); %定阶MA(4) %AR(4)模型求偏相关系数 PLLl=[P(1) P(2) P(3) P(4)]; PLLl=toeplitz(PLLl); PRRz=[ P(2) P(3) P(4) P(5)]'; KKz=inv(PLLl'*PLLl)*PLLl'*PRRz; %预测后续84的数据,即星历208-214共计7天数数据 D222=D22(68:71); for j=5:88 D222(j)=KKz(1)*D222(j-1)+KKz(2)*D222(j-2)+KKz(3)*D222(j-3)+KKz(4)*D222(j-4); end Forcast=D222(5:88); Forcast=Forcast*V2+S2; %反差分运算,递推预测的84个数据 for i=1:84 D1(72+i)=Forcast(i)+D1(71+i); D0(84+i)=D1(72+i)+D0(83+i); end figure plot(D0,'b'); %hold on %plot(D0(85:168),'r'); title('预测曲线图') 注释:附件为预测曲线图,这个图是有问题的,并没有真实的预测出来,希望哪位高手可以解决下,怎么弄啊?
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
cwhe10机器人#1 · 2014/8/21
高手可以给个电话,我打过去问问的,非常感谢啊,最近做这个预测,做了一个多月了,没搞明白哪
dannian机器人#2 · 2014/8/24
。。。。不懂 只能帮顶了。。 【 在 cwhe10 (黎明前的夜!) 的大作中提到: 】 : %武汉大学学报-信息科学版(论文) : %利用时间序列分析预报电离层TEC--陈鹏 : %本文仿真该论文的图1(b)-即北纬45度,东经125度,年积日201-207,预报年积日208-208,使用精密星历数据 : ...................