Тригонометрические таблицы
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( декабрь 2018 г. ) |
Тригонометрия |
---|
Ссылка |
Законы и теоремы |
Исчисление |
Математики |
В математике таблицы тригонометрических функций полезны во многих областях. До появления калькуляторов карманных тригонометрические таблицы были необходимы для навигации , науки и техники . Расчет математических таблиц был важной областью исследований, которая привела к разработке первых механических вычислительных устройств .
Современные компьютеры и карманные калькуляторы теперь генерируют значения тригонометрических функций по требованию, используя специальные библиотеки математического кода. Часто эти библиотеки используют предварительно рассчитанные таблицы и вычисляют необходимое значение с помощью соответствующего метода интерполяции . Интерполяция простых справочных таблиц тригонометрических функций до сих пор используется в компьютерной графике , где может потребоваться лишь умеренная точность, а скорость часто имеет первостепенное значение.
Еще одним важным применением тригонометрических таблиц и схем генерации являются алгоритмы быстрого преобразования Фурье (БПФ), где одни и те же значения тригонометрической функции (называемые коэффициентами поворота ) должны вычисляться много раз в данном преобразовании, особенно в общем случае, когда много преобразований рассчитываются одинаковые размеры. В этом случае каждый раз вызов универсальных библиотечных процедур происходит неприемлемо медленно. Один из вариантов — один раз вызвать библиотечные процедуры для создания таблицы тех тригонометрических значений, которые потребуются, но для хранения таблицы требуется значительный объем памяти. Другая возможность, поскольку требуется регулярная последовательность значений, — использовать рекуррентную формулу для вычисления тригонометрических значений «на лету». Значительные исследования были посвящены поиску точных и стабильных рекуррентных схем, чтобы сохранить точность БПФ (которое очень чувствительно к тригонометрическим ошибкам).
Таблица тригонометрии — это, по сути, справочная таблица, в которой представлены значения синуса, косинуса, тангенса и других тригонометрических функций для различных углов. Эти углы обычно расположены в верхней строке таблицы, а различные тригонометрические функции указаны в первом столбце слева. Чтобы найти значение определенной тригонометрической функции под определенным углом, вы должны найти строку функции и проследить по ней до столбца под нужным углом. [1]
Использование таблицы тригонометрии включает в себя несколько простых шагов.
[ редактировать ]- Определите конкретный угол, для которого нужно найти тригонометрические значения.
- Найдите этот угол по горизонтальной оси (верхний ряд) таблицы.
- Выберите интересующую вас тригонометрическую функцию на вертикальной оси (первый столбец).
- Проведите трассировку поперек функции и вниз от угла до точки их пересечения на таблице; число на этом пересечении дает значение тригонометрической функции для этого угла.
Вычисление по требованию
[ редактировать ]Современные компьютеры и калькуляторы используют различные методы для получения значений тригонометрических функций по запросу для произвольных углов (Кантабутра, 1996). Одним из распространенных методов, особенно на процессорах более высокого класса с модулями с плавающей запятой , является объединение полиномиальной или рациональной аппроксимации (например, аппроксимации Чебышева , наилучшего равномерного приближения, аппроксимации Паде и, как правило, для более высоких или переменных точности, рядов Тейлора и Лорана ). с уменьшением диапазона и поиском по таблице — сначала они ищут ближайший угол в небольшой таблице, а затем используют полином для вычисления поправки. такие методы, как точные таблицы Гала Поддержание точности при выполнении такой интерполяции является нетривиальной задачей, но для этой цели можно использовать , сокращение диапазона Коди и Уэйта, а также алгоритмы уменьшения радиана Пейна и Ханека. На более простых устройствах, в которых отсутствует аппаратный множитель , существует алгоритм под названием CORDIC (а также связанные с ним методы), который более эффективен, поскольку использует только сдвиги и сложения. Все эти методы обычно реализуются в аппаратное обеспечение по соображениям производительности.
Конкретный полином, используемый для аппроксимации тригонометрической функции, генерируется заранее с использованием некоторой аппроксимации алгоритма минимаксной аппроксимации .
Для вычислений с очень высокой точностью , когда сходимость разложения в ряд становится слишком медленной, тригонометрические функции можно аппроксимировать средним арифметико-геометрическим , которое само аппроксимирует тригонометрическую функцию ( комплексным ) эллиптическим интегралом (Brent, 1976).
Тригонометрические функции углов, рациональных кратных 2π, являются алгебраическими числами . Значения a/b·2π можно найти, применив тождество Муавра для n = a к a b й корень из единицы , который также является корнем многочлена x б - 1 в комплексной плоскости . Например, косинус и синус 2π ⋅ 5/37 — это действительная и мнимая части соответственно 5-й степени корня 37-й степени из единицы cos(2π/37) + sin(2π/37)i, что корень многочлена степени -37 x 37 − 1. В этом случае алгоритм поиска корня, такой как метод Ньютона, намного проще, чем алгоритмы среднего арифметико-геометрического, описанные выше, хотя они сходятся с одинаковой асимптотической скоростью. Однако последние алгоритмы необходимы для трансцендентных тригонометрических констант.
Формулы половинного угла и сложения углов
[ редактировать ]половинного угла и сложения углов, Исторически сложилось так, что самый ранний метод вычисления тригонометрических таблиц и, вероятно, наиболее распространенный до появления компьютеров, заключался в многократном применении тригонометрических тождеств начиная с известного значения (например, sin(π/2 ) = 1, cos(π/2) = 0). Этот метод использовал древний астроном Птолемей , который вывел их в «Альмагесте» — трактате по астрономии. В современной форме выведенные им тождества формулируются следующим образом (со знаками, определяемыми квадрантом, в котором находится x ):
Они были использованы для построения таблицы аккордов Птолемея , которая применялась к астрономическим задачам.
Возможны различные другие перестановки этих тождеств: например, в некоторых ранних тригонометрических таблицах использовались не синус и косинус, а синус и версинус .
Быстрое, но неточное приближение
[ редактировать ]Быстрый, но неточный алгоритм расчета таблицы N аппроксимаций s n для sin (2 π n / N ) и c n для cos (2π n / N ):
- с 0 = 0
- с 0 = 1
- s n +1 = s n + d × c n
- с п +1 знак равно с п - d × s п
для n = 0,..., N − 1, где d = 2π/ N .
Это просто метод Эйлера для интегрирования дифференциального уравнения :
с начальными условиями s (0) = 0 и c (0) = 1, аналитическое решение которого есть s = sin( t ) и c = cos( t ).
К сожалению, это бесполезный алгоритм для создания таблиц синуса, поскольку он имеет значительную ошибку, пропорциональную 1/ N .
Например, для N = 256 максимальная ошибка значений синуса составляет ~0,061 ( с 202 = −1,0368 вместо −0,9757). При N = 1024 максимальная ошибка значений синуса составляет ~0,015 ( с 803 = -0,99321 вместо -0,97832), примерно в 4 раза меньше. Если бы полученные значения синуса и косинуса нужно было отобразить на графике, этот алгоритм нарисовал бы логарифмическую спираль, а не круг.
Усовершенствованная, но все еще несовершенная формула повторения.
[ редактировать ]Эта статья , возможно, содержит оригинальные исследования . ( декабрь 2018 г. ) |
Простая рекуррентная формула для создания тригонометрических таблиц основана на формуле Эйлера и соотношении:
Это приводит к следующему повторению для вычисления тригонометрических значений s n и c n, как указано выше:
- с 0 = 1
- с 0 = 0
- c n +1 знак равно ш r c n - ш я s n
- s n +1 = w i c n + w r s n
для n = 0, ..., N − 1, где w r = cos(2π/ N ) и w i = sin(2π/ N ). также можно найти, например, используя метод Ньютона в комплексной плоскости для поиска примитивного корня z Эти два начальных тригонометрических значения обычно вычисляются с использованием существующих библиотечных функций (но их Н − 1).
Этот метод создает точную конечной точности таблицу в точной арифметике, но имеет ошибки в арифметике с плавающей запятой . Фактически ошибки растут как O(ε N ) (как в худшем, так и в среднем случае), где ε — точность чисел с плавающей запятой.
Существенным улучшением является использование следующей модификации приведенного выше трюка (из-за Singleton [2] ) часто используется для генерации тригонометрических значений для реализаций БПФ:
- с 0 = 1
- с 0 = 0
- c n +1 знак равно c n - (α c n + β s n )
- s n +1 знак равно s n + (β c n - α s n )
где α = 2 sin 2 (π/ N ) и β = sin(2π/ N ). Ошибки этого метода намного меньше: O(ε √ N ) в среднем и O(ε N ) в худшем случае, но это все равно достаточно велико, чтобы существенно ухудшить точность БПФ больших размеров.
См. также
[ редактировать ]- Таблица синусов Арьябхаты
- КОРДИК
- Точные тригонометрические значения
- Таблица синусов Мадхавы
- Численный анализ
- Плимптон 322
- Простафаэрез
Ссылки
[ редактировать ]- ^ «Таблица тригонометрии: изучение таблицы тригонометрии упрощено» . Йогирадж отмечает | Примечания к общему обучению и юриспруденции . Проверено 2 ноября 2023 г.
- ^ Синглтон 1967
- Карл Б. Бойер (1991) История математики , 2-е издание, John Wiley & Sons .
- Манфред Таше и Хансмартин Цойнер (2002) «Улучшенный анализ ошибок округления для предварительно вычисленных коэффициентов поворота», Журнал вычислительного анализа и приложений 4 (1): 1–18.
- Джеймс К. Шацман (1996) «Точность дискретного преобразования Фурье и быстрого преобразования Фурье», SIAM Journal on Scientific Computing 17 (5): 1150–1166.
- Витит Кантабутра (1996) «Об аппаратном обеспечении для вычисления экспоненциальных и тригонометрических функций», IEEE Transactions on Computers 45(3): 328–339.
- Р.П. Брент (1976) « Быстрая оценка элементарных функций с многократной точностью », Журнал Ассоциации вычислительной техники 23: 242–251.
- Синглтон, Ричард С. (1967). «О вычислении быстрого преобразования Фурье» . Коммуникации АКМ . 10 (10): 647–654. дои : 10.1145/363717.363771 . S2CID 6287781 .
- Уильям Дж. Коди-младший, Уильям Уэйт, Руководство по программному обеспечению для элементарных функций , Прентис-Холл, 1980, ISBN 0-13-822064-6 .
- Мэри Х. Пейн, Роберт Н. Ханек, Радианное приведение тригонометрических функций , Информационный бюллетень ACM SIGNUM 18: 19–24, 1983.
- Гал, Шмуэль и Бачелис, Борис (1991) «Точная элементарная математическая библиотека для стандарта IEEE с плавающей запятой», ACM Transactions on Mathematical Software .