Лучше всего подходит плоскость за счет минимизации ортогональных расстояний - PullRequest
4 голосов
/ 31 июля 2011

У меня есть набор точек (в виде x1, y1, z1 ... xn, yn, zn ), полученных из поверхностной сетки. Я хочу найти наиболее подходящую трехмерную плоскость к этим точкам путем минимизации ортогональных расстояний. x, y, z координаты независимы, то есть я хочу получить коэффициент A, B, C, D для плоского уравнения Ax + By + Cz + D = 0.

Какой будет алгоритм для получения A, B, C, D?

Примечание: в предыдущем посте обсуждалась плоскость наилучшего соответствия в смысле наименьших квадратов с учетом координаты z линейной функции x, y . Однако это не мой случай.

Ответы [ 2 ]

5 голосов
/ 31 июля 2011

Из памяти это превращается в проблему собственных векторов. Расстояние от точки до вашей плоскости пропорционально Ax + By + Cz + D - один из способов увидеть это - заметить, что нормаль к плоскости равна (A, B, C). Константа D - это боль в шее, но я думаю, что вы можете избавиться от нее, переопределив свои переменные, чтобы сместить ее в постоянную, чтобы все имело значение 0. В этом случае я думаю, что лучшая подходящая плоскость пройдет через начало координат .

Затем вы обнаружите, что хотите минимизировать SUM_i (X_i. A) ^ 2, где A - 3-вектор. Конечно, вы можете сделать это сколь угодно малым, умножив все компоненты A на некоторый небольшой скаляр, поэтому вы хотите минимизировать этот предмет с учетом ограничения, например, || A || ^ 2 = 1, что имеет смысл пропорциональности, делая A единичным вектором. (X_i. A) ^ 2 = A '(X_i' X) A, поэтому вы хотите свести к минимуму A '(SUM_i (X_i'X_i)) A Итак, я думаю, что вы хотите минимальный собственный вектор SUM_i X_i'X_i

Одна из причин, по которой это не используется чаще в статистике, заключается в том, что полученный вами ответ изменится, если вы масштабируете единицы любого из векторов координат без аналогичного масштабирования единиц в других направлениях на ту же величину.

Если подумать, вы можете увидеть, как все это работает правильно на http://en.wikipedia.org/wiki/Total_least_squares

2 голосов
/ 31 июля 2011

Подгонка данных наименьших квадратов , раздел 2: «Линейная аппроксимация точек nD с использованием ортогональной регрессии».

Как уже упоминалось в mcdowella, вам нужно решить собственную систему 3x3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...