Как стать автором
Обновить

Расчет значения синуса простой математикой

Время на прочтение2 мин
Количество просмотров11K

Предисловие

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

Начало

Для начала была создана та самая функция с периодом в\pi, которая должна в дальнейшем станет нашей синусоидой:

\left|\frac{\operatorname{mod}\left(x,\ \pi\right)}{\frac{\pi}{2}}-1\right|

Результат деления с остатком имеет диапозон [0;\pi], что не соответствует диапазону значений синуса [0;1], так что делим результат на \frac{pi}{2}, что дает нам необходимый диапазон [0;2], который в дальнейшем позволит нам получить необходимую форму графика.

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

Сходство

На выше приведенном изображении можно увидеть 2 графика:
Зеленый - синус
Красный - наша функция ( функция инвертирована ), возведенная в степень 1.7, подобранную методом тыка.

После сопоставления графиков отлично видно их сходство. Из-за сходства сложно разглядеть график синуса, так сильно они сходятся с подобранной степенью.

Знак периода

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

\operatorname{mod}\left(x,2\pi\right)

Ее период не совпадает с необходимым, так что инвертируем ее:

\pi-\operatorname{mod}\left(x,2\pi\right)

И получим ее знак, используя функцию калькулятора:

\operatorname{sign}\left(\pi-\operatorname{mod}\left(x,2\pi\right)\right)

Получаем следующий график:

Теперь умножим нашу функцию-"недосинус" на функцию знака:

\operatorname{sign}\left(\pi-\operatorname{mod}\left(x,2\pi\right)\right)\left(1-\left(\left|\frac{\operatorname{mod}\left(x,\ \pi\right)}{\frac{\pi}{2}}-1\right|\right)^{1.7}\right)

Получаем следующий график:

Уже очень похоже, но не то. Нужно избавиться от магической константы 1.7.

Магическая константа

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

\log_{\left|\frac{\operatorname{mod}\left(\frac{\pi}{4},\ \pi\right)}{\frac{\pi}{2}}-1\right|}\left(1-\left|\sin\left(\frac{\pi}{4}\right)\right|\right)

Таким образом считаем значение магической константы. Дадим имя константе, например \mu.

Таким образом наша функция стала выглядеть следующим образом:

\operatorname{sign}\left(\pi-\operatorname{mod}\left(x,2\pi\right)\right)\left(1-\left(\left|\frac{\operatorname{mod}\left(x,\ \pi\right)}{\frac{\pi}{2}}-1\right|\right)^{\mu}\right)

И отличие от графика "калькуляторного" синуса стало совсем незаметно на графике.

Погрешность

Данная формула имеет незначительную погрешность относительно "калькуляторной". Стоит ее посчитать.

Для подсчета возьмем угол 45 градусов, поскольку именно при таком значении наблюдается наибольшая погрешность.

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

d_{cos}=\cos\left(a\right)-c_{os}\left(a\right)d_{sin}=\sin\left(a\right)-s_{in}\left(a\right)d_{trig}=\sqrt{\left(d_{cos}\right)^{2}+\left(d_{sin}\right)^{2}}

Получаем следующее значение: 5.5511151231×10^{−16}

Погрешность крайне мала, потому, считаю, ей можно пренебречь.

Заключение

Создание данной функции не было подкреплено каким-либо поводом. Она была создана исключительно в целях саморазвития и утешения внутренней навязчивой идеи.

Благодарю за прочтение статьи. *занавес*

Теги:
Хабы:
Всего голосов 22: ↑16 и ↓6+10
Комментарии27

Публикации