Версия теста Calculator Forensics для радиан

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

Оригинальный тест — \arcsin \arccos \arctg \tg \cos \sin 9 — построен так, что значение исходного угла 9° является максимальным, содержащим одну значащую цифру; все промежуточные значения находятся в пределах первого квадранта, а результат итоговых вычислений в основном содержит уникальную ошибку уже через 5-6 знаков после запятой (часто еще ближе), а промежуточные результаты не округляются настолько, чтобы разные алгоритмы давали идентичные результаты. Наконец, результат наглядно демонстрирует точность работы.

Увы, этот алгоритм неприменим при ведении вычислений в радианах, так как число 9 оказывается уже во втором квадранте (≈155°+360°) и для приведения результата к наглядному виду требуется дополнительно произвести операции /-/ и + (π × 3), что снижает точность, либо между функциями приходится вводить поправки аргументов на коэффициент перевода из градусов в радианы: 180 \over \pi (≈57), делая формулу громоздкой и приводя к необходимости выполнить умножение после вычисления итогового арксинуса, искажая минимум 2 младших разряда.

В процессе изучения поведения калькуляторов была найдена формула, учитывающая эти проблемы:

\arcsin \arccos \arctg \tg \cos \sin 0.003

Она обладает следующими преимуществами.

  1. Исходное число приближено к результату выражения 9 \over {(180 \div \pi)^2} (≈0.0027). Благодаря этому ожидаемое значение функции косинуса (≈0.9999955) оказывается близким к таковому при проведении стандартного теста (≈0.9999963), что дает необходимую, но не чрезмерную погрешность в вычислениях.
  2. Число содержит только одну значащую цифру. Это означает, что при хранении числа в нормализованном формате отсутствует потеря точности.
  3. Алгоритм не содержит никаких новых операций, за исключением более длинного исходного числа, которое, тем не менее, также легко запоминается: «Три нуля, три»

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

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

Добавить комментарий

Ваш адрес email не будет опубликован.