0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 3
1

Вычислить сумму ряда с заданной точностью

09.09.2018, 16:24. Показов 11502. Ответов 11

Author24 — интернет-сервис помощи студентам
Ввести -1<х<1 и точность вычисления ε. Вычислить и вывести на экран сумму ряда. Каждый член ряда вычислить как функцию. Ряд : https://www.cyberforum.ru/cgi-bin/latex.cgi?x-\frac{1}{2}*\frac{{x}^{3}}{3}+\frac{1*3}{2*4}*\frac{{x}^{5}}{5}-\frac{1*3*5}{2*4*6}*\frac{{x}^{7}}{7}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2018, 16:24
Ответы с готовыми решениями:

Вычислить сумму ряда с заданной точностью
Дан числовой ряд и некоторое число e. Найти сумму тех членов ряда (n=1,2,3…), модуль которых больше...

Вычислить сумму ряда с заданной точностью
1+\frac{xlna}{1!}+({\frac{xlna}{2!})^{2}}...+({\frac{xlna}{n!})^{n}} С точностью 0.05. Спасибо

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

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

11
0 / 0 / 0
Регистрация: 09.09.2018
Сообщений: 3
09.09.2018, 16:40  [ТС] 2
Вот правильный ряд, извините за опечатку
Миниатюры
Вычислить сумму ряда с заданной точностью  
0
Модератор
Эксперт С++
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,699
09.09.2018, 16:58 3
Лучший ответ Сообщение было отмечено alexfatalix как решение

Решение

См. Вычисление функций разложением в ряд Тейлора
У Вас
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
double MySum(double x,double epsilon)
{
    double s=0;// Тут копим сумму
    double an; // Тут храним N-ый член ряда
    int n;
    n=0; // начальное значение n
    an=x; // начальное значение an
    while(fabs(an)>epsilon) 
// Суммировать будем пока член ряда an не станет достаточно маленьким по модулю
    {
          s+=an; // суммируем очередной член ряда
          n++; // переходим к следующему члену 
          an*=-x*x*(2.*n-1.)/(2.*n)*(2.*n-1.)/(2.*n+1.); // пересчитываем a(n) через a(n-1)
    }
    return s; // получившаяся сумма
}
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
10.09.2018, 09:55 4
Я бы сделал так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
double MySum(double x,double epsilon)
{
    double s=0;// Тут копим сумму
    double an; // Тут храним N-ый член ряда
    int n;
    n=0; // начальное значение n
    an=x; // начальное значение an
    while(fabs(an)/(2*n+1)>epsilon) 
// Суммировать будем пока член ряда an не станет достаточно маленьким по модулю
    {
          s+=an/(2*n+1); // суммируем очередной член ряда
          n++; // переходим к следующему члену 
          an*=-x*x*(2*n-1)/(2*n); // пересчитываем a(n) через a(n-1)
    }
    return s; // получившаяся сумма
}
То есть меняем без последнего деления на (2n+1)
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.09.2018, 12:50 5
zss, хотел спросить Вас в каких случаях можно применять такой алгоритм ? Например подсчитать сумму ряда
https://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{k=0}^{\infty }\frac{1}{{3}^{k}}=1+https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{3}+https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{9}+https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{27}+...https://www.cyberforum.ru/cgi-bin/latex.cgi?\approx1.5 с точностью до 0.4. результат такого алгоритма будет 1 ? (1/3<0.4) разве это правильно ? (1.5-1=0.5, а 0.5>0.4)
0
Модератор
Эксперт С++
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,699
10.09.2018, 19:04 6
Yetty, Что это будет за точность такая странная.
Сравнивать надо с достаточно маленьким числом (в идеале до самой последней значащей цифры).
И, по хорошему, надо брать не абсолютную точность, а относительную:
|an|/сумму_ряда
Если это число меньше, например, 0.01
То можно сказать, что точность будет 1 процент.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.09.2018, 19:36 7
zss, спасибо за ответ. почему Вы считаете что подсчитать сумму с точностью до 0.4 нельзя ? такую точность взял для наглядности. принципиальной разницы нет, если здесь даёт ошибку, то и на маленьких числах будут ошибки.
точность ещё так считают:
Вычисление суммы ряда с определенной точностью eps означает, что сумма ряда вычисляется до тех пор, пока модуль разности между текущим и предыдущим членом последовательности больше eps. В виде формулы это утверждение можно записать так:|https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n}-https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n-1}|> eps, то есть пока это выражение истинно, вычисления продолжаются.
вот поэтому и хочу определиться как всё же будет правильно.
0
Модератор
Эксперт С++
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,699
10.09.2018, 19:47 8
Yetty, я уже написал, что правильнее всего будет считать:
|an/сумму_ряда|<eps
Тогда точность 0.4 соответствует 40% погрешности
0.01 - один процент.
0
672 / 475 / 215
Регистрация: 06.09.2013
Сообщений: 1,306
10.09.2018, 19:56 9
Цитата Сообщение от Yetty Посмотреть сообщение
в каких случаях можно применять такой алгоритм ?
Если понимать под точностью модуль разности между сумой ряда и полученным значением, такой алгоритм можно применять только для знакочередующихся рядов.
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.09.2018, 20:03 10
zss, насколько помню погрешность бывает абсолютной и относительной. и говорить что одна из них правильнее, а другая нет как-то не очень корректно на мой взгляд. меня больше интересует другой вопрос: правильно сравнивать | https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n} | c eps или разность| https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n} - https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n-1} | с eps ?
0
Модератор
Эксперт С++
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,699
10.09.2018, 20:15 11
Вот как раз тут совершенно невозможно сказать, что лучше.
Для знакопеременного ряда использование |an -an-1| будет точнее,
а для знакопостоянного - наоборот.
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
13.09.2018, 22:19 12
Цитата Сообщение от zss Посмотреть сообщение
невозможно сказать, что лучше.
Лучше вспомнить матан и применить формулу остаточного члена.
Цитата Сообщение от zss Посмотреть сообщение
Для знакопеременного ряда
Для знакопеременного с монотонно убывающей величиной модуля
члена при условии стремления оного к нулю рулит теорема Лейбница
https://ru.wikipedia.org/wiki/... 0%BE%D0%B2
То есть ошибка меньше отброшенного члена.
Если члены не сразу становятся убывающими по модулю, это не страшно, ибо интересно только поведение ряда в окрестности бесконечности.

Добавлено через 4 минуты
Применяли ли Вы математику в программировании?
Но в общем случае вопрос не простой и требует (мат-)анализа функции и остаточного члена
1
13.09.2018, 22:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2018, 22:19
Помогаю со студенческими работами здесь

Вычислить сумму ряда с заданной точностью
Вот скриншот задания*клац*: Нужно вычислить сумму ряда с точностью до 10 в -6 степени. С...

Вычислить сумму ряда с заданной точностью
Не используя стандартные функции (за исключением степенной), вычислить сумму следующего ряда с...

Вычислить сумму ряда c заданной точностью
Вычислить с точностью 10-5 (завершить суммирование ряда, когда член ряда меньше, чем 10-5).

Вычислить сумму ряда, с заданной точностью
Вот задание Вычислить сумму ряда, с точностью до е = 0,012 , общий член которого An=(1/n)^2e...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru