Если V
является действительной ковариационной матрицей гауссиана, то она является симметричной положительно определенной и, следовательно, определяет действительное скалярное произведение. Кстати inv(V)
тоже делает.
Следовательно, предполагая, что M и p - векторы столбцов, вы можете определить расстояния как:
d1 = sqrt((M-p)'*V*(M-p));
d2 = sqrt((M-p)'*inv(V)*(M-p));
Matlab, который можно переписать d2
как (возможно, некоторые ненужные скобки):
d2 = sqrt((M-p)'*(V\(M-p)));
Приятно то, что когда V - единичная матрица, тогда d1==d2
и это соответствует классическому евклидову расстоянию. Чтобы найти погоду, вы должны использовать d1
или d2
, оставленное в качестве упражнения (извините, часть моей работы - преподавание). Напишите многомерную формулу Гаусса и сравните ее с одномерным случаем, поскольку многомерный случай является лишь частным случаем одномерного (или проведите некоторый численный эксперимент).
NB. В очень многомерных пространствах или для очень большого количества точек для проверки вы можете найти более умный / быстрый путь из собственных векторов и собственных значений V (т.е. главных осей эллипсоида и их соответствующей дисперсии).
Надеюсь, это поможет.
A.