Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
12 / 11 / 2
Регистрация: 13.09.2012
Сообщений: 147
1

Операторы цикла: вычислить сумму бесконечного ряда

20.09.2012, 11:29. Показов 1166. Ответов 7
Метки нет (Все метки)

Добрый день. Помогите пожалуйста решить данную задачку: 4(г). Заранее благодарю.
4. Даны действительные числа x, ε (x≠0, ε>0). Вычислить с точностью ε:

https://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{k=0}^{\infty}\frac{{(-1)}^{k}}{{((k+1)!)}^{2}}{(\frac{x}{2})}^{2(k+1)}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2012, 11:29
Ответы с готовыми решениями:

Операторы цикла: вычислить сумму бесконечного ряда
Добрый день. Помогите пожалуйста решить данную задачку: 7(г). Заранее благодарю. Дано...

Операторы цикла: вычислить сумму ряда
Вычислить значение функции: 7 Z = Ʃ 5x^2 + 2.5 / k k=1 ...

Операторы цикла: вычислить сумму ряда
Задача: Операторы цикла Задание (Вложение) Кто нибудь знает такое?

Операторы цикла: вычислить сумму ряда
Добрый день. Помогите пожалуйста решить данную задачку: 3(г). Заранее благодарю. 3. Даны...

__________________
7
423 / 423 / 338
Регистрация: 25.06.2012
Сообщений: 668
21.09.2012, 18:00 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
var
  x, Res, ResP, eps, Fact : real;
  k, Znak : integer;
begin
Write('X = ');
Readln(x);
Write('EPS = ');
Readln(EPS);
k := 0;
Res := 0;
Znak := 1;
Fact := 1;
Repeat
 Fact := Fact*(k + 1);
 ResP := Znak/SQR(Fact)*exp(2*(k + 1)*ln(x/2));
 Res := Res + ResP;
 Znak := (-1)*Znak;
 k := k + 1;
until abs(ResP) < eps; 
Writeln('Result = ', Res:0:3, '; k = ', k);
end.
1
12 / 11 / 2
Регистрация: 13.09.2012
Сообщений: 147
06.10.2012, 11:46  [ТС] 3
Извиняюсь за ап темы, но препод немного недоволен решением этого примера.. Говорит вот эту строчку считать так нельзя/нежелательно, и сказал ее пересчитать через цикл for. Помогите пожалуйста добрые люди...
Цитата Сообщение от Reveng Посмотреть сообщение
ResP := Znak/SQR(Fact)*exp(2*(k + 1)*ln(x/2));
0
423 / 423 / 338
Регистрация: 25.06.2012
Сообщений: 668
06.10.2012, 12:11 4
Наверняка можно оптимизировать код, но выглядеть оно будет примерно так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
var
  x, Res, ResP, eps, Fact : real;
  k, Znak, i : integer;
begin
Write('X = ');
Readln(x);
Write('EPS = ');
Readln(EPS);
k := 0;
Res := 0; Znak := 1; Fact := 1;
Repeat
 Resp := 1;
 for i := 1 to 2*(k + 1) do ResP := ResP*(x/2);
 Fact := Fact*(k + 1);
 ResP := (Znak/sqr(Fact))*ResP;
 Res := Res + ResP;
 Znak := -Znak;
 inc(k);
until abs(ResP) < eps; 
Writeln('Result = ', Res:0:3, '; k = ', k);
end.
А преподаватель наверняка не доволен формулой возведения в степень. При отрицательном x, предыдущая формула уже не работает..
1
12 / 11 / 2
Регистрация: 13.09.2012
Сообщений: 147
06.10.2012, 17:00  [ТС] 5
При запуске выдает Fatal, Syntax Error, : ":" expected but "identifier REAL" found
0
423 / 423 / 338
Регистрация: 25.06.2012
Сообщений: 668
06.10.2012, 17:28 6
Где и как ты её запускаешь?

Работает ведь всё:
Операторы цикла: вычислить сумму бесконечного ряда
1
Модератор
63339 / 47049 / 32429
Регистрация: 18.05.2008
Сообщений: 114,044
06.10.2012, 17:33 7
Без формул вообще, используя только рекуррентные соотношения можно так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
uses crt;
var
  x,e,t,s:real;
  k:integer;
begin
repeat
Write('x<>0  x= ');
Readln(x);
until x<>0;
repeat
Write('e>0 e= ');
Readln(e);
until e>0;
k := 0;
t:=sqr(x/2);
if abs(t)<=e then s:=t
else
 begin
  s:=t;
  while abs(t)>e do
   begin
    k:=k+1;
    t:=-t*sqr(x/2)/sqr(k+1);
    s:=s+t;
   end;
 end;
Writeln('Result = ',s:0:5, '; k = ', k);
end.
2
12 / 11 / 2
Регистрация: 13.09.2012
Сообщений: 147
06.10.2012, 17:36  [ТС] 8
Все спасибо заработало, перезагрузил компьютер.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2012, 17:36

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Операторы цикла: вычислить сумму ряда
Добрый день. Помогите пожалуйста решить данную задачку: 1(г). Заранее благодарю. 1. Дано...

Код итерационного цикла. Найти сумму бесконечного ряда
Помогите пожалуйста написать код!! Найти сумма бесконечного ряда \sum_{n = 1}^{\infty} \...

Используя операторы цикла с предусловием и постусловием, найти сумму ряда с указанной точностью
Используя операторы цикла с предусловием и постусловием, найти сумму ряда с точностью е=0.001 и...

Вычислить сумму бесконечного ряда
Вычислить сумму бесконечного ряда с точностью (тут символ &quot;3&quot; перевёрнутый) (точность считается...


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

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

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