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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Kastaneda
Jesus loves me
Эксперт С++
4730 / 2934 / 242
Регистрация: 12.12.2009
Сообщений: 7,443
Записей в блоге: 2
Завершенные тесты: 1
#1

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

20.01.2012, 10:22. Просмотров 1858. Ответов 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
Т.е. считает правильно, только знаки не совпадают. Не могу увидеть проблему, посмотрите свежим взглядом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 10:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить сумму ряда. Где-то напутал знаки или формула ряда не правильная. Посмотрите свежим взглядом. (C++):

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

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

Найти сумму ряда с заданной точностью, если дан общий член ряда - C++
Найти сумму ряда с точностью Е=-4 (0.0001) общий член которого n=n*-n2 (n kvadrat)... Надо написать программу, т.е текст..на языке Си...

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

Найти сумму ряда с точностью до члена ряда - C++
Найти сумму ряда с точностью до члена ряда, меньшего 0.0001 для заданного значения и сравнить эту сумму с функцией контроля. Для...

Найти сумму ряда с точностью до члена ряда - C++
Помогите пожалуйста с задачей , вот условие Найти сумму ряда с точностью до члена ряда, меньшего ε(0.0001) для заданного значения и...

4
golatin
272 / 229 / 44
Регистрация: 12.10.2011
Сообщений: 346
Завершенные тесты: 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)
1
Kastaneda
Jesus loves me
Эксперт С++
4730 / 2934 / 242
Регистрация: 12.12.2009
Сообщений: 7,443
Записей в блоге: 2
Завершенные тесты: 1
20.01.2012, 11:13  [ТС] #3
golatin, спасибо) Я в первом посте неправильно ряд написал, там -1 в степени n, а не умножить на n. Все равно это дела не меняет, правильно так, как ты показал. Буду пинать препода)

Не по теме:

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

0
silent_1991
Эксперт С++
4997 / 3055 / 149
Регистрация: 11.11.2009
Сообщений: 7,040
Завершенные тесты: 1
20.01.2012, 11:39 #4
Kastaneda, pow тут не очень разумно использовать, знак зависит только от чётности n.
1
Kastaneda
Jesus loves me
Эксперт С++
4730 / 2934 / 242
Регистрация: 12.12.2009
Сообщений: 7,443
Записей в блоге: 2
Завершенные тесты: 1
20.01.2012, 13:45  [ТС] #5
Цитата Сообщение от silent_1991 Посмотреть сообщение
Kastaneda, pow тут не очень разумно использовать, знак зависит только от чётности n.
Да, логично) Последнее время вообще перестал думать, когда пишу. Расслабился что-то
0
20.01.2012, 13:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2012, 13:45
Привет! Вот еще темы с ответами:

Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до n - C++
18 задача 1 лаба После удара о поверхность Земли мяч движется вертикально вверх со скорость 15 м\с. Найдите координату мяча над...

Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до N - C++
Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до N. Не могу найти где ошибка ? #include &lt;iostream&gt; #include...

Вычислить сумму ряда - C++
Откликнитесь пожалуйста Оказывается есть ещё одна задача с которой не могу справится. Помогите. Даны: действительное число а,...

Вычислить сумму ряда - C++


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

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

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