Математический вывод
В геометрии трёхмерная проблема трилатерации представляет собой нахождение координат точки пересечения трёх сфер, которые определяются путём решения системы уравнений. Чтобы упростить вычисления, полагаем, что центры всех трех сфер лежат в плоскости
, один из них совпадает с началом координат, второй — лежит на оси
. Наложенные ограничения не уменьшают общности: к такому виду может быть приведена любая система соответствующих уравнений путём перехода к другой системе координат. Чтобы найти решение в исходной системе координат, к решению, найденному в этой (приведенной) системе координат, применяются преобразования, обратные к тем, которые позволили исходное множество из трех точек привести в соответствие с ограничениями.
Начнем с уравнений для трёх сфер:
,
,
и
.
Нужно найти точку :
, удовлетворяющую всем трём уравнениям.
Вначале вычтем второе уравнение из первого и найдем
:
.
Считаем, что первые две сферы пересекаются более, чем в одной точке, то есть
. В этом случае, подставляя выражение
в уравнение первой сферы, получаем уравнение окружности, которое является искомым пересечением первых двух сфер:
.
Подставляем :
в уравнение третьей сферы и находим
:
.
Зная координаты
и
легко можно найти координату
:
Теперь у нас есть все три координаты. Поскольку
выражается как положительный или отрицательный квадратный корень, у данной задачи может быть ноль, одно или два решения.
Это можно представить, взяв окружность, полученную от пересечения первых двух сфер, и отыскивая её пересечение с третьей сферой. Если эта окружность проходит вне третьей сферы, координата
равна корню из отрицательного числа, что означает отсутствие вещественного решения. Если окружность касается сферы ровно в одной точке,
равна нулю. Если окружность пересекает сферу в двух точках,
равна положительному или отрицательному корню из положительного числа.
Вариант 2, без преобразования координат.
Пользуясь тем, что каждая пара сфер пересекается по окружности, центр которой лежит на прямой, соединяющей центры сфер, и тем, что данная окружность лежит в плоскости, перпендикулярной данной прямой, можно решить задачу через линейную систему уравнений.
Пусть
— центры исходных сфер,
— расстояния между центрами сфер,
— искомая точка.
Найдём
— центр пересечения первых двух сфер.
,
Вычтем второе уравнение из первого:
. Преобразуем:
Искомая точка лежит в плоскости, проходящей через
и перпендикулярной
. Поэтому для неё выполняется уравнение данной плоскости:
, или иначе:
После подстановки
получим:
Аналогично,
Пересечение двух полученных плоскостей даёт прямую, перпендикулярную плоскости треугольника. Пересечение данной прямой с плоскостью треугольника даёт точку
— основание перпендикуляра из точки
на плоскость треугольника. Дополнив систему уравнением плоскости треугольника, получим линейную систему уравнений для координат точки
.
Уравнение плоскости треугольника:
,
где:
— векторное произведение
и
.
Коэффициенты при координатах искомой точки
образуют матрицу 3x3. Если центры исходных сфер не лежат на одной прямой, то данная матрица невырождена и искомые координаты находятся после применения обратной матрицы к правой части системы. Обозначим найденные координаты точки
. Тогда:
где