Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С (для ИВТ) / Готовые лабы С / Лаба2 / laba 2 (8)
.c#include <stdio.h>
#include <math.h>
int main() {
double x, epsilon = 1e-4;
double term, S = 0;
int n = 0;
printf("Enter x (|x| < 0.5): ");
scanf("%lf", &x);
if (fabs(x) >= 0.5) {
printf("Error: |x| must be < 0.5\n");
return 1;
}
// Рекуррентная формула:
// term_n = term_{n-1} * x * (1 + (-1)^n * 2^(n+1)) / (1 + (-1)^(n-1) * 2^n)
// Для упрощения вычисляем напрямую, но используем рекуррентный подход
term = 1 + 2; // n = 0: 1 + (-1)^0 * 2^1 = 1 + 2 = 3
S = term;
n = 1;
double prev_term = term;
do {
// term_n = (1 + (-1)^n * 2^(n+1)) * x^n
term = (1 + pow(-1, n) * pow(2, n + 1)) * pow(x, n);
S += term;
n++;
} while (fabs(term) >= epsilon);
double f = 3 / ((1 - x) * (1 + 2 * x));
printf("S = %.8f\n", S);
printf("f = 3/((1-x)(1+2x)) = %.8f\n", f);
printf("Difference = %.2e\n", fabs(S - f));
return 0;
}
Соседние файлы в папке Лаба2
