主要问题包括:
1、变量x未定义。
2、函数MUSIC里面:
S=[S(257:512)S(1:256)]应为
S=[S(257:512) S(1:256)]另外,clearR未定义,不知道干什么用的,可以直接删掉。
3、函数ARMA里面,调用的Burg未定义。
满意请采纳%下面要对差分以后的序列进行拟合和预测,求出最好的阶数
z=[DXzeros(12,1)]
z=iddata(z)
test=[]
for p=1:12
for q=1:12
m=armax(z(1:200),[p q])
AIC=aic(m)
test=[testp q AIC]
end
end
for k=1:size(test,1)
if test(k,3)==min(test(:,3))
p_test=test(k,1)
q_test=test(k,2)
break
end
end
%拟合
m1=armax(z(1:200),[p_test q_test])
figure(5)
e = resid(m1,z)
plot(e)
set(gca,'Xlim',[0 ls])
figure(6)
subplot(2,1,1)
autocorr(e.outputdata)
subplot(2,1,2)
parcorr(e.outputdata)
set(gca,'Xlim',[0 ls])
%预测过程
pr=predict(m1,z,12)
po=pr.outputdata
figure(7)
plot(po,'r')
hold on
plot(y,'b')
set(gca,'Xlim',[0 ls])
用Matlab求ARMA模型的残差数组Y X,方程y=f(x)
则残差c=Y-y
[b, bint,r,rint,stats]=regress(Y,X,alpha)
rcoplot(r,rint)做残差图
从残差图可以看出数据的残差离零点的远近,当残差的置信区间均包含零点,这说明回归模型 能较好的符合原始数据,否则可视为异常点。
MATLAB[1] 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)