Задача. Вычислить бесконечную сумму с заданной точностью [latex]\varepsilon[/latex]([latex]\varepsilon[/latex]>0). Считать что требуемая точность достигнута, если несколько первых слагаемых и очередное слагаемое оказалось по модулю меньше, чем [latex]\varepsilon [/latex], это и все последующие слагаемые можно уже не учитывать.
Вычислить:
[latex]\sum _{ i=0 }^{ \infty }{ \frac { 1 }{ { 4 }^{ i }+{ 5 }^{ i+2 } } }[/latex]
[latex]\varepsilon[/latex] | [latex]r[/latex] |
0.09 | 0 |
0.02 | 0.0384615 |
0.000 7 | 0.0477735 |
0.000 056 | 0.0481501 |
0.000 000 4 | 0.0481658 |
Давайте сразу же упростим заданную сумму:
[latex]\sum _{ i=0 }^{ \infty }{ \frac { 1 }{ { 4 }^{ i }+{ 5 }^{ i+2 } } } = \sum _{ i=0 }^{ \infty }{ \frac { 1 }{ { 4 }^{ i }+{ 5 }^{ i }*25 } }[/latex]
Из выше описанного следует что если обозначить слагаемые в знаменателе как [latex]a[/latex] и [latex]b[/latex] соответственно, то изначально их нужно инициализировать как [latex]a=1[/latex], a [latex]b=25[/latex], то следует каждый раз умножать [latex]a[/latex] на четыре, а [latex]b[/latex] на пять, чтобы получить нужную нам последовательность. Осталось только сделать цикл который будет находить каждый элемент последовательности и прибавлять его к переменной [latex]r[/latex] в которой мы будем хранить результат, при этом цикл будет работать только пока текущий элемент последовательности больше заданного нам числа [latex]\varepsilon[/latex]. После нарушения условия цикла мы выводим полученную сумму последовательности которая хранится у нас в переменной [latex]r[/latex].
Код программы: http://ideone.com/9nYtod.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <cstdlib> #include <iostream> using namespace std; int main() { double e; cin >> e; double a = 1.0, b = 25.0; double r=0, y=0; do{ r+=y; y=1.0/(a+b); a *= 4; b *= 5; }while( y>e ); cout << r << endl; } |
— Используйте latex вместо картинок
— «сходу немного переиначить» Этот стиль неуместен.
— «цикл будет работать только если» Не «если», а «пока».
— «Циклы с локальной модификацией параметров в заданной формуле.» Это не ключевое слово.
Исправлено.
Зачтено