Загрузка данных


import math

def gaussian_integral_taylor(a, b, eps=1e-12, max_terms=200):
    """Вычисляет ∫_a^b exp(-x^2) dx разложением в ряд Тейлора."""
    if a > b:
        return -gaussian_integral_taylor(b, a, eps, max_terms)

    total = 0.0
    c = 1.0               # коэффициент C0 = 1/(0! * (2*0+1)) = 1
    b_pow = b             # b^(2*0+1) = b^1
    a_pow = a             # a^(2*0+1) = a^1
    n = 0

    while n < max_terms:
        term = c * (b_pow - a_pow)
        total += term
        if abs(term) < eps:
            break
        # рекуррентный переход к следующему члену
        c = -c * (2 * n + 1) / ((n + 1) * (2 * n + 3))
        b_pow *= b * b
        a_pow *= a * a
        n += 1

    return total

if __name__ == "__main__":
    a = float(input("Введите нижний предел a: "))
    b = float(input("Введите верхний предел b: "))
    result = gaussian_integral_taylor(a, b)
    print(f"∫_{a}^{b} exp(-x^2) dx ≈ {result:.10f}")