Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.99/70: Рейтинг темы: голосов - 70, средняя оценка - 4.99
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
1

Вычисление суммы бесконечного ряда

24.02.2012, 00:12. Просмотров 14130. Ответов 15
Метки нет (Все метки)

Составить программу для вычисления суммы бесконечного ряда с погрешностью https://www.cyberforum.ru/cgi-bin/latex.cgi?\varepsilon ={10}^{-4}
https://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{k-1}^{}{u}_{k}
Процесс суммирования прекращается, как только выполняется неравенство |https://www.cyberforum.ru/cgi-bin/latex.cgi?{u}_{k}-https://www.cyberforum.ru/cgi-bin/latex.cgi?{u}_{k-1}|< \varepsilon.
Где https://www.cyberforum.ru/cgi-bin/latex.cgi?{u}_{k} - текущий член ряда суммирования, а https://www.cyberforum.ru/cgi-bin/latex.cgi?{u}_{k-1} - предыдущий.
Вычисление суммы бесконечного ряда
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2012, 00:12
Ответы с готовыми решениями:

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

Вычисление суммы бесконечного ряда
16 пример!!!! Прошу написать программу для вычисления (там нужно сначало как-то a1,...

Вычисление суммы бесконечного ряда
помогите написать программу

Вычисление суммы бесконечного ряда
Никак не вычисляются значения, что делаю не так? #include &lt;iostream&gt; #include&lt;stdio.h&gt;...

15
Заблокирован
Автор FAQ
24.02.2012, 15:26 2
Sithis, см сюда https://www.cyberforum.ru/faq/... ost2452211
1
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
25.02.2012, 12:13  [ТС] 3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Так там ведь другая задача. Там факториалы и дроби
0
DU
1492 / 1138 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
25.02.2012, 13:24 4
бесконечная сумма
1
Заблокирован
Автор FAQ
25.02.2012, 14:13 5
Цитата Сообщение от Sithis Посмотреть сообщение
Так там ведь другая задача. Там факториалы и дроби
- вам надо было посмотреть на пост выше
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
3.1 Прикладной аспект использования рядов.
- всего одно движение колесом мышки. Ну посмотрели бы в том посте
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Некоторые уже решённые на форуме задания по тематике "Числовые ряды" находятся
здесь
Ниже адаптированный под ваше задание код(как по мне отличия от кода в 3.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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
double S(double e)
{
    long k = 1;
    double ak = 1.0, sum = 0;
    while(e < fabs(ak))//Вот оно условие окончания итерационного процесса
    {
        sum += ak;
        k   =  k + 1;
        ak  =  1.0/(2*k*k - 1);
    }
    return sum;
}
 
int main()
{
    double e = 0;
    while(true)//Делаю бесконечный ввод
               //для завершения работы просто закрываем окно консоли
    {
        printf("Enter e : ");scanf("%lf",&e);
        printf("S = %lf\n",S(e));
        //Последние 2 функции system можно не применять
        system("pause");//Стоп-точка перед началом нового ввода
        system("cls");//Чистка экрана
    }
    return 0;
}
1
-=ЮрА=-
25.02.2012, 14:15
  #6

Не по теме:

PS:Sithis, код выше позволит вам без всяких перезапусков исследовать сумму ряда для различных значений погрешности. Вводите каждый раз нужное значение погрешности и жмите далее...
DU, разность предыдущей и текущей суммы это и есть значение элемента ряда

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
fabs(ak)
.
DU зачем усложнять алгоритм нахождением двух сумм? Этого просто можно не делать!

0
DU
1492 / 1138 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
25.02.2012, 14:43 7
DU зачем усложнять алгоритм нахождением двух сумм? Этого просто можно не делать!
Это я не знаю зачем. Я вроде такого не говорил и в коде этого то же нет.

Чтобы вычислить сумму бесконечного ряда с точностью до е, нужно убедится, что следующий элемент в сумму привносит значение, не большее е. Поэтому правильнее (имхо, я не спец в этом) проверять последний элемент на то, что он меньше e, а не разность последнего и предпоследнего. Т.е. убедится, что сумма стремится к какому-то конечному числу (предполагая, что члены суммы и дальше будут стремиться к нулю).
0
Заблокирован
Автор FAQ
25.02.2012, 15:13 8
Цитата Сообщение от DU Посмотреть сообщение
Чтобы вычислить сумму бесконечного ряда с точностью до е, нужно убедится, что следующий элемент в сумму привносит значение, не большее е. Поэтому правильнее (имхо, я не спец в этом) проверять последний элемент на то, что он меньше e, а не разность последнего и предпоследнего. Т.е. убедится, что сумма стремится к какому-то конечному числу (предполагая, что члены суммы и дальше будут стремиться к нулю).
- ну а что же ты посоветовал по ссылке
Цитата Сообщение от DU Посмотреть сообщение
double summ = 0;
* for (unsigned i = 0; ; ++i)
* {
* * const double prevSumm = summ;
* * summ += CalcValue(i);
* * if (abs(summ - prevSumm) < e)
* * {
* * * *break;
* * }
,
Цитата Сообщение от DU Посмотреть сообщение
Я вроде такого не говорил и в коде этого то же нет.
- Как видишь в твоём коде разность сумм - поэтому и спросил
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
зачем усложнять алгоритм нахождением двух сумм?
. Достаточно было abs(CalcValue(i))
0
DU
1492 / 1138 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
25.02.2012, 15:44 9
ну это все таки не вычисление двух сумм а лишь перекладывание значения одной в другую переменную. а так да, вычислять разность тут пожалуй лишнее и с 'e' лучше сразу сравнивать i-oe значение.
0
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
25.02.2012, 17:44  [ТС] 10
-=ЮрА=-, Что-то не работает программа. Ввожу любое число, а она выдает ответ "ноль".
И почему в начале просит ввести "е"? Разве не "n" надо вводить?
0
Заблокирован
Автор FAQ
25.02.2012, 18:17 11
Sithis, прочтите своё задание внимательно. Вам надо найти сумму ряда с погрешностью, никакого n вводить не надо - процесс итерационній и остановится сам когда точность вічислений будет достигнута. По поводу
Цитата Сообщение от Sithis Посмотреть сообщение
Ввожу любое число, а она выдает ответ "ноль".
- вы должны вводить точность со значением меньше единицы(я в относительных единицах ввод сделал - прям как у вас в задании). Представьте вы ввели 100 - знаете что вы ввели - посчитать с погрешностью 100,0*100% = 10000%!Пожалуйста прочтите ещё раз внимательно ссылку из 2-го поста, там очень детально расписывал точность...
Смотрите
е = 0,1 - погрешность вычислений 10%
е = 0,01 - погрешность вычислений 1%
а теперь введите вашу точность задания 10 в минус 4-той т.е. 0,0001
1
Миниатюры
Вычисление суммы бесконечного ряда  
-=ЮрА=-
25.02.2012, 18:21
  #12

Не по теме:

Специально же расписывал в FAQ

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Таким образом когда нас просят найти сумму ряда с заданной погрешностью подразумевают именно
Условием окончания итерационного процесса будет
Вот им то и будем пользоваться в дальнейшем. Хотелось бы ещё добавить что при k стремящимся к бесконечности значение . Поэтому в рядя случаев(читай почти всегда) допустимо под относительной погрешностью разложения ряда понимать именно .
. Не ленитесь прочтите - вникните и прийдёт понимание!

1
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
14.03.2012, 13:45  [ТС] 13
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(e < fabs(ak))/
Так тут ведь одно число для окончания процесса, а в условии задачи должна быть разность 2х чисел(последнего и предпоследнего).
0
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
16.03.2012, 13:31  [ТС] 14
Объясните пожалуйста
0
48 / 48 / 11
Регистрация: 12.03.2012
Сообщений: 108
16.03.2012, 14:50 15
Перегрузка Log(2)
0
Заблокирован
Автор FAQ
16.03.2012, 15:07 16
Цитата Сообщение от Sithis Посмотреть сообщение
Так тут ведь одно число для окончания процесса, а в условии задачи должна быть разность 2х чисел(последнего и предпоследнего).
- как вам будет угодно
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
double S(double e)
{
    long k = 2;
    double uk_1 = 1.0;
    double uk   = 1.0/(2*k*k - 1); 
    double sum  = uk_1;
    while(e < fabs(uk - uk_1))
    {
        sum = sum + uk;
        k   =  k + 1;
        uk_1 = uk;
        uk   = 1.0/(2*k*k - 1);
    }
    return sum;
}
 
int main()
{
        double e = 0;
        while(1)//Äåëàþ áåñêîíå÷íûé ââîä
               //äëÿ çàâåðøåíèÿ ðàáîòû ïðîñòî çàêðûâàåì îêíî êîíñîëè
        {
                printf("Enter e : ");scanf("%lf",&e);
                printf("S = %lf\n",S(e));
                //Ïîñëåäíèå 2 ôóíêöèè system ìîæíî íå ïðèìåíÿòü
                system("pause");//Ñòîï-òî÷êà ïåðåä íà÷àëîì íîâîãî ââîäà
                system("cls");//×èñòêà ýêðàíà
        }
        return 0;
}
1
Миниатюры
Вычисление суммы бесконечного ряда  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2012, 15:07

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

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

Вычисление суммы бесконечного ряда
S = \frac{x-1}{2} - \frac{{(x-1)}^{2}}{2} + \frac{{(x-1)}^{3}}{3} - ... сравнить полученное...

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

Вычисление суммы бесконечного ряда
Помогите решить задачу нужна найти сумму бесконечного ряда с точностью E=0.0001...


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

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

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