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

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

这是我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('蓝色为预测风速,红色为实际风速')

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值