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


def f(x):
    return x**3 + 0.205*x**2 - 10.880*x - 1.469

def f_prime(x):
    return 3*x**2 + 0.410*x - 10.880

def newton(x0, tol=1e-6, max_iter=100):
    x = x0
    for _ in range(max_iter):
        fx = f(x)
        if abs(fx) < tol:
            return x
        dfx = f_prime(x)
        if dfx == 0:
            raise RuntimeError("Производная равна нулю")
        x_new = x - fx / dfx
        if abs(x_new - x) < tol:
            return x_new
        x = x_new
    return x

# Правый корень находится около 3.265
x0 = 3.3
root = newton(x0)
print(f"Метод Ньютона: x = {root:.8f}")
print(f"Значение функции f(x) = {f(root):.2e}")