Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
01.11.2025
Размер:
1.11 Кб
Скачать
#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