У меня проблема с позиционированием 3d - вроде GPS. Учитывая набор известных 3d-координат (x, y, z) и их расстояний d от неизвестной точки, я хочу найти неизвестную точку. Может быть любое количество опорных точек, однако их будет не менее четырех.Math - 3d позиционирование/мультилатерация
Так, например, точки находятся в формате (x, y, z, d). Я мог бы:
(1,0,0,1)
(0,2,0,2)
(0,0,3,3)
(0,3,4,5)
И здесь неизвестный пункт был бы (0,0,0,0).
Что было бы самым лучшим способом? Существует ли существующая библиотека, поддерживающая 3d multilateration? (Я не смог найти его). Так как маловероятно, что мои данные будут иметь точное решение (все сферы с 4+, вероятно, не будут иметь ни одной совершенной точки пересечения), алгоритм должен быть способен аппроксимировать его.
До сих пор я думал о том, чтобы взять каждое подмножество из трех точек, триангулируя неизвестное на основе этих трех, а затем усредняя все результаты. Есть лучший способ сделать это?
Возможно, я не понимаю ваш вопрос, но разве это не вопрос использования метода наименьших квадратов (https://en.wikipedia.org/wiki/Least_squares), чтобы найти точку, чья сумма квадраты расстояний до ваших сфер минимальны? – gspr