Ю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:

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

Related Images:

Ю 3.31

 Задача: Численно убедится в справедливости равенства для заданного значения аргумента [latex]x[/latex] на заданное значение погрешности [latex]\varepsilon [/latex]. вывести число итераций.

[latex]cosx=1-\frac { { x }^{ 2 } }{ 2! } +\frac { { x }^{ 4 } }{ 4! } -\dots +{ (-1) }^{ n }\frac { { x }^{ 2n } }{ (2n)! }+\dots[/latex]
x  Delta  Value  Step’s
0    [latex]0[/latex] 0.0000001 1 1
3.14     [latex]\pi[/latex]  0.00001 -1 7
1.57    [latex]\frac { \pi }{ 2 }[/latex]  0.00001 0.000795865 5
1.05    [latex]\frac { \pi }{ 3 }[/latex]   0.00001 0.497571 4
2.09    [latex]\frac { 2\pi }{ 3 }[/latex]   0.00001 -0.496189 6

Код программы на С++

Код программы на Java

Ссылка на Java

Можно заметить, что каждый последующий член ряда рекурсивно выражается через предыдущий. Это позволяет нам значительно уменьшить количество операций. Суть решения в том, что получая аргумент мы фиксируем левую часть выражения, вычисляя значение косинуса от данного аргумента, а затем проверяем сколько слагаемых нам потребуется, чтобы вторая часть отличалась от первой на заданное значение дельта. Цикл программы выводит значение правой части на каждом шагу, а как ответ показывает значения левой и итоговой правой частей.

 

Related Images: