Как учитывать погрешность при вычислениях значения функции
Задается 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 шт):
Обычно в таком случае, как у вас - для быстросходящегося ряда - принимают как оценку отбрасываемый член. Так что вам нужно прекращать считать, когда добавляемый член по абсолютной величине станет меньше погрешности.
В случае знакопеременного сходящегося ряда с монотонно убывающими по абсолютной величине членами такая оценка точная, в случае знакопостоянного могут быть нюансы...
В любом случае не рекомендовал бы считать вот так -
((pow(i, x))/(i*fact(i)));
нет смысла считать настолько неэффективно. Намек: рассмотрите отношение двух соседних членов ряда...