Как вычислить сумму бесконечного ряда?

296
12 мая 2022, 10:30

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

//Найти сумму бесконечного ряда
#define _USE_MATH_DEFINES
#include <iostream>
#include <iomanip>
#include <cmath>
#include <math.h>
using namespace std;
 
int main()
{
    int x = 1;
    int n = 1;
    double an = x / 2., S = an;
 
    while (fabs(an) > 2)
    {
        an *= -1 * (x + 1) * (2 * n + 1) / (2 * n + 1);
        S += an;
        n++;
    }
 
    cout << setw(3) << an << "  " << S << "  " << n << "\n";
 
    system("pause");
    return 0;
}

Что мне тут нужно исправить?Помогите пожалуйста с задачкой.

Answer 1
double x;
cin >> x;
cout << (x-sin(x)) << endl;

Это если надо быстро и точно :)
Если надо помучиться - надо считать сумму...

double Series(double x, double eps)
{
    double term = x*x*x/6, sum = term;
    x = x*x;
    for(int n = 4; abs(term) > eps; n+=2)
        sum += term *= -x/(n*(n+1));
    return sum;
}
int main()
{
    for(double x = 0; x < 1; x += 0.1)
        cout << setw(5) << x << setw(12) << x-sin(x) << setw(12) << Series(x,1e-7) << endl;
}

Полный код здесь.

Answer 2

можно сделать так:

double func(const double x) {
    return sin(x) - x;
}

:)))

но если написать код, то можно использовать итерационный подход

f(n) / f(n-1) = (-1) * x^2 / (2n * (2n + 1))
f(1) = -x^3 / 6

вы используете этот принцип, но ошиблись с формулой

и по идее подсчёт можно останавливать когда

fabs(S(n) - S(n-1)) < epsilon

где epsilon = 1e-10 например

можно конечно было бы сделать что S(n) == S(n-1), то при схождении ряда возможно колебание вокруг значения из-за ограниченной точности чисел с плавающей запятой

READ ALSO
Сборка выдаёт ошибки C++ Visual Studio 2019 [закрыт]

Сборка выдаёт ошибки C++ Visual Studio 2019 [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

355
Преобразование const char [] в String

Преобразование const char [] в String

Допустим, есть такой код:

191
алгоритм с sort плохо работает

алгоритм с sort плохо работает

Написал алгоритм который должен сортировать числа в порядке возрастанияВвод через 1 строку

249
fstream в Visual studio

fstream в Visual studio

Пытаюсь я считать число из файла и сразу же вывести его в консоль, а выводиться неинициализированный участок памяти, а все данные из файла...

163