Страница 1 из 3

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

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

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

Добавлено: 10 фев 2012, 16:33
Sonic86
Как писать формулы, читайте здесь: [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 И вообще, что такого сложного в том, чтобы определить значение синуса\косинуса?
Да как бы ничего сложного. Таблицы Брадиса тоже через ряды Маклорена вычислялись.

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

Добавлено: 10 фев 2012, 19:15
vicvolf
Знак сигма означает сумму. Внизу -нижний предел суииы, вверху - верхний. В данном случае - бесконечность (сумма бесконечного ряда). Вы, видите - ряды знакочередующиеся. Если отбросить последние члены сходящегося ряда, то ошибка не превосходит модуля последнего отброшенного члена. Это нужно использовать для оценки точности.

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

Добавлено: 10 фев 2012, 19:37
folk
Есть книжка Бахвалова по вычислительным методам. Там отдельная глава про ручной и машинный счет стандартных рядов, про погрешности, точность и так далее. Если хотите изучать численные методы - это очень хороший учебник.

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

Добавлено: 10 фев 2012, 21:17
Rody
Всем большое спасибо, на бейсике реализовал алгоритм подсчета синуса и косинуса.
в сути почулось так:

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

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$$
Или я что-то не так понимаю?

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

Добавлено: 10 фев 2012, 21:26
AV_77
Rody писал(а):Source of the post
Или я что-то не так понимаю?

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

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

Добавлено: 10 фев 2012, 21:32
Rody
AV_77 писал(а):Source of the post
Rody писал(а):Source of the post
Или я что-то не так понимаю?

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

Гениально. Благодарю.

Найти 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)$$. В этом случае для достижения той же точности понадобиться меньшее число членов ряда.

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

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

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

Добавлено: 11 фев 2012, 22:58
folk
Замечания по тексту программы на бейсике.
попробуйте записать ряд вынося за скобки каждый раз квадрат x пополам, и так далее, а в программе вычислять начиная с самой внутренней скобки. такой подход позволит избежать возведения в степень и увеличит точность вычислений. Правда нужно будет сразу определить сколько же членов вам надо просуммировать, но это можно понять по величине последнего члена.

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

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