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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 52, средняя оценка - 4.63
Sithis
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
#1

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

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

Составить программу для вычисления суммы бесконечного ряда с погрешностью http://www.cyberforum.ru/cgi-bin/latex.cgi?\varepsilon ={10}^{-4}
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sum_{k-1}^{}{u}_{k}
Процесс суммирования прекращается, как только выполняется неравенство |http://www.cyberforum.ru/cgi-bin/latex.cgi?{u}_{k}-http://www.cyberforum.ru/cgi-bin/latex.cgi?{u}_{k-1}|< \varepsilon.
Где http://www.cyberforum.ru/cgi-bin/latex.cgi?{u}_{k} - текущий член ряда суммирования, а http://www.cyberforum.ru/cgi-bin/latex.cgi?{u}_{k-1} - предыдущий.
Вычисление суммы бесконечного ряда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2012, 00:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление суммы бесконечного ряда (C++):

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

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

Вычисление суммы бесконечного ряда - C++
Помогите решить задачу нужна найти сумму бесконечного ряда с точностью E=0.0001 S=-x^1/1-x^2/2-x^3/3-x^4/4-... |x|&lt;1 сравнить...

Вычисление значения суммы бесконечного ряда - C++
Здравствуйте. Необходимо вычислить значения суммы бесконечного ряда с заданной точностью. Но формулу в атаче я не понимаю, прошу вашей...

Вычисление суммы бесконечного ряда с точностью эпсилон - C++
Работает но выдает ошибку. если возможно подскажите. условие запрограммировать вычисление суммы бесконечного ряда с точностью...

Вычисление суммы бесконечного ряда. Конвертация из паскаля в с++ - C++
Помогите пожалуйста переделать задачу с паскаля на с++, спасибо:) var x,s,u,uk,t,e:real; k:integer; begin x:=0.95; e:=0.001; ...

15
-=ЮрА=-
Заблокирован
Автор FAQ
24.02.2012, 15:26 #2
Sithis, см сюда http://www.cyberforum.ru/faq/thread436065.html#post2452211
1
Sithis
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
25.02.2012, 12:13  [ТС] #3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Так там ведь другая задача. Там факториалы и дроби
0
DU
1483 / 1129 / 45
Регистрация: 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
1483 / 1129 / 45
Регистрация: 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
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
25.02.2012, 15:44 #9
ну это все таки не вычисление двух сумм а лишь перекладывание значения одной в другую переменную. а так да, вычислять разность тут пожалуй лишнее и с 'e' лучше сразу сравнивать i-oe значение.
0
Sithis
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
Sithis
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
14.03.2012, 13:45  [ТС] #13
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(e < fabs(ak))/
Так тут ведь одно число для окончания процесса, а в условии задачи должна быть разность 2х чисел(последнего и предпоследнего).
0
Sithis
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
16.03.2012, 13:31  [ТС] #14
Объясните пожалуйста
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
16.03.2012, 14:50 #15
Перегрузка Log(2)
0
16.03.2012, 14:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2012, 14:50
Привет! Вот еще темы с ответами:

Вычисление суммы бесконечного ряда (ряд Тейлора) - C++
Люди, если у кого есть время, прошу помочь с решением задачи ! Решение задачи должно быть на C ! :scratch: ...

Не могу найти ошибку(Вычисление суммы бесконечного ряда) - C++
помогите найти ошибку! #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { ...

Вычисление бесконечного ряда с заданной точностью - C++
Доброй ночи. Сейчас столкнулся с неприятной ситуацией, в задаче, которая казалось бы полностью понятна (но это не точно). ...

Рекурсивная функция вычисления суммы бесконечного ряда - C++
Всем привет) Объясните кто нибудь как это можно сделать?)


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

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

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