Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
ura_1113
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 11
1

Вычислить сумму ряда

25.06.2017, 19:01. Просмотров 279. Ответов 4
Метки нет (Все метки)

Итерационные циклические алгоритмы.

Даны числовой ряд и некоторое число E. Найти сумму тех членов ряда, модуль которых больше или равен заданному E. Общий член ряда имеете вид:

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
a_n=\frac{n!}{\left( 2^n\right)!}<br />

Помогите решить

Пример программы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Var E,A,Am,Sm:real;
       N,i:integer;
BEGIN
Writeln('Введите количество повторений числового ряда');
Readln(N);//5
Writeln('Введите число E');
Readln(E);//0.035
Writeln();
Sm:=0;
i:=1;
repeat
                A:=Power(-1,i-1)/Power(i,i);
                If Abs(A)>=E then
                                 begin
                                 Am:=A;
                                 Sm:=Sm+Am;
                                 //Writeln(Sm);
                                 end;
                i:=i+1;
until i=N;
Writeln(Sm);
END.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2017, 19:01
Ответы с готовыми решениями:

Вычислить сумму ряда с точностью до числа ряда меньшего экспонентой
Вычислить сумму данного ряда с точностью до числа ряда меньшего экспонентой,для каждого значения Х...

Вычислить сумму ряда
Помогите пожалуйста bab_nadya, Вы, однако, умудрились одним постом нарушить кучу правил форума:...

Вычислить сумму ряда
y = sin1(sin1 + sin 2)(sin1 + sin2 + sin3)...(sin1 + sin2 + sin3 + ... + sin n)

Вычислить сумму ряда

Вычислить сумму ряда
Помогите написать прогу для высчывания s=1!+2!+3!+..+n! n&gt;1 решать циклом

4
Puporev
Модератор
56338 / 43118 / 29825
Регистрация: 18.05.2008
Сообщений: 102,469
25.06.2017, 20:10 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var e,f1,f2,a,sm:real;
    n,am,i:integer;
begin
repeat
write('Введите число 0>e<1 e=');
readln(e);
until(e>0)and(e<1);
n:=0;
f1:=1; //n!
am:=1; //текущий член
sm:=1; //сумма
repeat
n:=n+1;
am:=am*2;//2^n
f1:=f1*n; //n!
f2:=1;
for i:=1 to am do
f2:=f2*i;//2^n!
a:=f1/f2;//an
sm:=sm+a;
until a<e;
writeln(sm);
end.
0
ura_1113
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 11
25.06.2017, 21:43  [ТС] 3
А можно как нибудь без оператора For? Мне нужно только через оператор repeat
0
Puporev
Модератор
56338 / 43118 / 29825
Регистрация: 18.05.2008
Сообщений: 102,469
26.06.2017, 08:39 4
Pascal
1
2
3
4
5
6
f2:=1;
i:=1;
repeat
f2:=f2*i;//2^n!
i:=i+1;
until i>am;
0
Cyborg Drone
Модератор
5836 / 3425 / 2544
Регистрация: 17.08.2012
Сообщений: 10,984
29.06.2017, 20:25 5
Непосредственное вычисление факториала не есть хорошо. 2n тоже нехорошо, но приемлемо, для PABC-шного real это дело будет вычисляться точно, а переполнение произойдёт при 21024http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\approx<br />
1.7∙10308.

Интересный ряд... Немножко преобразуем его (сократим дробь аж на n!) и найдём рекуррентное соотношение для членов ряда. Буду считать, что, как и у Puporev, нумерация членов ряда начинается с 0.

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
S=\sum_{n=0}^{\infty}\frac{n!}{\left( 2^n\right)!}=\sum_{n=0}^{\infty}\,\prod_{k=n+1}^{2^n}\frac{1}{k}=\sum_{n=0}^{\infty}a_n<br />

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
a_0=1;\ \ \ a_n=\prod_{k=n+1}^{2^n}\frac{1}{k};\ \ \ a_{n-1}=\prod_{k=n}^{2^{n-1}}\frac{1}{k};<br />

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
p=\frac{a_n}{a_{n-1}}=\frac{\prod_{k=n+1}^{2^n}\frac{1}{k}}{\prod_{k=n}^{2^{n-1}}\frac{1}{k}}=\frac{n}{\prod_{k=2^{n-1}+1}^{2^n}k};\ \ \ a_n=p\cdot a_{n-1}=\frac{n\cdot a_{n-1}}{\prod_{k=2^{n-1}+1}^{2^n}k}<br />

Как видите, факториалами и не пахнет, однако, от некоторого произведения избавиться всё же не удалось. Но, это произведение поменьше (2n)! будет... В n! раз. К тому же, произведение это - в знаменателе, поэтому произойти может разве что антипереполнение.

Пишем программу.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var s, a, e, tn, k, n: real; {переменная tn будет хранить 2^n}
begin
  repeat
    write('0 < e < 1;  e = ');
    readln(e)
  until (0 < e) and (e < 1);
  a := 1; {a[0]}
  n := 0; {n}
  tn := 1; {2^0}
  s := a; {s[0]}
  repeat
    k := tn + 1; {2^(n-1)+1}
    tn := tn * 2; {2^n}
    n := n + 1; {n}
    a := n * a; {a:=n*a[n-1]}
    repeat {a:=a/(П_(k=2^(n-1)+1)^(2^n)(k)}
      a := a / k;
      k := k + 1
    until k > tn;
    s := s + a
  until a <= e;
  writeln('s = ', s:0:15)
end.
Добавлено через 16 минут
Чуть не забыл. Сокращать на n! вовсе не обязательно. Это я сделал для того, чтобы показать, во сколько раз изменяются числа в программе. Естественно, точно такое же рекуррентное соотношение получается и на основе не преобразованного общего члена ряда:

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
p=\frac{a_n}{a_{n-1}}=\frac{\frac{n!}{\left(2^n \right)!}}{\frac{(n-1)!}{\left(2^{n-1} \right)!}}=\frac{n!}{(n-1)!}\cdot \frac{\left(2^{n-1} \right)!}{\left(2^n \right)!}=\frac{n}{\prod_{k=2^{n-1}+1}^{2^n}k}<br />
0
29.06.2017, 20:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2017, 20:25

Вычислить сумму ряда
Вычислить сумму S = K - 2K + 3K - ... + (-1)n - 1 * KN.

Вычислить сумму ряда
пожалуйста решите 2 задания,условие на фото.

Вычислить сумму ряда
Прошу помощи в решении задачи,а то я даже без понятия,что вбивать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru