Matlab:划分协方差矩阵时出错

时间:2015-03-12 22:23:59

标签: matlab matrix covariance

我有一个表达式,它是高斯状态空间模型的对数似然表达式的一部分

express = 
\sum_{t=2}^T (x(t) - (A*x(t-1)))^2/2*Q  

其中T = 5,样本数/观察数; x是2乘T矩阵; Q是使用eye

初始化的过程噪声的协方差矩阵

x =

0.7311   -1.7152    0.2476    3.6643   -1.2870
0.4360    0.3554    0.1981    0.4168    0.2643

A =

0.1950   -0.9500
1.0000         0

Q =

 1     0
 0     1

我收到此错误:

Error using  / 
Matrix dimensions must agree.

这就是我实施的方式:

numerator =  sum((x(:,2:T)-(A*x(:,1:(T-1)))).^2)

numerator =

2.0732    3.0349    3.2291    1.5365

express = numerator / diag(2*diag(Q))

我应该采用Q的对角线还是决定因素?请帮助纠正这一部分。谢谢。

1 个答案:

答案 0 :(得分:1)

你过早地调整这个词。 (')符号表示您需要在将它乘以Q的倒数然后将该项再次乘以之前取该项的复共轭。我相信你正试图计算这个

formula

在这种情况下,您想要总结的术语如下,

term = x(:,2:T)-(A*x(:,1:(T-1));
result = term' * inv(Q) * term

其结果是4x4矩阵。然后你可以对此进行总结(我假设的两个方向)。从你提到的link中的(7)开始,你应该按照相同的程序三次(对于R,Q和V)。