Вычисление суммы ряда. помогите правильно посчитать на языке Си

Помогите, пожалуйста, посчитать сумму ряда (на языке СИ) с:

  1. с указанной точностью "n"
  2. с максимально возможной точностью

Вводятся значения "n" и "x". Вот формула:

введите сюда описание изображения

На всякий случай сообщаю, что метку "ряды" я уже смотрел. Если бы мне помогли представленные там задачи, я бы не стал задавать этот вопрос.

Спасибо заранее.


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

Автор решения: Harry
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

double sum_n(double x, unsigned int n)
{
    double term = x, sum = x;
    x*=x;
    for(int i = 0; i < n; ++i)
        sum += term *= -x/(2*i+2)/(2*i+3);
    return sum;
}

double sum(double x)
{
    double term = x, sum = x;
    x*=x;
    for(int i = 0; ; ++i)
    {
        double lsum = sum;
        sum += term *= -x/(2*i+2)/(2*i+3);
        if (lsum == sum) break;
    }
    return sum;
}

int main()
{
    for(double x = 0; x < 10; x += 0.25)
    {
        printf("%5.2lf  %8.6lf  %8.6lf\n",
               x,sum_n(x,20),sum(x));
    }
}
→ Ссылка