Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Tatoha1
0 / 0 / 0
Регистрация: 27.11.2017
Сообщений: 2
1

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

26.12.2017, 12:05. Просмотров 771. Ответов 2
Метки нет (Все метки)

C клавиатуры вводится натуральное число n и вещественное число x. Нужно вычислить по формуле:

http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\sum_{k=1}^{n}\frac{(x+k)\cos kx}{2^k}<br />
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2017, 12:05
Ответы с готовыми решениями:

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

Вычислить сумму ряда
Вычислите сумму ряда с заданной степенью точности \alpha...

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

Вычислить сумму ряда
Итерационные циклические алгоритмы. Даны числовой ряд и некоторое число E....

Вычислить сумму ряда
(1/1)+(1/3)+(1/5)+...+(1/2*n)

2
Puporev
Модератор
56085 / 42961 / 29716
Регистрация: 18.05.2008
Сообщений: 101,939
26.12.2017, 14:54 2
Лучший ответ Сообщение было отмечено Tatoha1 как решение

Решение

Pascal
1
2
3
4
5
6
7
z:=1;
s:=0;
for k:=1 to n do
 begin
  z:=z*2;
  s:=s+(x+k)*cos(k*x)/z;
 end;
0
Cyborg Drone
Модератор
5747 / 3361 / 2509
Регистрация: 17.08.2012
Сообщений: 10,787
29.12.2017, 23:34 3
Фрагмент программы Puporev имеет существенный недостаток. Например, если z типа integer, то при n=31 будет выдан неверный результат, а при n>31 на 32 итерации возникнет ошибка деления на 0.

Чтобы этого не было, лучше рекуррентно вычислять не 2k, а 1/2k.

А ещё лучше воспользоваться формулой Горнера, тогда 2k или 1/2k в явном виде вычислять не придётся:
Pascal
1
2
  s := 0;
  for k := n downto 1 do s := ((x + k) * cos(k * x) + s) / 2;
Да и попроще вроде получается...

Замечу, что, если z имеет вещественный тип, то проблем вплоть до log2(NaN) не возникнет, то есть, до n=308 для типов real и double, и n=4932 для типа extended. При применении формулы Горнера эти ограничения снимаются, и n ограничивается только максимальным значением для её типа. Если n имеет тип integer, то максимальное n=2147483647.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2017, 23:34

Вычислить сумму ряда
Вычислите сумму А = 1 + (1 + 2) + (2 + 3) + (3 + 4) + … + ((n – 1) + n) ...

Вычислить сумму ряда
Добрый день! Помогите решить несколько задачь по программированию на abcpascal,...

Вычислить сумму ряда
Для заданного n вычислить \sum_{i=0}^{n}\frac{sin({i}^{2})}{(2i+1)!}*{x}^{i}


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

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

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