Как учитывать погрешность при вычислениях значения функции

Задается x и задается некая погрешность, например, 0,001. Моя погрешность вычисления функции не должна превышать заданную. Как мне учитывать это при вычислениях?

#include <iostream>

int main()
{   
    int x;
    double epsilon;
    std::cout << "Input x: ";
    std::cin >> x;
    std::cout << "Input epsilon: ";
    std::cin >> epsilon;
    double sum;
    sum = 0;
    for (i = 1; i <= x; i++)
    {
        sum = sum + ((pow(i, x))/(i*fact(i)));
    }
}

Ответы (1 шт):

Автор решения: Harry

Обычно в таком случае, как у вас - для быстросходящегося ряда - принимают как оценку отбрасываемый член. Так что вам нужно прекращать считать, когда добавляемый член по абсолютной величине станет меньше погрешности.

В случае знакопеременного сходящегося ряда с монотонно убывающими по абсолютной величине членами такая оценка точная, в случае знакопостоянного могут быть нюансы...

В любом случае не рекомендовал бы считать вот так -

((pow(i, x))/(i*fact(i)));

нет смысла считать настолько неэффективно. Намек: рассмотрите отношение двух соседних членов ряда...

→ Ссылка