WikiDer > Тригонометрические таблицы
Эта статья включает список литературы, связанное чтение или внешние ссылки, но его источники остаются неясными, потому что в нем отсутствует встроенные цитаты. (Декабрь 2018 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Тригонометрия |
---|
Справка |
Законы и теоремы |
Исчисление |
В математика, таблицы тригонометрические функции полезны во многих областях. До существования карманные калькуляторы, тригонометрические таблицы были необходимы для навигация, наука и инженерное дело. Расчет математические таблицы была важной областью исследований, которая привела к развитию первые механические вычислительные устройства.
Современные компьютеры и карманные калькуляторы теперь генерируют значения тригонометрических функций по запросу, используя специальные библиотеки математического кода. Часто эти библиотеки используют предварительно рассчитанные таблицы для внутренних целей и вычисляют требуемое значение, используя соответствующий интерполяция метод. Интерполяция простых справочных таблиц тригонометрических функций все еще используется в компьютерная графика, где может потребоваться лишь умеренная точность, а скорость часто имеет первостепенное значение.
Еще одно важное применение тригонометрических таблиц и схем генерации - быстрое преобразование Фурье (БПФ), где одинаковые значения тригонометрических функций (называемые факторы поворота) должны вычисляться много раз в данном преобразовании, особенно в общем случае, когда вычисляется много преобразований одного и того же размера. В этом случае вызов стандартных библиотечных подпрограмм каждый раз является недопустимо медленным. Один из вариантов - вызвать библиотечные подпрограммы один раз, чтобы построить таблицу тех тригонометрических значений, которые потребуются, но это требует значительного объема памяти для хранения таблицы. Другая возможность, поскольку требуется регулярная последовательность значений, заключается в использовании формулы повторения для вычисления тригонометрических значений на лету. Значительные исследования были посвящены поиску точных, стабильных схем повторения, чтобы сохранить точность БПФ (которое очень чувствительно к тригонометрическим ошибкам).
Вычисление по запросу
Современные компьютеры и калькуляторы используют различные методы для получения значений тригонометрических функций по запросу для произвольных углов (Kantabutra, 1996). Один распространенный метод, особенно на высокопроизводительных процессорах с плавающая точка единиц, состоит в том, чтобы объединить многочлен или рациональный приближение (такие как Чебышевское приближение, наилучшее равномерное приближение и Приближение Паде, и обычно для более высокой или переменной точности, Тейлор и Серия Laurent) с уменьшением диапазона и поиском в таблице - сначала они ищут ближайший угол в небольшой таблице, а затем используют полином для вычисления поправки. Однако сохранение точности при выполнении такой интерполяции нетривиально; и такие методы, как Точные таблицы ГалаДля этой цели можно использовать алгоритмы редукции Коди и Уэйта и алгоритмы редукции Пейна и Ханека. На более простых устройствах без аппаратный умножитель, существует алгоритм, называемый КОРДИК (а также связанные с ним методы), что более эффективно, поскольку использует только сдвиги и дополнения. Все эти методы обычно реализуются в оборудование по соображениям производительности.
Конкретный многочлен, используемый для аппроксимации триггерной функции, генерируется заранее с использованием некоторой аппроксимации алгоритм минимаксного приближения.
Для очень высокая точность расчетах, когда сходимость разложения в ряд становится слишком медленной, тригонометрические функции могут быть аппроксимированы среднее арифметико-геометрическое, который сам аппроксимирует тригонометрическую функцию соотношением (сложный) эллиптический интеграл (Брент, 1976).
Тригонометрические функции углов, рациональный кратные 2π являются алгебраические числа. Значения для а / б · 2π можно найти, применив личность де Муавра для п = а к бth корень единства, который также является корнем многочлена Иксб - 1 в комплексная плоскость. Например, косинус и синус 2π ⋅ 5/37 - это настоящий и мнимые частисоответственно, из 5-й степени корня 37-й степени из единицы cos (2π / 37) + sin (2π / 37) i, который является корнем степень-37 полином Икс37 - 1. В этом случае алгоритм поиска корня, такой как Метод Ньютона намного проще, чем описанные выше алгоритмы вычисления среднего арифметико-геометрического, но сходятся с такой же асимптотической скоростью. Последние алгоритмы необходимы для трансцендентный однако тригонометрические константы.
Формулы полуугла и сложения углов
Исторически сложилось так, что самый ранний метод расчета тригонометрических таблиц и, вероятно, наиболее распространенный до появления компьютеров, заключался в многократном применении половинного угла и сложения углов. тригонометрические тождества начиная с известного значения (например, sin (π / 2) = 1, cos (π / 2) = 0). Этим методом пользовался древний астроном. Птолемей, который вывел их в Альмагест, трактат по астрономии. В современной форме полученные им тождества формулируются следующим образом (со знаками, определяемыми квадрантом, в котором Икс вранье):
Они были использованы для построения Таблица аккордов Птолемея, который был применен к астрономическим задачам.
Возможны различные другие перестановки этих тождеств: например, в некоторых ранних тригонометрических таблицах использовались не синус и косинус, а синус и Версина.
Быстрое, но неточное приближение
Быстрый, но неточный алгоритм расчета таблицы N приближения sп для грех(2πп/N) и cп для потому что(2πп/N) является:
- s0 = 0
- c0 = 1
- sп+1 = sп + d × cп
- cп+1 = cп − d × sп
для п = 0,...,N - 1, где d = 2π /N.
Это просто Метод Эйлера для интеграции дифференциальное уравнение:
с начальными условиями s(0) = 0 и c(0) = 1, аналитическое решение которого s = грех (т) и c = cos (т).
К сожалению, это бесполезный алгоритм для создания таблиц синусов, потому что он имеет значительную ошибку, пропорциональную 1 /N.
Например, для N = 256 максимальная погрешность значений синуса ~ 0,061 (s202 = −1,0368 вместо −0,9757). Для N = 1024, максимальная погрешность значений синуса ~ 0,015 (s803 = −0,99321 вместо −0,97832), что примерно в 4 раза меньше. Если бы полученные значения синуса и косинуса были нанесены на график, этот алгоритм нарисовал бы логарифмическую спираль, а не круг.
Лучшая, но все еще несовершенная формула повторения
эта статья возможно содержит оригинальные исследования. (Декабрь 2018 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Простая формула повторения для создания тригонометрических таблиц основана на Формула Эйлера и отношение:
Это приводит к следующему повторению для вычисления тригонометрических значений sп и cп как указано выше:
- c0 = 1
- s0 = 0
- cп+1 = шр cп − шя sп
- sп+1 = шя cп + шр sп
для п = 0, ..., N - 1, где шр = cos (2π /N) и шя = sin (2π /N). Эти два начальных тригонометрических значения обычно вычисляются с использованием существующих библиотечных функций (но их также можно найти, например, используя Метод Ньютона в комплексной плоскости, чтобы найти примитив корень из zN − 1).
Этот метод даст точный таблица точной арифметики, но имеет ошибки конечной точности плавающая точка арифметика. Фактически ошибки растут как O (εN) (как в худшем, так и в среднем случае), где ε - точность с плавающей запятой.
Значительным улучшением является использование следующей модификации вышеупомянутого, трюка (из-за Синглтона, 1967), часто используемого для генерации тригонометрических значений для реализаций БПФ:
- c0 = 1
- s0 = 0
- cп+1 = cп - (α cп + β sп)
- sп+1 = sп + (βcп - αsп)
где α = 2 sin2(π /N) и β = sin (2π /N). Погрешности этого метода намного меньше, O (ε √N) в среднем и O (εN) в худшем случае, но он все еще достаточно велик, чтобы существенно ухудшить точность БПФ больших размеров.
Смотрите также
- Плимптон 322
- Численный анализ
- КОРДИК
- Точные тригонометрические константы
- Таблица синусов Арьябхаты
- Таблица синусов Мадхавы
использованная литература
- Карл Б. Бойер (1991) История математики, 2-е издание, Джон Уайли и сыновья.
- Манфред Таше и Хансмартин Зойнер (2002) «Улучшенный анализ ошибок округления для предварительно вычисленных факторов вращения», Журнал вычислительного анализа и приложений 4(1): 1–18.
- Джеймс С. Шацман (1996) "Точность дискретного преобразования Фурье и быстрого преобразования Фурье", Журнал SIAM по научным вычислениям 17(5): 1150–1166.
- Витит Кантабутра (1996) «Об оборудовании для вычисления экспоненциальных и тригонометрических функций», Транзакции IEEE на компьютерах 45(3): 328–339 .
- Р. П. Брент (1976) "Быстрое вычисление элементарных функций с множественной точностью", Журнал Ассоциации вычислительной техники 23: 242–251.
- Синглтон, Ричард К. (1967) "О вычислении быстрого преобразования Фурье", Коммуникации ACM 10: 647–654.
- Гал, Шмуэль и Бачелис, Борис (1991) "Точная элементарная математическая библиотека для стандарта IEEE с плавающей запятой", Транзакции ACM на математическом ПО.