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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.73
Nikituki
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 15
#1

Точное вычисление суммы ряда - C++

17.09.2009, 18:15. Просмотров 3466. Ответов 23
Метки нет (Все метки)

Необходимо вычислить сумму ряда 1/1+1/2+...+1/n. Известно, что в с++ подобные вычисления не точные и большую роль играет способ и порядок суммирования. Необходимо получить наиболее точный результат... Есть идеи?=)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2009, 18:15     Точное вычисление суммы ряда
Посмотрите здесь:

Вычисление суммы ряда - C++
Помогите составить функцию для данного выражения. \sum_{n=1}^{20} \frac{ln n}{\sqrt{{n}^{7}}}

Вычисление суммы ряда - C++
Народ, помогите пожалуйста. Всё это сделать нужно на обычном си Три программы: 1) Вычисление функции и с помощью стандартных...

Вычисление суммы ряда - C++
Составить программу для вычисления суммы ряда

Вычисление суммы ряда - C++
Всем доброго времени суток! Есть ряд: \sum_{n=0}^\infty (-1)^n * (a+b*n)/x^n Есть вот такая неработающая программа: ...

Вычисление суммы ряда - C++
Суммы жду помощи.

Вычисление суммы ряда - C++
Для заданных значений ε>0 и x вычислить сумму ряда с точностью ε. Суммирование ряда завершить, если модуль очередного члена ряда не...

Вычисление суммы ряда - C++
Вычислить \sum_{i=1}^{\propto }i^2 пока S<50 с помощью цикла while

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nikituki
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 15
17.09.2009, 20:08  [ТС]     Точное вычисление суммы ряда #16
Цитата Сообщение от Lolcht0 Посмотреть сообщение
да, и еще, значения, при которых теряется точность составляют n~10 в 15
не скажи.... например
C++
1
2
3
4
5
6
7
8
9
10
11
12
unsigned long double sum1=0.0, sum2=0.0;
_int64 num=1000000000;
for(_int64 i=1; i<num+1; i++)
{
    sum1+=1.0/i;
}
for(_int64 i=num; i>0; i--)
{
    sum2+=1.0/i;
}
cout.precision(40);
cout << sum1 << endl << sum2 << endl;
В результате
sum1 = 21.30048150234855
sum2 = 21.300481502346148
А это уже большая разница...

Добавлено через 1 минуту
Цитата Сообщение от Delphin_KKC Посмотреть сообщение
Математически существует следующее равенство:
(1/a)+(1/b)=(a+b)/(a*b)
Его использование в два раза сократит количество операций деления.
Цитата Сообщение от Delphin_KKC Посмотреть сообщение
Однако, способ годится лишь для n <= 12 (при условии отведения 4 байт на хранение факториала).
Оба варианта не подходят для больших n...
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
17.09.2009, 20:09     Точное вычисление суммы ряда #17
это никакая разница. физические условия дадут на порядки большую погрешность
Nikituki
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 15
17.09.2009, 20:19  [ТС]     Точное вычисление суммы ряда #18
Цитата Сообщение от Lolcht0 Посмотреть сообщение
это никакая разница. физические условия дадут на порядки большую погрешность
Значение изменилось даже при изменении порядка суммирования....
Нужен более точный алгоритм...
И ответ: "И так пойдет!", не подходит....
Lolcht0
123 / 121 / 5
Регистрация: 30.03.2009
Сообщений: 766
17.09.2009, 20:27     Точное вычисление суммы ряда #19
да пожалуйста! то, что предлагал вам я, а это тоже самое, фактически, что предлагал Delphin_KKC. длинную арифметику и кластеры вам в руки!

только это лишено всяческого смысла)))
HIMen
4129 / 1378 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
17.09.2009, 21:07     Точное вычисление суммы ряда #20
Цитата Сообщение от Nikituki Посмотреть сообщение
Оба варианта не подходят для больших n...
для очень больших n формула Эйлера, мне кажется будет самое точное
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 21:24     Точное вычисление суммы ряда #21
2Nikituki: ты скажи как задача полностью формулируется, а то ты ходишь вокруг и около, да спрашиваешь у всех сам не зная о чем.
Тебе не хватает точности double ? Бери long double !
Не хватает ?
Считай специальными классами типа BigInt - там точность можно самому задать, хотя и считать будет медленно.
Nikituki
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 15
17.09.2009, 22:17  [ТС]     Точное вычисление суммы ряда #22
Цитата Сообщение от odip Посмотреть сообщение
2Nikituki: ты скажи как задача полностью формулируется, а то ты ходишь вокруг и около, да спрашиваешь у всех сам не зная о чем.
Тебе не хватает точности double ? Бери long double !
Не хватает ?
Считай специальными классами типа BigInt - там точность можно самому задать, хотя и считать будет медленно.
эм... как бы казалось задача за 2 страницы была определена достаточно развернуто.....
Попробую так:
Необходимо вычислить сумму ряда 1/1+1/2+...+1/n. Учитывая, что в C++ вычисления являются не точными,
порядок суммирования играет важную роль. Выражение 1/n+1/(n-1)+...+1/1 дает более точный результат.
Задача – разработать алгоритм, который бы выдавал еще более точный ответ.
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 22:30     Точное вычисление суммы ряда #23
Ну так казалось бы тебе ответили - используй специальную длинную арифметику и считай с какой точностью тебе нужно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2009, 22:32     Точное вычисление суммы ряда
Еще ссылки по теме:

Вычисление суммы ряда - C++
ребята помогите решить. составьте пожалуйста код!) б) \sum_{n = 1}^{12} (10n - 8/ 10*n*n - 3*n + 8)

Вычисление суммы ряда - C++
Помогите, задали задание написать программу. Пользователь вводит значение 2-х переменных: х-угол и n-количество раз. суть программы...

Вычисление суммы ряда - C++
Дано вещественное число А (&gt; 1). Вывести наименьшее из целых чисел N, для которых сумма 1 + 1/2 + ... + 1/N будет больше А, и саму эту...

Вычисление суммы ряда 1^k+2^k+...+n^k - C++
Даны натуральные числа n и k. Составить программу вычисления выражения 1^k+2^k+...+n^k. Помогите пожалуйста. Оператор pow использовать...

вычисление суммы ряда - C++
Условие http://img143.imageshack.us/img143/4586/93396673.jpg И вот мой код, подскажите в чем ошибка. Наверное весь код не правильный. ...


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

Или воспользуйтесь поиском по форуму:
Nikituki
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 15
17.09.2009, 22:32  [ТС]     Точное вычисление суммы ряда #24
Цитата Сообщение от odip Посмотреть сообщение
Ну так казалось бы тебе ответили - используй специальную длинную арифметику и считай с какой точностью тебе нужно.
НУ так казалось бы, что после двух последних постов я и не спрашивал больше ничего
Yandex
Объявления
17.09.2009, 22:32     Точное вычисление суммы ряда
Ответ Создать тему
Опции темы

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