Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
Jesus loves me
Эксперт С++
5162 / 3131 / 353
Регистрация: 12.12.2009
Сообщений: 7,919
Записей в блоге: 2
1

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

20.01.2012, 10:22. Просмотров 3071. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2012, 10:22
Ответы с готовыми решениями:

Вычислить сумму ряда, где m и n заданные числа
Вычислить S=\sum_{i=m}^{n} (2*i), где m и n заданные числа. Помогите пожалуйста, если кто знает. У...

Вычислить сумму ряда (Ошибка, переполнение. Где?)
Вычисление суммы ряда. Program fuuuuu; Const e=0.0001; Var a,s,f,x:real; k:integer;...

Вычислить сумму ряда с точностью до члена ряда, меньшего заданной точности
Вычислить сумму членов для следующих рядов с точностью до члена ряда, меньшего Е (заданная...

Вычислить сумму членов ряда с точностью до члена ряда, меньшей E
Вычислить сумму членов ряда: Z=x/(x+1)!+x^2/(x+2)!+x^3/(x+3)!+... с точностью до члена ряда,...

4
307 / 261 / 58
Регистрация: 12.10.2011
Сообщений: 422
20.01.2012, 11:03 2
Если это ряд Фурье
https://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
Jesus loves me
Эксперт С++
5162 / 3131 / 353
Регистрация: 12.12.2009
Сообщений: 7,919
Записей в блоге: 2
20.01.2012, 11:13  [ТС] 3
golatin, спасибо) Я в первом посте неправильно ряд написал, там -1 в степени n, а не умножить на n. Все равно это дела не меняет, правильно так, как ты показал. Буду пинать препода)

Не по теме:

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

0
Эксперт С++
5042 / 3103 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
20.01.2012, 11:39 4
Kastaneda, pow тут не очень разумно использовать, знак зависит только от чётности n.
1
Jesus loves me
Эксперт С++
5162 / 3131 / 353
Регистрация: 12.12.2009
Сообщений: 7,919
Записей в блоге: 2
20.01.2012, 13:45  [ТС] 5
Цитата Сообщение от silent_1991 Посмотреть сообщение
Kastaneda, pow тут не очень разумно использовать, знак зависит только от чётности n.
Да, логично) Последнее время вообще перестал думать, когда пишу. Расслабился что-то
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2012, 13:45

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

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

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

Вычислить сумму ряда, используя дифференцирование и интегрирование степенного ряда
5/2-5^2/3*1!+5^3/4*2!...+(-1)^n*5^n+1/(n+2)*n!+

Вычислить сумму 100 слагаемых ряда если n-ый член ряда задается выражением
Вычислить сумму 100 слагаемых ряда если n-ый член ряда задается выражением: А энное равно, в...


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

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

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