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

При больших значениях х ряд считает направильно - C++

Восстановить пароль Регистрация
 
 
vladislav23
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 24
19.09.2013, 11:08     При больших значениях х ряд считает направильно #1
При больших значениях х ряд считает направильно с чем это может быть связано, вот код и сам ряд:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
   double result=1;
   long int j=2;
   bool minus=true;
   double cur=x;
   double prev=0;
   double f=0;
   do
   {
      cur=pow(x,j);
      
      if (minus)
      {
         cur=cur*(-1.0);
      }
      f=1.0;
      for (long int i=1;i<=j;i++)
      {
         f=f*i;
      }
      cur=cur/f;
      result=result+cur;
      double testval=fabs(prev)-fabs(cur);
      if (j>2&&testval<=e)
      {
         break;
      }
      
      minus=!minus;
      prev=cur;
      j+=2;
   } while (1);
   return result; 
}
Изображения
 
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
19.09.2013, 14:37     При больших значениях х ряд считает направильно #21
Цитата Сообщение от monolit Посмотреть сообщение
Там кода вообще на 10 строчек, а тут целое сочинение пишут...
Если бы вы читали, что в посте №3 написанно то увидели бы, что можно ограничиться максимум 3-мя строчками.
И сколько раз вам повторять оценка
C++
1
(abs(abs(cur)-abs(prev))
не правильная.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
19.09.2013, 14:56     При больших значениях х ряд считает направильно #22
Если не нравится, можете оценивать разность между предыдущей и следующей суммами. Но я всегда пользовался оценкой между членами ряда, и проблем не знал. Он же не в промышленности где программу пишет, в самом деле.
И если eps не будет уж совсем маленьким(очень-очень), то переполнения не возникнем(учитывая, что double 8 байтный, и диапазон его довольно таки немаленький). И уж не с вами ли я спорил насчет ряда Тейлора (и оказался прав)?
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
19.09.2013, 15:07     При больших значениях х ряд считает направильно #23
Цитата Сообщение от monolit Посмотреть сообщение
И уж не с вами ли я спорил насчет ряда Тейлора (и оказался прав)?
Много чести.
Посуммируйте тогда ряд 1/n. Для него 1/n-1/(n+1)~O(1/n), но ряд расходится. В данном случае эта оценка прокатывает только потому, что ряд фактически представляет собой ряд Лейбница и вы на самом деле имеете завышенную точность вычисления.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2013, 15:18     При больших значениях х ряд считает направильно
Еще ссылки по теме:

Вычислить интеграл при двух значениях шага интегрирования (h=0.1 и h=0.01). C++
C++ Вычислить значение функции Y (x) при различных значениях исходных данных x и а
Вывести на экран дисплея сообщения о значениях функции при различных значениях аргумента C++

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

Или воспользуйтесь поиском по форуму:
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
19.09.2013, 15:18     При больших значениях х ряд считает направильно #24
Но ведь у него ряд не 1/n, верно? Да, можно привести примеры, когда при выполнении условия abs(...) ряд будет расходиться, но врядли такие задачи будут давать по программированию на 1, 2м курсе(скорее 1м), где проверяется отнюдь не умение находить суммы рядов.
Yandex
Объявления
19.09.2013, 15:18     При больших значениях х ряд считает направильно
Ответ Создать тему
Опции темы

Текущее время: 16:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru