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

该博客介绍了使用MATLAB进行风速预测的程序,涉及ARMAX模型的选择与应用。作者通过加载历史风速数据,利用for循环遍历不同参数组合,并计算AIC值来选取最佳模型。程序运行时遇到数据范围警告,可能因数据切片超出原始数据范围。程序二中,进行了数据差分处理,并用ARMAX模型进行预测,最后对比实际与预测风速。作者对于部分程序的理解存在疑问,寻求帮助并希望交流讨论。
摘要由CSDN通过智能技术生成

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

这是我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、付费专栏及课程。

余额充值