Ю3.35

Задача. [latex]\arctan(x)=x-\frac{x^{3}}{3}+\frac{x^{5}}{5}-\cdots (-1)^{n}\frac{x^{2n+1}}{2n+1}+\cdots[/latex]

Численно убедиться в справедливости равенства, для чего для заданного значения аргумента x вычислить левую его часть и разложение, стоящее в правой части, с заданной погрешностью [latex]\varepsilon[/latex]. Испытать разложение на сходимость при разных значениях аргумента, оценить скорость сходимости, для чего вывести число итераций n (слагаемых или cомножителей), необходимых для достижения заданной точности.

Тесты:

x [latex]\varepsilon[/latex] left right n Разность Комментарий
1 0.3 0,785398 1 0 0,214602 Пройден
0.6 0.02 0.54042 0.528 1 0.0124195 Пройден
0.7 0.0002 0.610726 0.610631 7 9.52374е-05 Пройден
0.7 0.000002 0.610726 0.610728 12 1.67214е-06 Пройден
0.7 0.00000000001 0.610726 0.610726 28 8.34648е-12 Пройден

Код программы:

 

В начале мы подставляем аргумент x в левую часть равенства и подсчитываем ее. Затем проверяем разность между правой частью и левой, если ее модуль меньше заданного [latex]\varepsilon[/latex], то выводим результат, а если нет, то в цикле while мы считаем последовательность до тех пор пока их разность не будет меньше [latex]\varepsilon[/latex]. Последовательность задается в цикле рекурентно, поэтому т.к. первый член последовательности будет равен x, то заведем переменную s, равную xкоторая будет определять чему равен числитель дроби, домножая предыдущий на [latex](-1)x^{2}[/latex] . После этого программа выводит значение левой и правой части, их разницу и количество итераций для заданной погрешности.

Код можно проверить здесь.

Решение на Java:

Ссылка на решение.

Янішевська Альона Русланівна
Янішевська Альона Русланівна

Latest posts by Янішевська Альона Русланівна (see all)

5 thoughts on “Ю3.35

  1. У Вас совершенно непояснено в отчете откуда взялось выражение «(-1)*(x*x*abs(2*n-1)/(2*n+1))»

    «Испытать разложение на сходимость при разных значениях аргумента, оценить скорость сходимости, для чего вывести число итераций n (слагаемых или cомножителей), необходимых для достижения заданной точности.» — для этого зафиксировав аргумент, нужно постепенно улучшать точность вычислений и смотреть что:
    1) получается более точное значение
    2) требуется больше итераций
    т.е. Ваша таблица тестов неполна

      • Насчет тестов все теперь хорошо. А вот насчет пояснения — да, понятно, что » домножая предидущий на \frac{(-1)x^{2}\left | 2n-1 \right |}{2n+1}» (кстати не предидущий, а предыдущий). Но откуда такая формула получилась — особенно удивительно (не заметил сразу) откуда появился модуль? По большому счету пояснить это несложно — просто разделив два элемента друг на друга — но эти выкладки желательно выписать в отчет. Впрочем все было бы проще, если бы Вы обозначили через s не очередное слагаемое, а только числитель(со знаком) и прибавляли бы в сумму s/(2*n+1) — это значительно упростило бы формулу для s.