Вычисление суммы ряда. помогите правильно посчитать на языке Си
Помогите, пожалуйста, посчитать сумму ряда (на языке СИ) с:
- с указанной точностью "n"
- с максимально возможной точностью
Вводятся значения "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));
}
}
