Ю3.39

Задача: Численно убедиться в справедливости равенства [latex]\frac{1}{4}\ln{\frac{1+x}{1-x}}+\frac{1}{2}\arctan{x}=\quad x+\frac{{x}^{5}}{5}+\dots+\frac{{x}^{4n+1}}{4n+1}+\dots[/latex], для чего для заданного значения аргумента [latex]x[/latex] вычислить левую его часть и разложение, стоящее в правой части, с заданной погрешностью [latex]e[/latex]. Испытать разложение на сходимость при разных значениях аргумента, оценить скорость сходимости, для чего вывести число итераций [latex]n[/latex] слагаемых, необходимых, для достижения заданной точности. Интервал для этой задачи: [latex]-1<x<1[/latex].

Ввод Вывод
[latex]x[/latex] Погрешность Output Комментарий
-0.99 1e-4 148 Пройден
0.99 1e-4 148 Пройден
0.99 1e-14 685 Пройден
0.7 1e-10 14 Пройден
-0.3 1e-13 6 Пройден
0.001 1e-13 1 Пройден
Идея решения: Используем цикл for, в условие которого ставим проверку на превышение погрешности суммы. Левую часть выражения вычисляем и записываем в переменную [latex]curr[/latex]. Сумму (то что стоит в правой части выражения) объявим как [latex]sum[/latex], и инициализируем значением [latex]x[/latex] (Это делается для того, чтобы во время работы цикла не вычислялось одно лишнее слагаемое).

Каждую итерацию цикла инкрементируем счетчик [latex]count[/latex]. Переменную [latex]y[/latex], которая соответствует i-тому слагаемому суммы, увеличивают до значения следующего слагаемого и прибавляют к сумме. Далее проверяем разность частичной суммы и заданного значения [latex]curr[/latex]. Если эта разность будет удовлетворять нашей точности, то число [latex]count[/latex] и будет количеством слагаемых в правой части.

Замечание: После цикла значение [latex]count[/latex] вновь инкрементируется, это сделано по следующей причине: сумма изначально содержала в себе первое слагаемое. Если сумма бы изначально содержала в себе 0, то нам пришлось бы вычислять лишнее слагаемое.

Ideone

Related Images:

Ю3.17

Задача: Сколько сомножителей надо взять в произведении: [latex]\prod_{k=1}^{\infty}{(1+\frac{{(-1)}^{k}}{2k+1})}=\frac{\sqrt{2}}{2}[/latex], чтобы равенство выполнялось до шестой значащей цифры, то есть с погрешностью не более [latex]{10}^{-6}[/latex]

Идея решения: Используем цикл for, в качестве [latex]k[/latex] в формуле используем переменную [latex]count[/latex] в программе. Переменную, которая будет соответствовать произведению, назовем [latex]mul[/latex] (сокращенно от multiplication) и присвоим ей значение 1 как нейтральный элемент для операции умножения. Каждую итерацию цикла проверяем разность [latex]mul-curr[/latex], где [latex]curr=\frac{\sqrt{2}}{2}[/latex], на превышение погрешности [latex]{10}^{-6}[/latex].

Если разность больше точности, умножаем [latex]mul[/latex] на выражение под знаком произведения и увеличиваем [latex]count[/latex] на единицу.

Если разность меньше точности, число [latex]count[/latex] и будет количеством сомножителей в произведении.

Число сомножителей оказалось достаточно большим — 88390. Ideone

Related Images: