Найти cos(x) и sin(x) зная только угол, не используя таблиц

Rody
Сообщений: 14
Зарегистрирован: 27 ноя 2011, 21:00

Найти cos(x) и sin(x) зная только угол, не используя таблиц

Сообщение Rody » 10 фев 2012, 16:15

Здравствуйте.
Необходимо найти cos(x) и sin(x) зная только угол(x) в радианах, не используя таблицы Брадиса.
Как я понял, самый простой способ - это ряды Тейлора. Но из формулы из вики мне кое что не ясно.
Изображение
Изображение
Первую часть с х и факториалом я понимаю, а вот дальше, когда дело доходит до сигмы - ничего непонятно, ибо как я прочел там же, эти ряды бесконечны. Если можно, то желательно на примере продемонстрировать как простому смертному можно найти чему равен синус или косинус определенного угла без таблиц, зная исключительно угол.
Скажем, как найти cos(1,57[Pi/2]) и sin(1,57[Pi/2]) .
И конечно же, хотелось бы почитать какую-нибудь подробную литературу о синусах, рядах Тейлора и всем прочем, связанном с этим. И вообще, что такого сложного в том, чтобы определить значение синуса\косинуса?
Заранее благодарен.
Последний раз редактировалось Rody 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test

Sonic86
Сообщений: 1774
Зарегистрирован: 03 мар 2011, 21:00

Найти cos(x) и sin(x) зная только угол, не используя таблиц

Сообщение Sonic86 » 10 фев 2012, 16:33

Как писать формулы, читайте здесь: [url=http://e-science.ru/forum/index.php?showtopic=2698]http://e-science.ru/forum/index.php?showtopic=2698[/url]
Rody писал(а):Source of the post Первую часть с х и факториалом я понимаю, а вот дальше, когда дело доходит до сигмы - ничего непонятно
Это просто одно и то же Непонятно второе - используйте первое.

Rody писал(а):Source of the post Если можно, то желательно на примере продемонстрировать как простому смертному можно найти чему равен синус или косинус определенного угла без таблиц, зная исключительно угол.
Скажем, как найти cos(1,57[Pi/2]) и sin(1,57[Pi/2]) .
Чему равно $$\pi$$ знаете? Подставляете - получаете угол в радианах (т.е. просто действительное число). Число подставляете в ряд и считаете столько первых членов ряда, сколько Вам нужно для нужной точности.

Rody писал(а):Source of the post И конечно же, хотелось бы почитать какую-нибудь подробную литературу о синусах, рядах Тейлора и всем прочем, связанном с этим.
Фихтенгольц Курс дифференциального и интегрального исчисления

Rody писал(а):Source of the post И вообще, что такого сложного в том, чтобы определить значение синуса\косинуса?
Да как бы ничего сложного. Таблицы Брадиса тоже через ряды Маклорена вычислялись.
Последний раз редактировалось Sonic86 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
vicvolf
Сообщений: 3155
Зарегистрирован: 13 ноя 2009, 21:00

Найти cos(x) и sin(x) зная только угол, не используя таблиц

Сообщение vicvolf » 10 фев 2012, 19:15

Знак сигма означает сумму. Внизу -нижний предел суииы, вверху - верхний. В данном случае - бесконечность (сумма бесконечного ряда). Вы, видите - ряды знакочередующиеся. Если отбросить последние члены сходящегося ряда, то ошибка не превосходит модуля последнего отброшенного члена. Это нужно использовать для оценки точности.
Последний раз редактировалось vicvolf 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

Найти cos(x) и sin(x) зная только угол, не используя таблиц

Сообщение folk » 10 фев 2012, 19:37

Есть книжка Бахвалова по вычислительным методам. Там отдельная глава про ручной и машинный счет стандартных рядов, про погрешности, точность и так далее. Если хотите изучать численные методы - это очень хороший учебник.
Последний раз редактировалось folk 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test

Rody
Сообщений: 14
Зарегистрирован: 27 ноя 2011, 21:00

Найти cos(x) и sin(x) зная только угол, не используя таблиц

Сообщение Rody » 10 фев 2012, 21:17

Всем большое спасибо, на бейсике реализовал алгоритм подсчета синуса и косинуса.
в сути почулось так:

Код: Выбрать все

Function Sin(Angle As Long, Optional Accuracy As Long = 15) As Double
Dim i As Long, x As Double, blnAction As Boolean
x = Angle2Rad(Angle)
Sin = x
For i = 3 To Accuracy Step 2
 If Not blnAction Then
 Sin = Sin - (x ^ i / Fact(i))
 blnAction = True
 Else
 Sin = Sin + (x ^ i / Fact(i))
 blnAction = False
 End If
Next i
End Function

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

Почему вверху бесконечность - я понимаю, ибо в результате выходит иррациональное число. А вот насчет того, почему n=0, мне не ясно. Например в формуле косинуса если начать с n=0, то выйдет следующее:
Изображение при $$n=0$$ --> $$\frac{(-1)^0 * x^0}{(2*0)!}=\frac{1}{0}\not=1$$
Или я что-то не так понимаю?
Последний раз редактировалось Rody 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test

AV_77
Сообщений: 3530
Зарегистрирован: 23 фев 2007, 21:00

Найти cos(x) и sin(x) зная только угол, не используя таблиц

Сообщение AV_77 » 10 фев 2012, 21:26

Rody писал(а):Source of the post
Или я что-то не так понимаю?

По определению $$0! = 1$$.
Последний раз редактировалось AV_77 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test

Rody
Сообщений: 14
Зарегистрирован: 27 ноя 2011, 21:00

Найти cos(x) и sin(x) зная только угол, не используя таблиц

Сообщение Rody » 10 фев 2012, 21:32

AV_77 писал(а):Source of the post
Rody писал(а):Source of the post
Или я что-то не так понимаю?

По определению $$0! = 1$$.

Гениально. Благодарю.
Последний раз редактировалось Rody 28 ноя 2019, 17:30, всего редактировалось 1 раз.
Причина: test

Таланов
Сообщений: 21057
Зарегистрирован: 07 янв 2009, 21:00

Найти cos(x) и sin(x) зная только угол, не используя таблиц

Сообщение Таланов » 11 фев 2012, 01:56

Rody писал(а):Source of the post
Необходимо найти cos(x) и sin(x) зная только угол(x) в радианах, не используя таблицы Брадиса.

Существуют углы синусы и косинусы которых известны из геометрии: $$0, \frac{\pi}{6}, \frac{\pi}{4}, \frac{\pi}{3}, \frac{\pi}{2}$$. Можно вычислить также синусы и косинусы суммы и разности этих углов. Теперь подбираем угол наиболее близкий к известному $$\sin x=\sin (\alpha+\Delta x)$$ где $$\Delta x$$ - наименьшее, преобразуем по формуле синуса суммы и уже раскладываем в ряд $$\sin (\Delta x)$$ и $$\cos (\Delta x)$$. В этом случае для достижения той же точности понадобиться меньшее число членов ряда.
Последний раз редактировалось Таланов 28 ноя 2019, 17:30, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
kiv
Сообщений: 1012
Зарегистрирован: 02 дек 2011, 21:00

Найти cos(x) и sin(x) зная только угол, не используя таблиц

Сообщение kiv » 11 фев 2012, 08:56

Если x выходит за рамки $$[0,\pi/2]$$, надо сначала привести его к этим рамкам. Дальше можно считать. Но если вас интересует не теоретический, а практический способ - лучше использовать интерполяцию или приближенные формулы (например, тот же cos(x) вычисляется пятью специально подобранными членами с точностью до $$10^{-9}$$ (см., например, Справочник по математике Г.Корн и Т.Корн).
Последний раз редактировалось kiv 28 ноя 2019, 17:30, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

Найти cos(x) и sin(x) зная только угол, не используя таблиц

Сообщение folk » 11 фев 2012, 22:58

Замечания по тексту программы на бейсике.
попробуйте записать ряд вынося за скобки каждый раз квадрат x пополам, и так далее, а в программе вычислять начиная с самой внутренней скобки. такой подход позволит избежать возведения в степень и увеличит точность вычислений. Правда нужно будет сразу определить сколько же членов вам надо просуммировать, но это можно понять по величине последнего члена.

Замечание в целом - ряд для тангенса быстро сходится на промежутке от 0 до $$\pi/8$$, синус и косинус можно вычислить через тангенс половинного угла - получаем до $$\pi/4$$ а к этому сводится любой угол формулами тригонометрии. Оценка последнего члена для 1/8 пи показывает что можно делать всего около десятка итераций для максимальной точности (а точность определяется разрядностью вашей точки дальнего плавания).

Если точность по барабану то есть полиномы из трех членов которые неплохо приближают синус. Есть интересный подход когда в таблице храните синусы и косинусы от $$(\pi/2^{n})$$ а далее по формуле $$sin(a+b)$$ собираете для произвольного числа. Ну и еще куча методов бывает...
Последний раз редактировалось folk 28 ноя 2019, 17:30, всего редактировалось 1 раз.
Причина: test


Вернуться в «Computer Science»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 2 гостей