MLoop 15

Задача. Вычислите с точностью [latex]\varepsilon[/latex] значение функции [latex]f(x)=\csc x[/latex] . При вычислениях допустимо использовать только арифметические операции.

Тесты

[latex]x[/latex] [latex]\varepsilon[/latex] Результат
42  0.3 -8.09848e-05
8 0.15 -0.0117188
55.5 0.04 -3.50972e-055
-12 0.6 0.00347222
-82 0.0001 -3.23677e-08

Код

Код программы на ideone.com

Решение :

Косеканс — это тригонометрическая функция, которою можно определить формулой [latex]\csc x=\frac{1}{\sin x}[/latex]. Таким образом, мы можем разложить  функцию [latex]\sin x[/latex] в бесконечную сумму степенных функций, воспользовавшись формулой Тейлора. Получим, что [latex]\sin x=x-\frac{{x}^{3}}{3!}+\frac{{x}^{5}}{5!}-\dots=\sum_{n=0}^{\propto}\frac{{-1}^{n}\times{x}^{2n+1}}{\left(2n+1\right)!}[/latex]. Слагаемые данной суммы являются геометрической прогрессией, знаменатель который можно найти по формуле [latex]\frac{a_n}{a_{n-1}}=\frac{\frac{{-1}^{n}\times{a}^{2n+1}}{\left(2n+1 \right)!}}{\frac{{-1}^{n-1}\times{a}^{2n-1}}{\left(2n-1 \right)!}}=\frac{\left( -1\right){a}^{2}}{2n\times\left( 2n+1\right)}[/latex].  Будем вычислять сумму до тех пор, пока разность [latex]n[/latex]-го и  [latex]\left ( n+1 \right )[/latex]-го слагаемых  будет больше заданной точности.

Related Images:

4 thoughts on “MLoop 15

  1. — «Члены данной суммы»? Так не говорят. Если члены, то ряда. А если суммы, то слагаемые.
    — Вам нужно не просто вычислить n-ю частичную сумму ряда. Нужно гарантировать точность эпсилон. Т.е. нужно вычислять частичные суммы до тех пор, пока очередной член ряда по модулю превышает эпсилон.

    • Спасибо, исправила код и объяснение решения задачи.

    • — Вы не используете в программе действительный эпсилон, хотя он есть в тестах. Вместо него Вы вводите целое n. Я не могу догадаться, что имеется в виду.
      — Что это за странная формула k = 1 / s2 - 1 / s1; // вычисляем последнее слагаемое суммы. Комментарий делает её ещё более загадочной если вспомнить, что вычисляется сумма бесконечного ряда.

      Аня. Перечитайте второй абзац моего предыдущего комментария или посмотрите, например, работу Кати.

    • Спасибо, написала новый код и исправила неточности в алгоритме решения.

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