Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2011, 20:55   #1
dekuk
 
Аватар для dekuk
 
Регистрация: 11.09.2011
Сообщений: 6
По умолчанию Подсчет суммы бесконечного ряда с точностью Е.

Задача. Подсчитать сумму бесконечного ряда ∑(x^n)/n, n=1..∞ с точностью Е, х и Е задаются с клавиатуры.
Проблема. Вроде алгоритм правильный, но происходит зацикливание, из-за того что pr(разность между двумя последними членами ряда) постоянно увеличивается, подскажите как исправить


Код:
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#include<iostream.h>

double f1( double x, double n)
{
   double  y;
   y=( pow(x,n))/n;
   return y;
}

int main()
{
   long double e, a, sum1, sum2, pr;
   int i=3;
   cout<<"Vvedite x: ";
   cin>>a;
   cout<<endl<<"Vvedite e: ";
   cin>>e;
   double b,c;
   b=f1(a,1);
   c=f1(a,2);
   //cout<<endl<<b; 
   //cout<<endl<<c;
   pr=fabs(c-b);
   //cout<<endl<<pr<<endl;
   sum1=b+c;
    while (pr>e)
      {
	 b=c;
	 c=f1(a,i);
	 i++;
	 pr=fabs(c-b);
	 //cout<<endl<<b<<endl<<c<<endl<<pr<<endl;
         //getch();
	 sum1+=c;
      }
   cout<<"Summa= "<<sum1<<endl;
   getch();
   return 0;
}
dekuk вне форума Ответить с цитированием
Старый 22.09.2011, 22:15   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

походу 0<= | х | <=1
тут "| |" - модуль
rrrFer вне форума Ответить с цитированием
Старый 22.09.2011, 22:48   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

rrrFer, +1
опередили Вы меня!

ну, тогда я разверну Ваш ответ в формулу без модуля
область допустимых значений для X:
-1 <= X <= 1
в этом случае ряд будет сходящимся.

p.s. а вообще, просуммировать расходящийся ряд НЕВОЗМОЖНО.
Можно сразу выдавать, что сумма равна ∞
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.09.2011, 22:54   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Serge_Bliznykov
[OFFTOP]хотел плюшкой поделиться за разворачивание ответа, но нельзя несколько отзывов подряд одному форумчанину писать ))[/OFFTOP]
rrrFer вне форума Ответить с цитированием
Старый 22.09.2011, 23:29   #5
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
rrrFer, +1
опередили Вы меня!

ну, тогда я разверну Ваш ответ в формулу без модуля
область допустимых значений для X:
-1 <= X <= 1
в этом случае ряд будет сходящимся.

p.s. а вообще, просуммировать расходящийся ряд НЕВОЗМОЖНО.
Можно сразу выдавать, что сумма равна ∞
Позволю себе поправить Вас.
Цитата:
область допустимых значений для X:
-1 <= X <= 1
в этом случае ряд будет сходящимся.
X не может быть равен 1, так как в этом случае мы получаем гармонический ряд (1 + 1/2 + 1/3 + 1/4 + ....), но он расходится.

Правильная Область допустимых значений: -1 <= X < 1

2
Цитата:
p.s. а вообще, просуммировать расходящийся ряд НЕВОЗМОЖНО.
Можно сразу выдавать, что сумма равна ∞
У расходящегося ряда сумма может быть как равна бесконечности, так и вообще не существовать.
Второй случай может возникнуть в случая с рядом: 1 - 1 +1 -1 +1 +1... и так до бесконечности. Такой ряд расходится, но его сумма не существует.
Вадим Мошев вне форума Ответить с цитированием
Старый 22.09.2011, 23:51   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
X не может быть равен 1, так как в этом случае мы получаем гармонический ряд (1 + 1/2 + 1/3 + 1/4 + ....), но он расходится.
Правильная Область допустимых значений: -1 <= X < 1
ну, тогда, по той же причине, и ноль нужно исключить из области доп.значений:
-1 <= X < 0 U 0 < X < 1


согласен. был неправ.

Последний раз редактировалось Serge_Bliznykov; 23.09.2011 в 00:02.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.09.2011, 23:56   #7
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну, тогда, по той же причине, и ноль нужно исключить из области доп.значений:
-1 <= X < 0 U 0 < X < 1
Почему?
Если у нас x = 0, то мы просто получим сумму бесконечного числа нулей: 0+0+0+0+0+0+0+0........

В итоге сумма сходится и равна нулю
Вадим Мошев вне форума Ответить с цитированием
Старый 23.09.2011, 00:02   #8
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Цитата:
1 - 1 +1 -1 +1 +1... и так до бесконечности. Такой ряд расходится, но его сумма не существует.
Почему же он расходится? Сумма очень даже существует. Выбирайте: 1,0,1/2
Спорят о правильном ответе со времен Эйлера.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 23.09.2011, 00:04   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Если у нас x = 0, то мы просто получим сумму бесконечного числа нулей: 0+0+0+0+0+0+0+0........
ага. согласен. был неправ. что-то мне втемяшилось, что ноль в любой степени единица...
Это, разумеется, не так (я перепутал с постулатом "любое число в нулевой степени равно единице".. - как тот прапорщик в анекдоте про прямой угол и температуру кипения воды )
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.09.2011, 00:05   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
Почему же он расходится? Сумма очень даже существует. Выбирайте: 1,0,1/2
Спорят о правильном ответе со времен Эйлера.


Категорически не согласен. Сумы не существует, ровно как и предела и функции синус при x -> бесконечность.

Сергей
Цитата:
я перепутал с постулатом "любое число в нулевой степени равно единице"..
Ну, кроме нуля. В случае с нулем (0^0) получается деления нуля на ноль

Последний раз редактировалось Вадим Мошев; 23.09.2011 в 00:07.
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление суммы бесконечного ряда TheFaster Помощь студентам 1 19.05.2011 16:48
Вычисление суммы бесконечного ряда sanela Помощь студентам 2 08.12.2009 18:45
Сумма бесконечного ряда с точностью Паскаль Кириллович Помощь студентам 9 30.05.2009 13:36