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

Matlab: Error when dividing the covariance matrix

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

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

其中T=5,数量samples/observations; 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

一个=

0.1950   -0.9500
1.0000         0

问=

 1     0
 0     1

我收到此错误:

Error using  / 
Matrix dimensions must agree.

我是这样实现的:

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

分子=

2.0732    3.0349    3.2291    1.5365

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

我应该取 Q 的对角线还是行列式?请帮助更正这部分。谢谢。

你对这个词求平方太早了。 (') 符号表示您需要先取该项的复共轭,然后再将其乘以 Q 的倒数,然后再乘以该项。我相信你正在尝试计算这个

formula

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

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

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