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


def f(x):
    # Коэффициенты 16 варианта: B = -0.205, C = -10.880, D = 1.469
    # Уравнение: x^3 - B*x^2 + C*x - D = 0 -> f(x) = x^3 + 0.205*x^2 - 10.880*x - 1.469
    return x**3 + 0.205*x**2 - 10.880*x - 1.469

def find_min_quadrisection(f, a, b, e=0.001, max_iter=1000):
    for _ in range(max_iter):
        length = b - a
        if length < e:
            return (a + b) / 2

        x1 = a + length / 4
        x2 = a + length / 2
        x3 = a + 3 * length / 4

        f1, f2, f3 = f(x1), f(x2), f(x3)

        if f1 <= f2 and f1 <= f3:
            b = x2
        elif f2 <= f1 and f2 <= f3:
            a = x1
            b = x3
        else:
            a = x2

    return (a + b) / 2

# Отрезок, содержащий минимум (можно подобрать по графику)
min_x = find_min_quadrisection(f, 1, 3)
print(f"Точка минимума: {min_x:.8f}")
print(f"Значение функции в минимуме: {f(min_x):.8f}")