1

Точка пересечения сфер в пространстве, помоги разобраться

Привет, Пикабу! Очень надеюсь на твою помощь с решением одной задачи. Два коммента для минусов внутри. Пожалуйста, не топите :3
У меня есть четыре "спутника"-точки с известными координатами и расстояниями до них, одна из них в начале координат. Нужно, зная указанное выше найти координаты точки, от которой мы знаем расстояния до "спутников".
Очевидно, что нужно использовать систему из 4 уравнений вида:
r1^2=(x-a1)^2+(y-b1)^2+(z-c1)^2
r2^2=(x-a2)^2+(y-b2)^2+(z-c2)^2
r3^2=(x-a3)^2+(y-b3)^2+(z-c3)^2
r4^2=x^2+y^2+z^2

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

Дубликаты не найдены

+2
Не знаю, поможет или нет, но подкину пару идей. Во-первых, необязательно использовать все 4 уравнения. Достаточно одного, если ввести функцию такого вида:

f(x, y, z)=((x-a1)^2+(y-b1)^2+(z-c1)^2 - r1^2)^2

и решить задачу её минимизации. Подробнее можно посмотреть, например, здесь https://ru.wikipedia.org/wiki/Метод_наименьших_квадратов

Во-вторых, вы упоминали в комментариях, что пишете софт, поэтому в чём проблема воспользоваться численными методами? Если вам удалось свести систему к линейным уравнениям, можете воспользоваться, к примеру, методом покоординатного спуска (он же Гаусса-Зейделя). Даже если не сводить, то есть методы решения систем нелинейных уравнений, к примеру, метод Ньютона.
раскрыть ветку 2
0
Оу, насчёт первого варианта я, пожалуй, погорячился :) В любом случае придётся использоваться как минимум 3 уравнения.
0
Да, в целом довольно помогло. Благодарю.
0
Первый для минусов
0
Второй
0
Почитайте про пространственную линейную засечку.
http://mgugik.net/archives/98
Она, как раз, и применяется в спутниковом определении координат.
Только я не понял с вашей системой координат она прямоугольная или геоцентрическая?
раскрыть ветку 1
0
Система координат, по-моему, прямоугольная. Я использую для построений 3dmax.
Я уже использовал трилатерацию для определения. Мне нужно просто решить эти уравнения. А я не знаю как)
0
Погромист... трилатерация... indoor navigation?
раскрыть ветку 3
+3
Хуже. Играю в space engineers, нашёл возможность определять пеленг на точки в градусах и расстояние до них. Сделал. Теперь пишу софт, что бы определять координаты в придуманной сетке... Задротство.
раскрыть ветку 2
+1
Хорошее кстати задротство. Кроме шуток. Редко встречается.
раскрыть ветку 1
0
гугли на предмет "решение систем уравнений".
методов много.
раскрыть ветку 2
0
Ну вот правда, гуглю второй день. Нашёл много чего, но не могу понять как это реализовать...
раскрыть ветку 1
0
https://ru.wikipedia.org/wiki/Категория:Методы_решения_СЛАУ
это теория

еще можно погуглить лекции или учебники по численным методам или алгоритмам.
там можно найти псевдокод.
0
Если уравнения нелинейные, то никакими вычитаниями его к системе линейных не свести.
раскрыть ветку 7
0
r1^2=(x-a1)^2+(y-b1)^2+(z-c1)^2
r2^2=(x-a2)^2+(y-b2)^2+(z-c2)^2
r3^2=(x-a3)^2+(y-b3)^2+(z-c3)^2
r4^2=x^2+y^2+z^2

вычесть почленно r4^2=x^2+y^2+z^2 из каждого и получается система линейных и одно нелинейное. Этого достаточно в данных условиях, вроде бы
раскрыть ветку 6
0
Да, но одно нелинейное все равно оставляет систему нелинейной. А зачем расстояния именно до четырех спутников? Вроде бы же достаточно было до трех? Растояния же известны с огромной точностью?
раскрыть ветку 5
0
Возможно сморожу глупость, но почему бы не спроецировать уравнения на 3 плоскости? Уравнения сильно упростятся, и решатся будут легче. И, если решение системы это точка, то у тебя нет решений, так как уравнений больше чем неизвестных. Одно уравнение надо убрать.
раскрыть ветку 1
0
Я уже решил. Последнее уравнение сводит решение системы 4 квадратных к решению 3 линейных. С одним ответом, вместо двух.
0

@shmelenduk, если не сложно, не мог бы подсказать как решить эту систему?

-1
Кури в гугле "трилатерация"

Вот вобщем

http://en.m.wikipedia.org/wiki/Trilateration
раскрыть ветку 5
0
Я же написал, что загуглил и сделал. Мне нужно просто решить это уравнение
раскрыть ветку 4
0
"просто решить" о_О
0
А ты в следующий раз гугли решение, а не определение http://gis.stackexchange.com/questions/66/trilateration-usin...

только окружность земли исключи
раскрыть ветку 1
0
А вот, если глянуть на картинку к трилатерации, то там три точки, которые пересечения окружностей. Но нет ни одной точки, которые бы принадлежали сразу трем окружностям. Т.е. в классическом понимании система решения не имеет. А у ТС окружностей вообще четыре и тут решений будет еще меньше.
Похожие посты
Похожие посты не найдены. Возможно, вас заинтересуют другие посты по тегам: