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

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

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

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

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

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

Вычислить сумму ряда
Найти значение выражения s=x^2+x^6+x^10 ...x34. Степень вычислять при помощи подпрограммы функции.

Вычислить сумму ряда
Написать программу, вычисляющую сумму элементов предложенного ряда. Значения n и х должны вводиться...

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

2
Puporev
Модератор
59402 / 44827 / 30941
Регистрация: 18.05.2008
Сообщений: 107,543
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
Модератор
7350 / 3745 / 2677
Регистрация: 17.08.2012
Сообщений: 11,980
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
29.12.2017, 23:34
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2017, 23:34

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

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

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

Вычислить сумму ряда
Вычислить у = cosx + cosx2+ cosx3+... + cosxn

Вычислить сумму ряда
Здравствуйте! Не могу додуматься составить алгоритм выполнения программы. Помогите, пожалуйста....


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

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

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