Тригонометрические таблицы

редактировать
Обзор тригонометрических таблиц

В математике таблицы тригонометрических функций полезны во многих областях. До появления карманных калькуляторов, тригонометрические таблицы были необходимы для навигации, науки и инженерии. Вычисление математических таблиц было важной областью исследования, которая привела к разработке первых механических вычислительных устройств.

Современные компьютеры и карманные калькуляторы теперь генерируют значения тригонометрических функций по запросу, используя специальные библиотеки математического кода. Часто эти библиотеки используют предварительно рассчитанные таблицы для внутреннего использования и вычисляют требуемое значение с помощью соответствующего метода интерполяции. Интерполяция простых справочных таблиц тригонометрических функций все еще используется в компьютерной графике, где может потребоваться лишь умеренная точность, а скорость часто имеет первостепенное значение.

Еще одно важное применение тригонометрических таблиц и схем генерации - это алгоритмы быстрого преобразования Фурье (БПФ), в которых одни и те же значения тригонометрических функций (называемые коэффициентами вращения) должны оцениваться много раз в заданном transform, особенно в общем случае, когда вычисляется много преобразований одного размера. В этом случае вызов универсальных библиотечных подпрограмм каждый раз является неприемлемо медленным. Один из вариантов - вызвать библиотечные подпрограммы один раз, чтобы построить таблицу тех тригонометрических значений, которые потребуются, но это требует значительного объема памяти для хранения таблицы. Другая возможность, поскольку требуется регулярная последовательность значений, заключается в использовании формулы повторения для вычисления тригонометрических значений на лету. Значительные исследования были посвящены поиску точных, стабильных схем повторения, чтобы сохранить точность БПФ (которое очень чувствительно к тригонометрическим ошибкам).

Содержание

  • 1 Вычисление по запросу
  • 2 Формулы полуугла и сложения углов
  • 3 Быстрое, но неточное приближение
  • 4 Лучшая, но все же несовершенная формула рекурсии
  • 5 См. Также
  • 6 Ссылки

Вычисление по запросу

Страница из книги 1619 года математических таблиц.

Современные компьютеры и калькуляторы используют различные методы для получения значений тригонометрических функций по запросу для произвольных углов (Кантабутра, 1996). Один из распространенных методов, особенно на процессорах более высокого уровня с блоками с плавающей запятой, состоит в объединении полиномиального или рационального приближения (например, как приближение Чебышева, наилучшее равномерное приближение и приближение Паде, и, как правило, для более высокой или переменной точности, ряд Тейлора и ряд Лорана ) с уменьшение диапазона и поиск в таблице - сначала они ищут ближайший угол в небольшой таблице, а затем используют полином для вычисления поправки. Однако сохранение точности при выполнении такой интерполяции нетривиально; и для этой цели можно использовать такие методы, как точные таблицы Гала, редукция Коди и Уэйта и алгоритмы редукции Пейна и Ханека. На более простых устройствах, в которых отсутствует аппаратный умножитель , существует алгоритм под названием CORDIC (а также связанные с ним методы), который более эффективен, поскольку использует только сдвиги. и дополнения. Все эти методы обычно реализуются в аппаратном обеспечении из соображений производительности.

Конкретный многочлен, используемый для аппроксимации триггерной функции, генерируется заранее с использованием некоторой аппроксимации алгоритма минимаксного приближения.

Для вычислений с очень высокой точностью, когда разложение в ряд сходимость становится слишком медленной, тригонометрические функции могут быть аппроксимированы средним арифметико-геометрическим, которое само аппроксимирует тригонометрическую функцию (комплексным ) эллиптическим интегралом (Brent, 1976).

Тригонометрические функции углов, которые рационально кратны 2π, являются алгебраическими числами. Значения для a / b · 2π могут быть найдены путем применения тождества де Муавра для n = a к ab корню из единицы, который также является корнем многочлена x - 1 в комплексная плоскость. Например, косинус и синус 2π ⋅ 5/37 являются действительными и мнимыми частями, соответственно, 5-й степени корня 37-й степени из единицы cos (2π / 37) + sin (2π / 37) i, который является корнем полинома x - 1 степени степени -37. В этом случае алгоритм поиска корня, такой как метод Ньютона, намного проще, чем описанные выше алгоритмы вычисления среднего арифметико-геометрического, но сходятся с такой же асимптотической скоростью. Однако последние алгоритмы требуются для трансцендентных тригонометрических констант.

Формулы сложения половинного угла и угла

Исторически самым ранним методом вычисления тригонометрических таблиц и, вероятно, наиболее распространенным до появления компьютеров, было многократное применение полуугловой формулы. угол и сложение углов тригонометрические тождества, начиная с известного значения (например, sin (π / 2) = 1, cos (π / 2) = 0). Этот метод использовался древним астрономом Птолемеем, который вывел их в Альмагест, трактат по астрономии. В современной форме полученные им тождества сформулированы следующим образом (знаки определяются квадрантом, в котором находится x):

cos ⁡ (x 2) = ± 1 2 (1 + cos ⁡ x) {\ displaystyle \ cos \ left ({\ frac {x} {2}} \ right) = \ pm {\ sqrt {{\ tfrac {1} {2}} (1+ \ cos x)}}}\ cos \ left (\ frac {x} {2} \ right) = \ pm \ sqrt {\ tfrac {1} {2} (1 + \ cos x)}
sin ⁡ (x 2) = ± 1 2 (1 - соз ⁡ Икс) {\ Displaystyle \ sin \ left ({\ frac {x} {2}} \ right) = \ pm {\ sqrt {{\ tfrac {1} {2} } (1- \ соз х)}}}\ sin \ left (\ frac {x } {2} \ right) = \ pm \ sqrt {\ tfrac {1} {2} (1 - \ cos x)}
грех ⁡ (х ± y) = грех ⁡ (х) соз ⁡ (y) ± соз ⁡ (х) грех ⁡ (y) {\ displaystyle \ sin (x \ pm y) = \ sin (x) \ cos (y) \ pm \ cos (x) \ sin (y) \,}\ sin (x \ pm y) = \ sin (x) \ cos (y) \ pm \ cos (x) \ sin (y) \,
cos ⁡ (x ± y) = cos ⁡ (x) cos ⁡ (y) ∓ грех ⁡ (Икс) грех ⁡ (Y) {\ Displaystyle \ соз (х \ pm у) = \ соз (х) \ соз (у) \ МП \ грех (х) \ грех (у) \,}\ cos (x \ pm y) = \ cos (x) \ cos (y) \ mp \ sin (x) \ sin (y) \,

Они были использованы для построения таблицы аккордов Птолемея, которая применялась к астрономическим задачам.

Возможны различные другие перестановки этих тождеств: например, в некоторых ранних тригонометрических таблицах использовались не синус и косинус, а синус и версия.

Быстрое, но неточное приближение

Быстрый, но неточный алгоритм расчета таблицы из N приближений s n для sin (2π n / N) и c n для cos (2πn / N) равно:

s0= 0
c0= 1
sn + 1 = s n + d × c n
cn + 1 = c n - d × s n

для n = 0,..., N - 1, где d = 2π / N.

Это просто метод Эйлера для интегрирования дифференциального уравнения :

ds / dt = c {\ displaystyle ds / dt = c}ds / dt = c
dc / dt = - s {\ displaystyle dc / dt = -s}dc / dt = -s

с начальными условиями s (0) = 0 и c (0) = 1, аналитическое решение которого - s = sin (t) и c = cos (t).

К сожалению, это бесполезный алгоритм для создания таблиц синусов, поскольку он имеет значительную ошибку, пропорциональную 1 / N.

Например, для N = 256 максимальная ошибка значений синуса составляет ~ 0,061 (s 202 = -1,0368 вместо -0,9757). Для N = 1024 максимальная ошибка значений синуса составляет ~ 0,015 (s 803 = -0,99321 вместо -0,97832), что примерно в 4 раза меньше. Если бы полученные значения синуса и косинуса были нанесены на график, этот алгоритм нарисовал бы логарифмическую спираль, а не круг.

Лучшая, но все еще несовершенная формула повторения

Простая формула повторения для создания тригонометрических таблиц основана на формуле Эйлера и соотношении:

ei (θ + Δ) знак равно ei θ × ei Δ θ {\ displaystyle e ^ {i (\ theta + \ Delta)} = e ^ {i \ theta} \ times e ^ {i \ Delta \ theta}}e ^ {i (\ theta + \ Delta)} = e ^ {i \ theta} \ times e ^ {i \ Delta \ theta}

Это приводит к следующему повторению для вычисления тригонометрических значений s n и c n, как указано выше:

c0= 1
s0= 0
cn + 1 = w rcn- w isn
sn + 1 = w icn+ w rsn

для n = 0,..., N - 1, где w r = cos (2π / N) и w i = sin (2π / N). Эти два начальных тригонометрических значения обычно вычисляются с использованием существующих библиотечных функций (но также могут быть найдены, например, с помощью метода Ньютона в комплексной плоскости для нахождения примитива корень из z - 1).

Этот метод будет создавать точную таблицу в точной арифметике, но имеет ошибки в арифметике с конечной точностью с плавающей запятой. Фактически, ошибки растут как O (ε N) (как в худшем, так и в среднем случае), где ε - точность с плавающей запятой.

Значительным улучшением является использование следующей модификации вышеизложенного, трюка (из-за Синглтона, 1967), часто используемого для генерации тригонометрических значений для реализаций БПФ:

c0= 1
s0= 0
cn + 1 = c n - (α c n + β s n)
sn + 1 = s n + ( β c n - α s n)

где α = 2 sin (π / N) и β = sin (2π / N). Погрешности этого метода намного меньше, O (ε √N) в среднем и O (ε N) в худшем случае, но этого все еще достаточно, чтобы существенно ухудшить точность БПФ больших размеров.

См. также

Ссылки

Последняя правка сделана 2021-06-11 11:29:51
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте