D2655B. Cумма ряда с заданной точностью

Задача
Сколько примерно надо взять членов ряда, чтобы найти его сумму с точностью до
[latex]\varepsilon [/latex], если [latex]\sum\limits _{ n=1 }^{ \infty }{ \frac { 1 }{ (2n-1)! } } [/latex]

Тесты

Входные данные Выходные данные
Точность Кол-во взятых членов ряда Значение суммы
1 1 1 1
2 10е-5 4 1.1752
3 0.17 1 1
4 0.16 2 1.16667
5 2 0 0

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

Решение
Так как члены ряда монотонно стремятся к нулю, то для любого положительного числа существует номер, начиная с которого каждый последующий член ряда будет меньше этого числа. Запишем несколько первых членов последовательности:
[latex]{ a }_{ 1 }=\frac { 1 }{ 1! }; [/latex] [latex]{ a }_{ 2 }=\frac { 1 }{ 3! }; [/latex] [latex]{ a }_{ 3 }=\frac { 1 }{ 5! }; [/latex] [latex]{ a }_{ 4 }=\frac { 1 }{ 7! }; [/latex] Как видно, каждый член последовательности равен единице, делённой на факториал некоторого числа, и для каждого следующего члена это число на [latex]2[/latex] больше, чем для предыдущего. Обозначим это число как [latex]i[/latex]. Численно [latex]i[/latex] будет равняться номеру текущего элемента [latex]n[/latex], умноженному на два.
Тогда в начале программы мы вводим желаемую точность, а затем создаём цикл, в начале каждого круга увеличиваем [latex]n[/latex] на 1, прибавляем к значению переменной, где хранится сумма членов, единицу, делённую на значение знаменателя, затем для получения знаменателя следующего члена умножаем прошлое значение на [latex]2n[/latex] и [latex](2n+1)[/latex].

Код на ideone.com
Условие задачи (стр. 259)

3 thoughts on “D2655B. Cумма ряда с заданной точностью

  1. — Уберите слово «нахождение» из заголовка. И без него всё понятно, а с ним появляется двусмысленность. и оба смысла Вам не подходят.
    — В Вашем случае в тестах логичнее указать число, в нотации языка программирования: 1e-5. Т.е. так, как Вы запишите его во входном потоке, а не в latex.
    — Используйте \limits, чтобы пределы суммирования записывались так, как в Вашем учебнике, а не сбоку.
    — Вы пишите «Последовательность является убывающей. Это означает, что если задать некоторое число, неравное нулю, начиная с какого-то номера все члены последовательности будут меньше этого числа.» Это неправда. Точнее не всегда правда. Всё зависит от того к чему стремится Ваша убывающая последовательность. Возможно вы хотели сказать, что «так как члены ряда монотонно стремятся к нулю, то для любого положительного числа …»
    — Не самый логичный способ введения счётчика i. Обычно это просто номер элемента. Но так тоже будет работать правильно.

    Если рассуждать всерьёз (не для изучения азов программирования, а для правильного решения задачи), то… «Малость» очередного слагаемого не гарантирует не только точности вычисления бесконечной суммы членов убывающей последовательности, а и вообще существования такой конечной суммы. Например, гармонический ряд вообще расходится, а Вы остановитесь в вычислениях, когда очередная добавка станет меньше точности. И что мы насчитаем?
    Как же правильно поступать?
    — Доказать сходимость ряда.
    — В условии окончания цикла использовать остаток ряда.
    Если у Вас будет время этим заняться, то очень хорошо. Если нет, исправьте только первые замечания.

  2. Я зачту работу. Только введите в условие [latex]\varepsilon[/latex] вместо [latex]10^{-5}.[/latex]

    Вы пытались обосновать сходимость ряда, или мне это показалось? К сожалению стремления к нулю общего члена положительного ряда еще не достаточно. Необходимо, но не достаточно. Т.е. ряд может как сходиться, так и расходиться. Но если такого стремления нет, то ряд точно расходится. Если Вас заинтересовала эта тема, то можно почитать это очень доходчивое объяснение. А можно просто подождать — сходимость рядов будет одной из тем Ваших будущих занятий по математическому анализу.