当前位置:   article > 正文

matlab armax 预测,MATLAB中ARMA模型预测差分问题

armax函数 matlab

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

这是我MATLAB预测风速的程序,程序不是我自己写的,我也是拿来参考自己的毕业作业的.每条程序旁的中文是我自己的理解,我也不知道对不对。

程序1

X=load('C:\Users\asus\Desktop\1-3.txt'); 这是我的历史风速写在了桌面的文档里

x=X(1:98);选中我文档中的第一个到第九十八数据

Z=iddata(x);将选中的数据输入模型中

test=[] 这个不是很清楚,是test函数之类的么?

for p=1:9 for循环函数 p和q在1-9里循环选择吧

for q=1:9

m=armax(Z(1:100),[p,q]) 将选好的p和q代入到ARMA模型中

AIC=aic(m);将p和q代入计算AIC函数

test=[test;p q AIC];

end

end

for k=1:size(test,1) 这段不知道k是什么意思,也知道size是什么意思 大致就知道要选择p和q最小值?

if test(k,3) == min(test(:,3))

p_test=test(k,1)

q_test=test(k,2)

end

end

而程序一我输入到malab中能的出p和q的值 但是也会有警告: Data sample indices extend beyond the available data range. Only the samples in the

available range will be returned. 数据样本索引超出了可用数据范围。只返回可用范围内的样品。

> In ctrlMsgUtils.warning (line 25)

In iddata/subsref>indexref (line 174)

In iddata/subsref (line 47) 不理解为什么超出可用范围。。。

程序二

clc

clear

q_test = 3;p和q的最小值

p_test = 3;

X=load('C:\Users\asus\Desktop\1-3.txt');

X5=X(94:98); 预测第94个到第98个数据

X=X(1:93);前面93个数据

plot(1:length(X),X);将93个数据出图

Y = diff(X);重点。这个是差分函数的意思么???因为后续我的老师告诉我差分函数的结果原数据不会和差分后的数据有很大的差别,但事实出来的图有很大差别。。。

figure(2)

plot(1:length(Y),Y)

Z=iddata(Y);而这里之后也不是恨了解了,但看上去就像一直在转换一样的,姑且认为是为预测做转化准备。

m=armax(Z,[p_test q_test]);

L=5;

y=[Y;zeros(L,1)];

p = iddata(y);

P = predict(m,p,L);

G = get(P);

PT = G.OutputData{1,1}(length(Y)+1:length(Y)+L,1);

D = [Y;PT];

X1 = cumsum([X(1);D]);

X2 = X1(length(X)+1:end);

compare(m,Z,L)

figure(3)

plot(1:5,X2,'b',1:5,X5,'r')

title('蓝色为预测风速,红色为实际风速')

对于这个程序,自己还有很多不了解的,所以想发出来交流交流,也请指点指点小弟。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/182569?site
推荐阅读
相关标签
  

闽ICP备14008679号