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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
LamerOnLine
0 / 0 / 0
Регистрация: 23.01.2009
Сообщений: 17
#1

Вычислить бесконечную сумму с заданной точностью, используя рекуррентные зависимости - C++

23.01.2009, 21:10. Просмотров 1556. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста разобраться - что в проге не так?
Условие: Вычислить бесконечную сумму с заданной точностью, используя рекуррентные зависимости.
.....n...2n
(-1)...x
----------- (не знаю, как тут можно такую дробь со степенями представить)
.....2n!

......-4
E=10 (по ходу это точность)

-1<=x<=1

короче не знаю - как тут нормально условие написать)))


моя прога вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
  float a=1,x,s,n; /*объявление переменных*/
  clrscr();
  printf("input x\n"); /*ввод x... возможно надо еще как-то добавить условие, что оно не меньше -1 и не больше 1*/
  scanf("%f",&x);
  s=-(x*x)/2; /*тут задаю первый член суммы, при n=1, ибо так и не допер, как подогнать его под рекуррентную зависимость... со второго члена вроде по моей формуле должно считаться.(на бумаге)*/
  n=2; /*увиличиваем n до 2, соответственно для второго члена суммы*/
  while(fabs(s)>1e-4) /* цикл задающий точность... сама по себе сумма - это что-то вроде - 0.125 + 0.0026 - 'что то еще меньшее'. Таким образом пока модуль суммы больше 0.0001 - она считается*/
  {
    a*=(-x*x)/(2*n*2*n-2*n); /* сама зависимость... при n=2 вроде получается (x в четвертой степени)/24, при n=3 - (минус x в шестой степени)/720. Сама зависимость - умножение предыдущего члена суммы на следующий, так вроде и минус перед x и степень x и факториал в знаменателе вычисляются нормально. (опять же на бумаге)
    s+=a; /*вычисление суммы*/
    n++; /*повышение n */
  }
  printf("summa=%f",s); /*выведение полученного результата*/
  return 0;
}
Вроде ошибок не выдает, по логике (моей) тоже все правильно, но при компиляции после ввода x останавливается... Не зависает, а просто о чем-то усиленно думает. В чем проблема?
Прогу писал сам, если что не понятно - спросите, ибо коментарии у меня левые) Помогите разобраться - единственная задача из лаб, которую я так и не сдал... Возможно сам потом допру, но щас уже мозг кипит)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2009, 21:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить бесконечную сумму с заданной точностью, используя рекуррентные зависимости (C++):

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

Вычислить бесконечную сумму с заданной точностью - C++
Помогите пожалуйста решить задачку, срочно нужно. Спасибо Перепишите задачу на форум!

Вычислить бесконечную сумму с заданной точностью - C++
Вычислить бесконечную сумму с заданной точностью eps (eps&gt;0). Считать, что требуемая точность достигнута, если вычислена сумма нескольких...

Вычислить бесконечную сумму с заданной точностью - C++
Всем привет, при решении задачи возникли трудности: при вводе значения &quot;ε&quot; программа ничего не делает, после введения значения и нажатия...

Вычислить бесконечную сумму с заданной точностью - C++
Вычислить бесконечную сумму с заданной точностью E(E&gt;0) . Считать, что требуемая точность достигнута, если вычислена сумма нескольких...

Вычислить бесконечную сумму с заданной точностью - C++
Добрый день, укажите пожалуйста на ошибку в коде.. Условие: Вычиcлить беcкoнечную cумму c заданнoй тoчнoстью ε(ε &gt; 0). Cчитать что...

2
ISergey
Maniac
Эксперт С++
1395 / 906 / 56
Регистрация: 02.01.2009
Сообщений: 2,706
Записей в блоге: 1
23.01.2009, 21:40 #2
Переделайте вот это
C++
1
a*=(-x*x)/(2*n*2*n-2*n);
У вас переменая a постояно принемает очень малие(вроде етого 1.5772681e-016) знчения и поэтому s практически не меняеться.
Пройдитесь дебагером и все увидете сами..
0
LamerOnLine
0 / 0 / 0
Регистрация: 23.01.2009
Сообщений: 17
24.01.2009, 17:02  [ТС] #3
Я считал - вроде первая переменная -0.125, вторая 0.0026, а с четвертой они уже вообще не считаются по условию цикла... если все правильно работает... Просто это самое главное в задаче, вообще весь ее смысл в выведении этой формулы... Если я ее сделал неправильно, то как примерно должна выглядеть парвильная?
А дебагером я пользоваться еще не научился...

Добавлено через 2 минуты 1 секунду
+ за x я брал 0.5...

Добавлено через 19 часов 2 минуты 25 секунд
Если задавать x как 0, то работает нормально, в ответе получается естественно 0... Значит все-таки что-то со значениями... Что еще можно сделать, кроме изменения формулы?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2009, 17:02
Привет! Вот еще темы с ответами:

Вычислить бесконечную сумму ряда с заданной точностью - C++
Вычислить бесконечную сумму ряда с заданной точностью е(е&gt;0) \sum_{1}^{\propto } 1/3^i+4^i

Вычислить бесконечную сумму ряда с заданной точностью е(е>0) - C++
Помогите пожалуйста вычислить бесконечную сумму ряда с заданной точностью е(е&gt;0)

Вычислить бесконечную сумму ряда с заданной точностью е (е>0) - C++
Помогите пожалуйста. Вычислить бесконечную сумму ряда с заданной точностью е (е&gt;0). \sum_{i=1}^{\infty}\frac{2}{i!}

Вычислить бесконечную сумму ряда с заданной точностью - C++
Вычислить бесконечную сумму ряда с заданной точностью е(е&gt;0) \sum_{1}^{\propto }1/3^i+4^i


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

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

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