【发布时间】:2012-07-31 21:08:53
【问题描述】:
我正在编写一个函数来获取两个向量之间的马氏距离。我知道这是使用方程 a'*C^-1*b 实现的,其中 a 和 b 是向量,C 是协方差矩阵。我的问题是,有没有一种有效的方法可以在不使用 Gauss-Jordan 消除的情况下找到矩阵的逆矩阵,或者没有办法解决这个问题?我正在寻找一种自己做的方法,而不是使用任何预定义的函数。
我知道 C 是 Hermitian 正定矩阵,那么有什么方法可以在算法上利用这个事实吗?还是有一些聪明的方法可以计算马氏距离而不计算协方差的倒数?任何帮助将不胜感激。
***编辑:上面的马氏距离方程不正确。它应该是 x'*C^-1*x 其中 x = (b-a),b 和 a 是我们试图找到其距离的两个向量(感谢 LRPurser)。因此,所选答案中提出的解决方案如下:
d=x'*b,其中 b = C^-1*x C*b = x,因此使用 LU 分解或 LDL' 分解求解 b。
【问题讨论】:
-
Gauss-Jordan 消元 是 求逆矩阵(或至少求解线性系统)的有效方法。至少其中之一。
-
您可以使用Cholesky decomposition 求解具有正定系统矩阵的线性方程组。
标签: c algorithm matrix linear-algebra