Перейти к содержимому

Как компьютер считает синус

  • автор:

Как компьютеры вычисляют так точно sin (синус)?

Вот с удивительной точностью после запятой виндовый канкулятор, да и maTCad тот же взять точно считают, а как? Если взять asm функцию проца, то ошибка уже после четвертого знака?

Лучший ответ

1. Вычисления идут с плавающей запятой. Точность вычисления синуса без использования некоторых ухищрений — 9-й знак после запятой.
2. Для вычисления используется разложение Тейлора, которое обладает бесконечной точностью.

Остальные ответы
ну компьютер это просто машина в которой точность самое главное)))
У них внутрях таблицы Бредиса, вот что.
Через ряд Тейлора. Процессор — по таблицам, зашитым в микрокоде.

Ряд Тейлора для построений эффективных аппроксимаций НЕ используется. В математических сопроцессорах (по крайней мере ранних) использовался алгоритм CORDIC. Кроме того, в ряде библиотек используется аппроксимация многочленом, которую проще всего получить разложением в ряд Чебышёва (многочлен, полученный как частичная сумма ряда Чебышёва, по точности почти не будет уступать наилучшему равномерному приближению), а также интерполяция а таблице. Реже применяются более экзотические аппроксимации, такие как метод Паде-Чебышёва. Вообще, дробно-рациональные аппроксимации несколько уступают по точности многочленам, но, например, для арктангенса это более эффективный путь.
Что касается функции синус, то типичный подход к её аппроксимации состоит из двух этапов: 1) редуцирование аргумента, т.е. приведение его в промежуток аппроксимации — обычно [-pi/2; pi/2]; 2) вычисление аппроксимирующего многочлена. В математическом сопроцессоре аппаратно реализовано вычисление функции sin с расширенной точностью (80 бит) — это команда fsin, и некоторые языки программирования пользуются ей. Однако эта команда работает слишком медленно (хотя и довольно точно), поэтому в настоящее время чаще используются аппроксимации, написанные на базе SIMD-инструкций.

Быстрая тригонометрия

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

Математика

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

sin(x) = x — x^3/3! + x^5/5! — x^7/7! + . + (-1)^n * x^(2n+1)/(2n+1)!+ . ; (1)

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

cos(x) = 1 — x^2/2! + x^4/4! — x^6/6! + . + (-1)^n * x^2n/(2n)! + . ; (2)

Теперь как эти функции помогут нам. Мы, в отличии от компьютера, будем рассчитывать лишь два-три первых члена ряда. Это будет хорошо приближать синус и косинус при малых x — от нуля до pi/2. Для других x мы сначала возьмем остаток от деления на 2* pi , а затем воспользуемся формулами приведения:

sin(x+pi/2) = cos x; cos(x+pi/2) = — sin x;

sin(x+pi) = — sin x; cos(x-pi/2) = sin x;

sin(x-pi/2) = — cos x; cos(x+pi) = — cos x;

Теперь как все-таки считать синус угла от 0 до pi/2 . Берем первые два члена ряда (1). Таким образом

Средняя точность такого приближения ( повторюсь — на отрезке 0 — pi/2 ) около 2%. То есть вполне сносная. В худшем случае точность — 5%. Для косинуса все немного хуже. Два первых члена его ряда дают среднюю точность 7%, худшую — 20%, что конечно не то что нам надо. Вариантов решения этой проблемы два:

1) Рассчитывать три первых члена ряда — медленно, но очень точно;

2) Смотреть, больше или меньше косинус, чем pi/4, и дальше рассчитывать по формуле

cos(x+pi/4) = cos(x)*cos(pi/4) — sin(x)sin(pi/4) или

cos(x+pi/4) = (cos x — sin x) / sqrt(2);

Пр и этом естественно, что sqrt(2) не считается на ходу, а константа.

В заключении

Рад буду услышать комментарии и поправки.

SIN (функция SIN)

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще. Меньше

В этой статье описаны синтаксис формулы и использование функции SIN в Microsoft Excel.

Описание

Возвращает синус заданного угла.

Синтаксис

Аргументы функции SIN описаны ниже.

  • Число Обязательный. Угол в радианах, для которого вычисляется синус.

Замечание

Если аргумент задан в градусах, умножьте его на ПИ()/180 или преобразуйте в радианы с помощью функции РАДИАНЫ.

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Синус пи радиан (0, приблизительно).

Как компьютер считает синус

• F-502G, F-603, F-604

Hewlett-Packard (HP):

Можно выделить несколько основных видов калькуляторов:

• Имеют минимальное число функций (как правило, только арифметические операции) – это карманные калькуляторы, настольные калькуляторы, бухгалтерские калькуляторы (кнопки «00» и «000», настольные габариты.), калькуляторы с коррекцией (пошаговый просмотр произведенных вычислений), калькуляторы на большинстве телефонов и т.д.

• Отличительные четы: нет вычисления тригонометрических функций (sin, cos, tg, ctg, arcsin, arcos, arctg).

Использование таких калькуляторов в старших классах и ВУЗах затруднительно.

• Имеют набор специфических функций, применяемых в определённой сфере – финансовые калькуляторы, статистические калькуляторы, медицинские калькуляторы, проекционные калькуляторы, печатающие калькуляторы и т.д.

• Отличительные четы: малопонятные кнопки и надписи 🙂 , в обычных магазинах почти не продаются, нет вычисления тригонометрических функций (sin, cos, tg, ctg, arcsin, arcos, arctg).

Для большинства учащихся ценности не представляют.

Простые (устаревшие) инженерные калькуляторы или простые (устаревшие) научные калькуляторы

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

• К сожалению, некоторые люди считают, что на ЕГЭ и ГИА можно пользоваться только такими калькуляторами. Это не так, но лучше такой калькулятор, чем никакого.

• Отличительные четы: однострочный дисплей, нет клавиш навигации, 1-2*2 считается как (1-2)*2 = -2.

Плохой выбор. Могут использоваться на ГИА и ЕГЭ. Скорость расчётов значительно ниже, чем у современных инженерных (научных) калькуляторов.

Современные инженерные калькуляторы или современные научные калькуляторы

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

• Скорость расчётов человека, считающего на таком калькуляторе гораздо выше, а работа — производительнее. Он сосчитает значительно больше (проверено на собственном опыте), чем на простом научном (инженерном) калькуляторе за то же время. Будет меньше ошибок, поскольку введенная информация всегда перед вами, как и результат расчёта. Причина: интуитивный порядок ввода информации, режим правки и история вычислений.

• Некоторые модели таких калькуляторов имеют встроенную систему для численного решения квадратных и кубических уравнений и численного решения систем линейных уравнений до 3-х неизвестных. Эти возможности – немного ограничивают применение данных калькуляторов в образовательной сфере, особенно в начальных классах на уроках математики.

• К сожалению, некоторые люди иногда путают их с программируемыми калькуляторами. Это – ошибочное мнение. Такие калькуляторы разрешены на ЕГЭ и ГИА.

• Отличительные четы: Многострочный дисплей (обычно – 2-х строчный), клавиши навигации (обычно – две для редактирования: «влево», «вправо» и две для навигации по истории расчётов «вверх», «вниз»), нет клавиши [EXE], 1-2*2 = -3.

Программируемые калькуляторы и графические калькуляторы

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

• К сожалению, некоторые люди не знают, что использование таких калькуляторов на экзаменах запрещено. В т.ч. запрещено их использовать на ЕГЭ

• Отличительные черты: большой экран (у графического калькулятора) и кнопка [EXE] или [COM] вместо привычной кнопки [=] .

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *