def f(x):
return x**3 + 0.205*x**2 - 10.880*x - 1.469
def bisection(a, b, tol=1e-6):
if f(a) * f(b) >= 0:
raise ValueError("На концах отрезка функция должна иметь разные знаки")
while (b - a) / 2 > tol:
c = (a + b) / 2
if f(c) == 0:
return c
if f(a) * f(c) < 0:
b = c
else:
a = c
return (a + b) / 2
# Левый корень находится около -3.334
a, b = -3.35, -3.30
root = bisection(a, b)
print(f"Метод половинного деления: x = {root:.8f}")
print(f"Значение функции f(x) = {f(root):.2e}")