Расстояние Махаланобиса, инвертирующее ковариационную матрицу

Я пишу функцию для определения расстояния Махаланобиса между двумя векторами. Насколько я понимаю, это достигается с помощью уравнения а' *C^ -1 *b, где a и b — векторы, а C — ковариационная матрица. Мой вопрос в том, есть ли эффективный способ найти обратную матрицу без использования исключения Гаусса -Жордана, или нет никакого способа обойти это? Я ищу способ сделать это сам, а не с помощью каких-либо предопределенных функций.

Я знаю, что C — эрмитова положительно определенная матрица, так что могу ли я каким-то образом алгоритмически воспользоваться этим фактом? Или есть какой-то умный способ вычислить расстояние Махаланобиса без вычисления обратной ковариации вообще? Любая помощь будет оценена по достоинству.

***Изменить :Приведенное выше уравнение расстояния Махаланобиса неверно. Должен быть x' *C^ -1 *x где x = (b -a ), а b и a — два вектора, расстояние до которых мы пытаемся найти (благодаря LRPurser ). Таким образом, решение, представленное в выбранном ответе, выглядит следующим образом:

d=x' *b, где b = C^ -1 *x C *b = x, поэтому найдите b, используя LU-факторизацию или LDL-факторизацию.

8
задан Ataraxia 3 August 2012 в 16:16
поделиться