Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Kristina-93
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 28
#1

Посчитать сумму ряда - C++

09.12.2013, 18:50. Просмотров 968. Ответов 16
Метки нет (Все метки)

Ребята, помогите девушке!))) Я не блондинка, но в программировании туплю сильно =( помогите решить такую задачку)

Код
         (x^3)   (x^5)      (x^(2n+1))
S=shx=x+ _____ + _____ + ... + _________
         3! 5!   (2n+1)!
-2<=x<=0,1
n max=40
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2013, 18:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Посчитать сумму ряда (C++):

Посчитать сумму ряда, ограничивая число элементов ряда первым элементом, меньшим заданной величины - C++
Посчитать сумму ряда, ограничивая число элементов ряда первым элементом, меньшим заданной величины eps. Определить реальную точность ряда. ...

Посчитать сумму ряда - C++
(Начало и n интервала вводит пользователь) Например: если начало интервала 3 и n=4 то программа считает 3+4+5+6=18.

Посчитать сумму ряда - C++
Подскажите как решить данную сумму без каких либо функций: \sum_{i = 5}^{n}x^i Пытался что-то сделать, но не могу понять как...

Посчитать сумму ряда - C++
Помогите найти сумму ряда с заданной точностью \varepsilon = 0.0001 {\varepsilon}^{x} = \sum_{k=0}^{\infty }\frac{{x}^{k}}{k!} , x\in...

Посчитать сумму ряда. - C++
Помогите оч умным девочкам решить задачи по с++))))) 1 дано вещественное число N посчитать сумму 1/0!+ 1/1!+1/2!+...+1/N! т.е число е...

Посчитать сумму ряда - C++
Всем привет, поставлена задача вычислить сумму сходящегося(т.е ввод только сходящегося) ряда, который вводим с клавиатуры? У кого какие...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
09.12.2013, 19:20 #2
Я так понимаю, это разложение шинуса в ряд Тейлора?
0
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
09.12.2013, 19:25 #3
Цитата Сообщение от Kristina-93 Посмотреть сообщение
помогите решить такую задачку
Для начала неплохо бы понять, что там именно написано. Вот fishec пытается догадаться... Попробуйте изложить вопрос с помощью редактора формул (под ответом). Если и правда - не блондинка - у вас получится!
0
Kristina-93
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 28
09.12.2013, 19:49  [ТС] #4
ой простите)

Добавлено через 1 минуту
S=shx=x+(x^3)/3! + (x^5)/5! + (x^(2n+1))/(2n+1)!

-2<=x<=0,1
n max=40
0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,463
09.12.2013, 19:59 #5
Как-то так
C
1
2
3
4
for(s=0, t=x, i=0; i<=2*n; i+=2) {
  s += t;
  t *= x*x/(i+2)*(i+3);
}
Это не рабочий код. Набросок. Оформите сами.
1
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
09.12.2013, 20:18 #6
Байт, нужна ли тут проверка, чтобы переполнения не было? при n=40, 81! - большое число)
0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,463
09.12.2013, 20:54 #7
Цитата Сообщение от fishec Посмотреть сообщение
нужна ли тут проверка, чтобы переполнения не было? при n=40, 81! - большое число)
По большому счеты вы правы. Но там все время делится. x - невелик. ИМХО, члены там очень быстро станут маленькими. Столь маленькими, что их даже double будет считать нулем. Вот если б я считал факториалы - тогда да! Но это опасное место обходится. Конечно, все это надо доказывать (или проверять). Но интуиция мне подсказывает, что все будет в порядке. Если вам не лень - займитесь более подробным анализом - это интересно!
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
09.12.2013, 21:02 #8
Цитата Сообщение от Байт Посмотреть сообщение
По большому счеты вы правы. Но там все время делится. x - невелик. ИМХО, члены там очень быстро станут маленькими.
а вот, кто его знает, х81 то же не маленькое число
доказывать надо
я бы считал в дубле(она вроде до 10300) и как только слагаемое стало шибко маленьким прекратил бы цикл
0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,463
09.12.2013, 21:07 #9
Цитата Сообщение от ValeryS Посмотреть сообщение
а вот, кто его знает, х81 то же не маленькое число
При |x| < 2 оно всетки много меньше 81! Легко прикинуть очень грубо, что 281/81! << 2-40
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
09.12.2013, 21:10 #10
Цитата Сообщение от Байт Посмотреть сообщение
При |x| < 2
там все таки есть равно
Цитата Сообщение от Kristina-93 Посмотреть сообщение
-2<=x
Цитата Сообщение от Байт Посмотреть сообщение
Легко прикинуть очень грубо,
лихо прикидываешь, я так не могу, научи
0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,463
09.12.2013, 21:25 #11
Цитата Сообщение от ValeryS Посмотреть сообщение
там все таки есть равно
Дела не меняет.
Цитата Сообщение от ValeryS Посмотреть сообщение
лихо прикидываешь, я так не могу, научи
Лично для тебя могу дать более "тонкую" оценку
16 = 24 17 > 24 ... 81 > 24
81! > 265*4 = 2260
281 <(намного!) 2260 < 81!
Хочется более точную - формула Стирлинга.
3
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
09.12.2013, 21:30 #12
Цитата Сообщение от Байт Посмотреть сообщение
81! > 265*4 = 2260
так вот и итересует как ты факториалы в степень загнал
Цитата Сообщение от Байт Посмотреть сообщение
формула Стирлинга.
посмотрю
0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,463
09.12.2013, 21:42 #13
Цитата Сообщение от ValeryS Посмотреть сообщение
как ты факториалы в степень загнал
Цитата Сообщение от Байт Посмотреть сообщение
16 = 24 17 > 24 ... 81 > 24

Не по теме:

(прости, при цитировании верхние индексы сломались)

Запиши эту строчку в 2 столбика. Не лень - запиши все, без многоточия. И оба столбика пермножь. Имея в виду, что ежели a > b, c > d => ac > bd
1
Alex5
1052 / 715 / 105
Регистрация: 12.04.2010
Сообщений: 1,818
09.12.2013, 22:02 #14
нужна ли тут проверка, чтобы переполнения не было?
an = x2n+1/(2n+1)!
an+1 / an = x2/(2n+2)/(2n+3)
Поэтому, если x2/(2n+2)/(2n+3) < 1 ( то есть x2<(2n+2)(2n+3) ) последовательность |an| убывает.
Если |x| <= 2n+2, то x2<=(2n+2)2<(2n+2)(2n+3), |an| убывает.
При |x|<=2 убывает при 2 <= 2n+2 , т.е. при n>=0. Все элементы |an|меньше |a0| = |x|
1
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,463
09.12.2013, 22:18 #15
Alex5, действительно хороший математический анализ задачи. Но можно это дело немножко развить (если интересно). А именно, выяснить при каких x программа будет считать правильно. Учитывая границы double и вообще всю машинную арифметику. Я совершенно не настаиваю на ответе (и сам его не знаю). Просто если долгими зимними вечерами вам нечем будет заняться - вот одна из проблем. Хотя вы можете выбрать и любую другую, или просто уйти в зимнюю спячку
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2013, 22:18
Привет! Вот еще темы с ответами:

Посчитать сумму ряда - C++
Привет! возникла сложность с задачами... В одной необходимо посчитать сумму ряда с точность до e равного 10 в степени -12 причем...

Посчитать сумму ряда 1-1/3+1/5-1/7+1/9….N - C++
Посчитать сумму ряда 1-1/3+1/5-1/7+1/9….N

Посчитать сумму членов ряда - C++
Задание: Посчитать сумму членов ряда: Сумма=1+1/1!+1/2!+...+1/n! Вот программа, но она не считает и не выводит на экран саму сумму. Я не...

Посчитать сумму членов ряда - C++
Кто может помочь написать программу которая считает сумму членов ряда. Имеется готовая прога, но я не могу в ней даже разобраться, чтобы...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.12.2013, 22:18
Ответ Создать тему
Опции темы

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