Почему не CORDIC? (практически та же школьная тригонометрия, но вычислительно эффективнее).
~Почему больше? Меньше же! Умножения заменены на сдвиги – только в самом конце два умножения на константу.
Подход-то практически тот же, что у вас, только последовательность констант для шагов такая, что удаётся схалявить.~
Пардон, невнимательно прочитал пост – теперь осознал, что по сравнению с CORDIC операций действительно меньше (обрабатываем по 4 бита за раз), но они "дороже". Интересно было бы увидеть сравнение по быстродействию — когда какой подход выигрывает (ну, про реализацию в железе не говорю, там всё понятно, а вот что будет в софте?)
Интересно посмотреть графики сравнения — мол, при прочих равных в чем отличие (точность, количество обращений в память, количество математических операций и пр)
Почему больше? Меньше же! Умножения заменены на сдвиги – только в самом конце два умножения на константу.
Подход-то практически тот же, что у вас, только последовательность констант для шагов такая, что удаётся схалявить.
Пардон, невнимательно прочитал пост – теперь осознал, что по сравнению с CORDIC операций действительно меньше (обрабатываем по 4 бита за раз), но они "дороже". Интересно было бы увидеть сравнение по быстродействию — когда какой подход выигрывает (ну, про реализацию в железе не говорю, там всё понятно, а вот что будет в софте?)
Для синуса будем отбрасывать кубический член
Что насчет остальных?
Приемлемость определяется ограниченностью разрядной сетки при хранении значений.
Ряд Тейлора является абсолютно сходящимся — сумма последующих отбрасываемых членов всегда меньше по модулю модуля первого отбрасываемого члена.
Ряд Тейлора является абсолютно сходящимся — сумма последующих отбрасываемых членов всегда меньше по модулю модуля первого отбрасываемого члена.В общем случае это неверно. А поскольку ваша статья образовательная, такие пробелы в логике, как 'пропадающие неизвестно куда' слагаемые, нужно исправлять.
И кстати, с каких пор утверждение типа 'отношение y к x было меньше чем z' принято выражать через 1 — (x — y)/x < z? Почему не написать сразу как оно есть: y/x < z?
Эти дурацкие периодические функции, приводящие к ковыряниям в пипопаламах (а у нас углы от 0 до 2пи или от -пи до пи?, Мать-мать-мать, как вспомню, так вздрогну) и прочий бред можно полностью из программы выкинуть и заменить банальной линейной алгеброй за второй курс любого заборостроительного пединститута имени проф. Мозгоклюева.
В 2д расчётах можно стерпеть ― ну, помнит человек школьную программу, уже хорошо. Но когда в коде видишь синусы/косинусы вместе с переменными x, y, z, бедного автора хочется пожалеть и чем-нибудь приласкать.
Эти дурацкие периодические функции, приводящие к ковыряниям в пипопаламах (а у нас углы от 0 до 2пи или от -пи до пи?, Мать-мать-мать, как вспомню, так вздрогну)
'That's what she said.'
В смысле, моя знакомая студентка о теории комплексных чисел.
В пространстве ту же задачу решают кватернионы, да матрицы 4x4.
ТФКП как раз и призвана выкинуть на плоскости тригонометрию и заменить ее на элегантные операции с комплексными числами
Ну, видимо у женщин просто другие понятия о 'элегантности'.
Всякие embed-железки никто не отменял.
Ещё немного о тригонометрии в вычислениях