Комментарий к задачке nabbla1

Sep 14, 2023 10:19

Очень длинный комментарий к задачке https://nabbla1.livejournal.com/513667.htmlRead more... )

Leave a comment

Comments 7

vitaly_nasennik September 14 2023, 07:55:50 UTC

Я вот сейчас ковыряюсь с астрономическими расчётами. Короче, там есть набор параметров для расчёта нутации. Называются "фундаментальные аргументы". Если кому интересно, можно посмотреть теорию в IERS Conventions 2010 года (TN №36), а реализацию в библиотеке SOFA. Так вот, эти фундаментальные аргументы вычисляются в виде разложения в степенные ряды (примерно 5-го порядка). И вот эти степенные ряды суммируются вовсе не по схеме Горнера, как можно было бы предполагать! Они суммируются таким образом, что каждое из слагаемых перед сложением обрезается при помощи fmod() на 2 пи, и после суммирования тоже.

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

Reply

biglebowsky September 14 2023, 08:19:11 UTC
Безусловно, если все честно посчитать (цм в двумерном случае), то все получится.
У nabbla1 был вопрос.
Мол, нас интересует только приближенный ответ, но мы очень хотим упростить вычисления. Что будет, если считать среднее арифметическое от углов?

А там получается так. Предположим, мы угадали направление на ЦМ. И ведем отсчет углов именно от этого направления. Тогда, чтобы кольцо с бусинками уравновесилась, среднее арифметическое от СИНУСОВ углов должно быть нулевым.

Соответственно, если идти в другую сторону. Удалось выбрать отсчет углов так, что все углы малые => перешли от синусов к самим углам => все гарантированно получилось. А вот если углы большие - как повезет. Может повезти в случае симметрии (случай 2 бусинок, расхождение угла с синусом на одной бусинке может скомпенсировать расхождение угла с синусом на другой бусинке), а может и не повезти.

Reply

vitaly_nasennik September 14 2023, 08:41:58 UTC

Я читал у него.

Тенденция упрощать, она, конечно, понятна, но, что касается вычислений, зачастую получается, что "простота - хуже воровства".

Reply

biglebowsky September 14 2023, 08:53:35 UTC
Мое отношение к заметке nabbla1
1) Упрощенные вычисления имеют право на жизнь.
2) Заменить синусы малых углов на сами углы - стандартная практика. Однако, тогда надо приложить некие усилия, чтобы углы, действительно, были малыми.
3) А вот "выносить мозг" рассуждениями об "аффинности" - это зря.

Reply


Температуры и углы в градусах, дополнение livejournal September 14 2023, 10:37:17 UTC
User nabbla1 referenced to your post from Температуры и углы в градусах, дополнение saying: [...] Мой развёрнутый комментарий на развёрнутый комментарий [...]

Reply


nabbla1 September 14 2023, 10:53:15 UTC
В свою очередь, написал развёрнутый ответ: https://nabbla1.livejournal.com/513821.html

По последнему примеру:
Бусинка с направлением на 5 градусов
Бусинка с направлением на 24 градусов
Бусинка с направлением на 355 градусов

отвечу здесь.

Я как раз говорю: теперь и такие углы меня вполне устроят, я не буду по чём зря оператора напрягать, чтобы он где нужно ноль выставлял. Находим первую разность: 24-5 = 19, делим на 3, получается 6 1/3.
Находим вторую разность, 355-5 = 350, приводим к диапазону -180..+180, получается -10, делим на 3, получается -3 1/3.

Наконец, всё складываем: 5 + 6 1/3 - 3 1/3 = 8 градусов. Всё хорошо!

UPD. Да и в примере 2 всё хорошо. Тут уже вопрос в постановке задачи. Если свести к центру масс, то да, будет некоторая ошибка. Хотя в моей задаче и тут сойдётся без проблем.

Reply

biglebowsky September 14 2023, 18:12:17 UTC
Ответ получился очень длинным. Написал этот ответ ниже основного текста как "Update".

Reply


Leave a comment

Up