Бесконечный ряд и ошибка в коде
Дали задание: найти сумму бесконечного ряда с заданной точностью с использованием рекуррентной формулы. Ручками все нашёл и приступил к написанию кода, только вот ничего в итоге не получилось. Сам ищу ошибку, да найти не могу. Если нужен будет сам ряд или точность, а может мои вычисления - жду комментариев, так как сам не исключаю варианта того, что ошибкой может быть какой-нибудь пустяк.
{
const double EPS = 1.0e-6;
setlocale(LC_ALL, "Russian");
double x, sum=0.5,r;
int i;
scanf_s("%lf", &x);
x = 0.5;
i = 0;
while (fabs(sum >= EPS)) {
sum += x;
i++;
x *= (((-2 * 2) * (x * x))) / ((2 * i) * (2 * i - 1));
}
printf("summa ryada: %lf", sum);
return 0;
}
Заранее всем кто помог получает по котёнку бесплатно!
Ответы (1 шт):
Отрадно видеть, что шаги решения проработаны, члены ряды вычисляются, как положено.
Дефекты в реализации. Вы портите x, а ведь переменную r для очередного слагаемого подготовили, и не разобрались, как оценивать точность - с EPS нужно сравнивать абсолютное значение очередного члена ряда:
double x, sum=0.5,r;
int i;
scanf_s("%lf", &x);
r = 0.5;
i = 0;
while (fabs(r) >= EPS) {
sum += r;
i++;
r *= (((-2 * 2) * (x * x))) / ((2 * i) * (2 * i - 1));
}


