Вычисление суммы ряда с точностью для заданных значений х и e - C (СИ)
Формулировка задачи:
составить программу вычисления суммы ряда с точностью для заданных значений х и e.
помогите пожалуйста.
Решение задачи: «Вычисление суммы ряда с точностью для заданных значений х и e»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
double absd(double t)
{
return t < 0 ? -t : t;
}
double f(double x)
{
const double eps = 1e-4;
double res = 0.0;
int n, i = 1;
for(n = 2; ; n += 2, i++)
{
double r = pow(-1.0, (double)(n + 1)) * pow(x, (double)i) / (double)(n * (n + 1));
if(absd(r) < eps) return res;
res += r;
}
}
int main()
{
printf("%lf\n", f(0.11));
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
и - Определяем функцию absd(double t), которая возвращает абсолютное значение числа t.
- Определяем функцию f(double x), которая вычисляет ряд для заданного значения x.
- Внутри функции f инициализируем переменную eps значением 1e-4, которое определяет требуемую точность вычислений.
- Создаем переменные res и i, которые используются внутри цикла.
- Запускаем цикл for, который выполняется до тех пор, пока n не станет равным или больше 100. Шаг цикла равен 2.
- Внутри цикла вычисляем значение r по формуле r = (-1)^(n+1) x^i / (n(n+1)).
- Проверяем, является ли абсолютное значение r меньше заданной точности eps. Если это условие выполняется, то цикл прерывается и функция возвращает сумму ряда res.
- Если условие не выполняется, то значение r добавляется к сумме ряда res.
- В функции main вызываем функцию f с аргументом 0.11 и выводим результат на экран.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.