Доброго времени суток. Возникла необходимость написания ПО с использованием геодезических задач (обратная, прямая и прочие) с высокой точностью на ск-42 либо любом другом эллипсоиде. Встал вопрос, что за методы мат.аппарата использовать. Выбор остановился на двух: Винсента и Бесселя. По первичным оценкам выходит, что метод Бесселя эффективней использовать из-за скорости при одинаковой точности обоих методов. Но остались вопросы связанные с обработкой исключительных ситуаций, то есть: Необходимо ли отдельно обрабатывать возможность пересечения ортодромией северного\южного полюса? И есть ли какие то подводные камни в методе Бесселя? К примеру в учебном пособии от ГМВУ Невельского, упоминается вскользь, о возможной ошибке при вычислении обратной задачи методом Винсента. И доп. вопрос. Можете посоветовать методы решения задач пересечения двух ортодромий на заданном эллипсоиде?
Пока уважаемый stout подтягивается, задам несколько общих вопросов. Исключительно, чтобы понимать уровень дискуссии. Вы геодезист или только программист? Задача для саморазвития или есть ТЗ? Задача геодезическая или навигационная? Задание основывается на изменении какой-то программы или новая разработка? Ну, и, как всегда, стандартный вопрос: "Какая требуется точность?"
1. Программист 2. Работа 3. Построение маршрутов с дальнейшей обработкой их взаимного положения. 4. Новая, но имеются наработки по данным методам. 5. Точность. По хорошему сантиметры, но не больше метра.
Есть ТЗ или "по просьбам трудящихся"? Что ползает, ходит, ездит, летает (нужное подчеркнуть)? Какая скорость? Исключительно зависит от ответа на предыдущий вопрос.
Преждевременная оптимизация программ есть зло. Вас сильно будет волновать, что по одному методу за одну секунду можно посчитать, например 300 000 задач, а по другому всего 50 000 задач? Vincenty предложил свой алгоритм в далёком 1975 году. С тех пор много воды утекло. См. библиотеку Geographiclib и статьи Подводные камни есть всегда, напортачить можно на ровном месте. Пусть вам надо вычислить выражение (1+s)/(1-s), где s = sqrt(1-e). Причём известно, что e много меньше 1. Как будете вычислять? Как запрограммируете эту формулу? Часто сталкиваюсь с ситуацией которую можно назвать "чего думать, трясти надо" (Я — не исключение). В голове складывается общий план решения, ищешь методы для подзадач, хотя всю задачу можно решить совсем по другому. Зачастую альтернативное решение оказывается более эффективным. Поэтому сформулируйте всю задачу, что дано, что найти надо.
ТЗ предоставить не могу. Если Вам нужно, что-то конкретное, спрашивайте - постараюсь расписать по силе возможностей. Летает, ползает, бегает и далее. Скорость так же: от черепахи до реактивных бомбардье, но бомбардье предпочтительней. Есть правда одно исключение, высота не учитывается, работаем как по плоскости элипса. Скорость так же является второстепенным параметром поскольку берется средняя для участка маршрута и считается неизменяемой. Чушь. "Зачем делать через задницу когда можно сделать нормально?" если вы хотите вместо специализированных алгоритмов решать транспортную задачу методом перебора, это ваши проблемы. Злом является оптимизация создаваемого алгоритма на уровне кода. Тут я согласен с тем, что вначале его стоит отработать в простой форме без ухищрений, а потом уже оптимизировать под реалии задачи. Но ни как не выбирать самый тупой алгоритм заведомо зная что скорость будет критичным моментом. Спасибо за готовые варианты. Но не могу пользоваться несертифицированными библиотеками даже с открытым кодом. Даны 2 маршрута, участками которых являются ортодромии заданные координатами точек. Надо найти пресечения маршрутов. Желательно используя теже функция решения прямой и обратной геодезических задач. Подводные камни. Что же вы не говорите какие типы используются для s и е? Как я вам это запрограммирую не зная минимальных\максимальных границ? какая точность вам нужна после знака при операциях деления\умножения для чисел с плавающей запятой? Если хотите покапать в глубь - это не проблема, я так могу дойти до размерности байта на эвм и системы используемых чисел. Не хотите отвечать на вопрос - так и скажите, не знаете что ответить - можете вообще не отвечать. Ваше изречение такое же бессмысленное как и утрирование с преждевременной оптимизацией.
А сколько вы знаете методов и сколько опробовали? Я вот с ходу вспомнил дюжину, чуть подумал и вспомнил ещё пол-дюжины. А с модификациями и все два десятка набирается. Это не так. Метод Винсенти точнее (по крайней мере, для геодезистов), но у него действительно есть проблемы со сходимостью для обратной задачи в некоторых (очень редких) случаях. Самым точным методом в настоящий момент является метод Karney. И со сходимостью у него всё в порядке. И ограничений на длину геодезической линии нет. А про скорость Karney пишет Бессель разрабатывал свой метод учитывая использование таблиц логарифмов. И ориентирован он на ручной счёт. Ну, во-первых, в начальном сообщении об этом ограничении ни слова. Во-вторых, по ссылкам не только готовая библиотека, но статьи с описанием метода в открытом доступе. Очень толсто. Не знаете — так и скажите. Так ведь можно дойти и до того, что смысл операторов "+", "-", "/" совершенно не следует из контекста задачи, а потому она неразрешима. Утверждение На фоне выглядит очень смешно. И, да, что такое "плоскость элипса" не знает никто, кроме вас. З.Ы. Одного не понимаю — цели вашего визита. Вы сюда за советом пришли, или членами меряться? З.Ы.Ы. Как решить эту простую задачу я знаю, но вот желание общаться с вами у меня напрочь пропало.
Ну надо же) из 3х написанных слов "эллипс", одно написал случайно неправильно, какой ужОс то, как жить дальше не представляю. Теперь будете цепляться за каждую ошибку, пускай и случайную? Название форума кажется все таки не GrammarNazi.ru Не уж то Вы не поняли, что под "плоскостью" подразумевалась "поверхность"? Ни за что не поверю. Я это знаю, но для моих задач точность по Бесселю достаточна и в выборе отдано предпочтение ему за счет того, что в БД нету возможности реализовывать медленные методы. А реализация нужна в том числе и такая. Поскольку хранение расстояний идет в метрах и эти параметры являются вторичными, то точность мне нужна в пределах метра. Единственная проблема с такой точностью которая может возникнуть это ошибка накапливаемая при расчете общей длины маршрута по координатам его участков - ортодромий, но данная погрешность меня не волнует. Особенности компиляторов и архитектуры меня не интересуют, поскольку они бессмысленные без определения итоговой конфигурации и платформы под которой будет работать ПО. Так я и спрашивал про методы, а не готовые библиотеки. У меня есть несколько реализаций приближенных вычислений для небольших расстояний которые необходимо заменить З.Ы. Если в результате sqrt(1 - e) будет получена 1 (при столь малом значение е), то итогом будет деление на ноль. Мне не интересна данная проблема если ее нет в решаемом алгоритме. И на кой писать такие ответы (вопросы) на заданный вопрос мне лично не понятно. Тем более что я спросил по особенности самого алгоритма, а не проблемы дробной математики на эвм. Детский сад. Думаете от Ваших "пространных" ответов на вопросы, особенно про зло и (1-s) у меня появилось желание с вами продолжать говорить? Если что-то неправильно поправте, что-то не понятно - спросите и уточните. Но вместо этого вы пишите не нужные вещи. А советов, кроме как посмотреть "библиотеки и статьи" в Вашем первом ответе не было. Не хотите мериться членами? Ну так не доводите до этого.
Вы правильно написали: И правильно написали это: Только он не будет мериться - для этого действия надо иметь предмет, который у него отсутствует. Теперь о вашей задаче. Ответьте пожалуйста на один вопрос: эта ваша задача связана с т.н. целеуказанием и в числе других результатов, вы должны предусмотреть возможность определения точек пересечения двух траекторий скоростных объектов?
Vladimir VV, Да, задача подразумевает нахождение координат пересечение, для определения необходимых временных задержек при которых маршруты разойдутся во времени.
Ваша задача есть часть задачи по программированию в целях обеспечения одновременного запуска нескольких ракет с полетом их через полярный район. Причем, ракеты стартуют одновременно из нескольких точек и у них разные цели, но, для уменьшения времени подлета к цели, траектории выбираются через полярную область. Я в решении такой задачи принимать участия не буду, и вам не советую. А, что касается российских ЯРСов, недавно поставленных на вооружение и уже несущих боевое дежурство (привет Тейково), для обеспечения эффективности их одновременных пусков из разных точек по разным целям - эта задача уже решена.
Интересная точка зрения, хоть один веселый пост в этой теме )))))))))))))))))))))))))))))))))))))))))))))))))) Вообще то меня интересует пересечение маршрутов самолетов и кораблей ) самолеты разве еще через северный\южный полюс не летают?) А по поводу ярсов... наверно там геодезию все же есть кому рассказать не используя интернетов )
Да, конечно, особенно будут интересны маршруты прохождения кораблей через районы полюсов. Ладно на Северном полюсе подо льдами, а на южном полюсе стали плавать корабли? (Прим: корабль - военное судно). --- Сообщения объединены, 26 фев 2014, Оригинальное время сообщения: 26 фев 2014 --- Для обеспечения полетов самолетов используется другой подход (система предупреждения об опасном сближении).
Vladimir VV, только самолеты) если конечно корабль поплывет, ну это уже вопрос к маршруту) мне главное универсальность заложить. --- Сообщения объединены, 26 фев 2014, Оригинальное время сообщения: 26 фев 2014 --- Если говорить о правилах полета то помимо пересечения маршрутов есть еще и продольное\высотное эшелонирование. Которые нужно учитывать при прокладке маршрутов. Система предупреждения об опасности сближения это конечно хорошо, но она на самолете стоит и является финальным рубежом защиты. На кораблях вроде аналоги тоже ставят по пересечению\ сближению курсов.
Да, я понимаю: и для скоростных пешеходов и для скоростных муравьев - а то первые потопчут вторых почем зря. А так, програмулину им в дыщло, и разойдутся они невредимыми на полюсе.
Мдяя... неплохо спросил про методы вычисления. С одним поругался другой заподозрил в том что я маршруты к ярсам делаю) Что дальше?) Надеюсь ни кто еще Януковича не заподозрил во мне?
Так, оказывается вы для белых медведей старались - ну, так надо было об этом сразу и написать. Зачем было бадягу разводить? Да, этот всем сейчас в России параллелен - если кто и заподозрит, не переживайте. Кстати, а вы в курсе, что EGM2008 в арктических районах очень плох как модель ГПЗ?
А от чего такие подозрения то? Или тут на форуме по 100 раз на дню просят маршруты к баллистичским ракетам посчитать?) --- Сообщения объединены, 26 фев 2014, Оригинальное время сообщения: 26 фев 2014 --- Гравитационное поле земли?) Не знаю, просветите и про EMG2008 тоже послушаю )
Да нет, конечно, так часто не просят. Да и полярной областью интересует только специалисты двух стран - догадайтесь каких (чур, Канаду не трогать, там в эту область баллистики не лезут принципиально - даже университетские).
А полярную авиацию отменили? --- Сообщения объединены, 26 фев 2014, Оригинальное время сообщения: 26 фев 2014 --- Пойду я что ли домой. Выпью водка, поиграю балалайка и посчитаю маршрут полета ярса .... вручную!)