Mahalanobis-Abstand, der die Kovarianzmatrix invertiert

Ich schreibe eine Funktion, um den Mahalanobis-Abstand zwischen zwei Vektoren zu berechnen. Ich verstehe, dass dies unter Verwendung der Gleichung a '* C ^ -1 * b erreicht wird, wobei a und b Vektoren sind und C die Kovarianzmatrix ist. Meine Frage ist, ob es einen effizienten Weg gibt, die Inverse der Matrix zu finden, ohne die Gauß-Jordan-Eliminierung zu verwenden, oder ob es keinen Weg gibt, dies zu umgehen. Ich suche nach einer Möglichkeit, dies selbst zu tun, nicht mit vordefinierten Funktionen.

Ich weiß, dass C eine hermitische, positiv definite Matrix ist. Gibt es also eine Möglichkeit, diese Tatsache algorithmisch auszunutzen? Oder gibt es eine clevere Möglichkeit, die Mahalanobis-Distanz zu berechnen, ohne die Kovarianz überhaupt zu berechnen? Jede Hilfe wäre dankbar.

*** Bearbeiten: Die obige Mahalanobis-Entfernungsgleichung ist falsch. Es sollte x '* C ^ -1 * x sein, wobei x = (b-a) und b und a die beiden Vektoren sind, deren Abstand wir zu finden versuchen (danke LRPurser). Die in der ausgewählten Antwort angegebene Lösung lautet daher wie folgt:

d = x '* b, wobei b = C ^ -1 * x C * b = x, also lösen Sie nach b mit LU-Faktorisierung oder LDL-Faktorisierung.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage