Сообщения в

Опубликовано: Sun, 11 May 2025 06:30:05 GMT
Канал:

Попалась мне недавно статья Синус, косинус, квадратный корень FixedPoint. Автор размышляет как можно не затратно рассчитывать координаты и углы в микроконтроллере. Попробовал я подсказать автору пару аппроксимаций, но он оказался разговорчив только на тему "упадка автоматизации в РФ", а по делу как то не сложился диалог. Посмотрел, такие статьи не редкость. Например, очень хорошая статья Как посчитать синус быстрее всех на Xабре. В общем разгрузил себе голову на майских праздниках от главного хобби - геометрической алгебры.В процессе изучения всего этого, возник у меня вопрос - а зачем вообще нужно аппроксимировать sin,cos, arctan и еще и в привязке к числу в двоичной системе, если есть декартовы координаты?Из ответа на этот вопрос родилась идея этой статьи. Будет длинно, но если на примере подробно разбираться с работой машинного эпсилон и автоматическим дифференцированием, короче не получится. Следите за мыслью по ходу изложения. Начну с главного тезиса, и разверну по шагам  как это работает на примере операций с единичной окружностью.Автоматическим дифференцированием можно назвать любую конечную разность, например dy=(y(x+ε)-y(x-ε))/(2*ε). Разность взята центральная, так как она дает меньшую погрешность. ε это машинный ноль. За счет округления до младшего бита его главное свойство: ε^2=0.Эта статья по сути не более, чем описание основных моментов идеи. И если у кого то появится желание поставить эту идею на строгие математические рельсы, с удовольствием готов поучаствовать. Кто в этом случае опубликует финальную версию мне искренне не важно. Читать далее]]>

https://habr.com/ru/articles/907936/
BotHabr to All (2025-05-11 07:10:01) [ссылка]