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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Kastaneda
Форумчанин
Эксперт С++
4510 / 2852 / 227
Регистрация: 12.12.2009
Сообщений: 7,245
Записей в блоге: 1
Завершенные тесты: 1
#1

Вычислить сумму ряда. Где-то напутал знаки или формула ряда не правильная. Посмотрите свежим взглядом. - C++

20.01.2012, 10:22. Просмотров 1729. Ответов 4
Метки нет (Все метки)

Привет!
Пишу простую контрольную, не могу понять, то ли я где-то со знаками туплю, то ли формула не корректна.
Задание:
написать функцию вычисления суммы ряда. для диапазона значений 0.1 .. 0.9 и шага 0.1 изменения аргумента вычислить значения суммы ряда и контрольной функции, к которой он сходится, с точностью до 4 знаков после запятой.
Ряд: sin(x) - sin(2x) / 2+..+(-1)*n * sin(nx) / n
Контрольная ф-ция: x / 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
35
#include <iostream>
#include <cmath>
 
double series_sum(double, int = 1);
double chek_series_sum(double);
 
const double eps = 1E-4;
 
int main() 
{
    const double begin = 0.1, end = 0.9, step = 0.1;
    double calculated_sum, real_sum;
 
    for (double x = begin; x <= end; x += step) {
        calculated_sum = series_sum(x);
        real_sum = chek_series_sum(x);
        std::cout << "Calculated amount of series with x = " << x << ": " << calculated_sum << std::endl
                  << "Real value: " <<real_sum<<std::endl;
    }   
    return 0;
}
 
double series_sum(double x, int n)
{
    double step_val = pow(-1., n) * sin(n * x) / n;
    if (abs(step_val) <= eps) {
        return step_val;
    }
    return step_val + series_sum(x, ++n);
}
 
double chek_series_sum(double x)
{
    return x/2.;
}
Вывод:
Код
Calculated amount of series with x = 0.1: -0.0498659
Real value: 0.05
Calculated amount of series with x = 0.2: -0.100496
Real value: 0.1
Calculated amount of series with x = 0.3: -0.150405
Real value: 0.15
Calculated amount of series with x = 0.4: -0.200353
Real value: 0.2
Calculated amount of series with x = 0.5: -0.249524
Real value: 0.25
Calculated amount of series with x = 0.6: -0.298302
Real value: 0.3
Calculated amount of series with x = 0.7: -0.350978
Real value: 0.35
Calculated amount of series with x = 0.8: -0.398703
Real value: 0.4
Calculated amount of series with x = 0.9: -0.448706
Real value: 0.45
Т.е. считает правильно, только знаки не совпадают. Не могу увидеть проблему, посмотрите свежим взглядом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 10:22     Вычислить сумму ряда. Где-то напутал знаки или формула ряда не правильная. Посмотрите свежим взглядом.
Посмотрите здесь:

Вычислить сумму членов ряда, модуль которых больше или равен заданному - C++
Общий член ряда имеет вид {a}_{n}=1/(3n-2)(3n+2) как сделать только через while?

Дана формула. Необходимо сравнить левую и правую сумму ряда с шагом 0,01 - C++
http://s001.radikal.su/2012/12/25/ff7ca65f_thumb.bmp вначале вводим x и потом сравниваем, но можно и с любым другим шагом, и если...

Посчитать сумму ряда, ограничивая число элементов ряда первым элементом, меньшим заданной величины - C++
Посчитать сумму ряда, ограничивая число элементов ряда первым элементом, меньшим заданной величины eps. Определить реальную точность ряда. ...

Вычислить сумму ряда - C++
Необходимо написать программу, которая вычислит сумму 2/3+3/4+4/5+...+n−1/n. Формат входных данных Вводится натуральное...

Вычислить сумму ряда. - C++
День добрый. Помогите пожалуйста написать програмку. Вот задание. http://s006.***********/i214/1201/83/a86d4a6e9fe2.jpg

Вычислить сумму ряда - C++
Можно как то с пояснениями как это вообще прописывается? И что это за последовательность такая?

Вычислить сумму ряда - C++
Вычислить сумму \sum_{x-1}^{10}{a}_{n} {a}_{n}=n!/2n. Да и еще почему когка компелируешь задачи окно вывода появляется на долисекунды и...

Вычислить сумму ряда - C++
По заданным числам n и a вычислить значение суммы: \sum_{i=1}^{n}i*a^i #include &lt;iostream&gt; #include &lt;cmath&gt; #define ll long...

Вычислить сумму ряда - C++
Даны действительное число a и натуральное число n. Вычислить. Помогите, пожалуйста.

Вычислить сумму ряда - C++
Добрые люди программисты помогите вычислить сумму ряда. Спасибо большое)

Вычислить сумму ряда - C++
Даны действительное число а и натуральное число n. Вычислить 1/a + 1/(a*(a+1)) + 1/(a*(a+1)*...*(a+n)) как лучше его решить циклом for ???

Вычислить сумму ряда - C++
Добрый вечер. Ребята, помогите пожалуйста записать формулу в С++. Программа сама то написана, а вот формулу никак не получается вывести.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
golatin
265 / 222 / 43
Регистрация: 12.10.2011
Сообщений: 327
Завершенные тесты: 1
20.01.2012, 11:03     Вычислить сумму ряда. Где-то напутал знаки или формула ряда не правильная. Посмотрите свежим взглядом. #2
Если это ряд Фурье
http://www.cyberforum.ru/cgi-bin/latex.cgi?x=\sum_{n=1}^{\propto }\frac{2}{n}{(-1)}^{n+1}sin(nx)
,то соответственно в 25 строчке измени pow(-1., n) на pow(-1., n+1)
Kastaneda
Форумчанин
Эксперт С++
4510 / 2852 / 227
Регистрация: 12.12.2009
Сообщений: 7,245
Записей в блоге: 1
Завершенные тесты: 1
20.01.2012, 11:13  [ТС]     Вычислить сумму ряда. Где-то напутал знаки или формула ряда не правильная. Посмотрите свежим взглядом. #3
golatin, спасибо) Я в первом посте неправильно ряд написал, там -1 в степени n, а не умножить на n. Все равно это дела не меняет, правильно так, как ты показал. Буду пинать препода)

Не по теме:

На сессии мозги закипают, подобных ошибок уже не вижу

silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.01.2012, 11:39     Вычислить сумму ряда. Где-то напутал знаки или формула ряда не правильная. Посмотрите свежим взглядом. #4
Kastaneda, pow тут не очень разумно использовать, знак зависит только от чётности n.
Kastaneda
Форумчанин
Эксперт С++
4510 / 2852 / 227
Регистрация: 12.12.2009
Сообщений: 7,245
Записей в блоге: 1
Завершенные тесты: 1
20.01.2012, 13:45  [ТС]     Вычислить сумму ряда. Где-то напутал знаки или формула ряда не правильная. Посмотрите свежим взглядом. #5
Цитата Сообщение от silent_1991 Посмотреть сообщение
Kastaneda, pow тут не очень разумно использовать, знак зависит только от чётности n.
Да, логично) Последнее время вообще перестал думать, когда пишу. Расслабился что-то
Yandex
Объявления
20.01.2012, 13:45     Вычислить сумму ряда. Где-то напутал знаки или формула ряда не правильная. Посмотрите свежим взглядом.
Ответ Создать тему
Опции темы

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