Здравствуйте.
Необходимо найти cos(x) и sin(x) зная только угол(x) в радианах, не используя таблицы Брадиса.
Как я понял, самый простой способ - это ряды Тейлора. Но из формулы из вики мне кое что не ясно.
Первую часть с х и факториалом я понимаю, а вот дальше, когда дело доходит до сигмы - ничего непонятно, ибо как я прочел там же, эти ряды бесконечны. Если можно, то желательно на примере продемонстрировать как простому смертному можно найти чему равен синус или косинус определенного угла без таблиц, зная исключительно угол.
Скажем, как найти cos(1,57[Pi/2]) и sin(1,57[Pi/2]) .
И конечно же, хотелось бы почитать какую-нибудь подробную литературу о синусах, рядах Тейлора и всем прочем, связанном с этим. И вообще, что такого сложного в том, чтобы определить значение синуса\косинуса?
Заранее благодарен.
Найти cos(x) и sin(x) зная только угол, не используя таблиц
Найти cos(x) и sin(x) зная только угол, не используя таблиц
Последний раз редактировалось Rody 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test
Причина: test
Найти cos(x) и sin(x) зная только угол, не используя таблиц
Как писать формулы, читайте здесь: [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]) .
Фихтенгольц Курс дифференциального и интегрального исчисленияRody писал(а):Source of the post И конечно же, хотелось бы почитать какую-нибудь подробную литературу о синусах, рядах Тейлора и всем прочем, связанном с этим.
Да как бы ничего сложного. Таблицы Брадиса тоже через ряды Маклорена вычислялись.Rody писал(а):Source of the post И вообще, что такого сложного в том, чтобы определить значение синуса\косинуса?
Последний раз редактировалось Sonic86 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test
Причина: test
Найти cos(x) и sin(x) зная только угол, не используя таблиц
Знак сигма означает сумму. Внизу -нижний предел суииы, вверху - верхний. В данном случае - бесконечность (сумма бесконечного ряда). Вы, видите - ряды знакочередующиеся. Если отбросить последние члены сходящегося ряда, то ошибка не превосходит модуля последнего отброшенного члена. Это нужно использовать для оценки точности.
Последний раз редактировалось vicvolf 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test
Причина: test
Найти cos(x) и sin(x) зная только угол, не используя таблиц
Есть книжка Бахвалова по вычислительным методам. Там отдельная глава про ручной и машинный счет стандартных рядов, про погрешности, точность и так далее. Если хотите изучать численные методы - это очень хороший учебник.
Последний раз редактировалось folk 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test
Причина: test
Найти cos(x) и sin(x) зная только угол, не используя таблиц
Всем большое спасибо, на бейсике реализовал алгоритм подсчета синуса и косинуса.
в сути почулось так:
С показателем точности еще буду разбираться по книгам.
Почему вверху бесконечность - я понимаю, ибо в результате выходит иррациональное число. А вот насчет того, почему n=0, мне не ясно. Например в формуле косинуса если начать с n=0, то выйдет следующее:
при -->
Или я что-то не так понимаю?
в сути почулось так:
Код: Выбрать все
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, то выйдет следующее:
при -->
Или я что-то не так понимаю?
Последний раз редактировалось Rody 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test
Причина: test
Найти cos(x) и sin(x) зная только угол, не используя таблиц
По определению .
Последний раз редактировалось AV_77 28 ноя 2019, 17:29, всего редактировалось 1 раз.
Причина: test
Причина: test
Найти cos(x) и sin(x) зная только угол, не используя таблиц
Гениально. Благодарю.
Последний раз редактировалось Rody 28 ноя 2019, 17:30, всего редактировалось 1 раз.
Причина: test
Причина: test
Найти cos(x) и sin(x) зная только угол, не используя таблиц
Rody писал(а):Source of the post
Необходимо найти cos(x) и sin(x) зная только угол(x) в радианах, не используя таблицы Брадиса.
Существуют углы синусы и косинусы которых известны из геометрии: . Можно вычислить также синусы и косинусы суммы и разности этих углов. Теперь подбираем угол наиболее близкий к известному где - наименьшее, преобразуем по формуле синуса суммы и уже раскладываем в ряд и . В этом случае для достижения той же точности понадобиться меньшее число членов ряда.
Последний раз редактировалось Таланов 28 ноя 2019, 17:30, всего редактировалось 1 раз.
Причина: test
Причина: test
Найти cos(x) и sin(x) зная только угол, не используя таблиц
Если x выходит за рамки , надо сначала привести его к этим рамкам. Дальше можно считать. Но если вас интересует не теоретический, а практический способ - лучше использовать интерполяцию или приближенные формулы (например, тот же cos(x) вычисляется пятью специально подобранными членами с точностью до (см., например, Справочник по математике Г.Корн и Т.Корн).
Последний раз редактировалось kiv 28 ноя 2019, 17:30, всего редактировалось 1 раз.
Причина: test
Причина: test
Найти cos(x) и sin(x) зная только угол, не используя таблиц
Замечания по тексту программы на бейсике.
попробуйте записать ряд вынося за скобки каждый раз квадрат x пополам, и так далее, а в программе вычислять начиная с самой внутренней скобки. такой подход позволит избежать возведения в степень и увеличит точность вычислений. Правда нужно будет сразу определить сколько же членов вам надо просуммировать, но это можно понять по величине последнего члена.
Замечание в целом - ряд для тангенса быстро сходится на промежутке от 0 до , синус и косинус можно вычислить через тангенс половинного угла - получаем до а к этому сводится любой угол формулами тригонометрии. Оценка последнего члена для 1/8 пи показывает что можно делать всего около десятка итераций для максимальной точности (а точность определяется разрядностью вашей точки дальнего плавания).
Если точность по барабану то есть полиномы из трех членов которые неплохо приближают синус. Есть интересный подход когда в таблице храните синусы и косинусы от а далее по формуле собираете для произвольного числа. Ну и еще куча методов бывает...
попробуйте записать ряд вынося за скобки каждый раз квадрат x пополам, и так далее, а в программе вычислять начиная с самой внутренней скобки. такой подход позволит избежать возведения в степень и увеличит точность вычислений. Правда нужно будет сразу определить сколько же членов вам надо просуммировать, но это можно понять по величине последнего члена.
Замечание в целом - ряд для тангенса быстро сходится на промежутке от 0 до , синус и косинус можно вычислить через тангенс половинного угла - получаем до а к этому сводится любой угол формулами тригонометрии. Оценка последнего члена для 1/8 пи показывает что можно делать всего около десятка итераций для максимальной точности (а точность определяется разрядностью вашей точки дальнего плавания).
Если точность по барабану то есть полиномы из трех членов которые неплохо приближают синус. Есть интересный подход когда в таблице храните синусы и косинусы от а далее по формуле собираете для произвольного числа. Ну и еще куча методов бывает...
Последний раз редактировалось folk 28 ноя 2019, 17:30, всего редактировалось 1 раз.
Причина: test
Причина: test
Вернуться в «Computer Science»
Кто сейчас на форуме
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 11 гостей