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


import numpy as np

def f(x):
    # Коэффициенты варианта 6: B = -3.327, C = -7.204, D = 11.442
    # Уравнение: x^3 - B*x^2 + C*x - D = 0
    # f(x) = x^3 + 3.327*x^2 - 7.204*x - 11.442
    return x**3 + 3.327*x**2 - 7.204*x - 11.442

def find_min_quadrisection(f, a, b, e=0.001, max_iter=1000):
    """
    Поиск минимума функции f на отрезке [a, b] методом квадрисекции.
    """
    for i 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          # минимум в [a, x2]
        elif f2 <= f1 and f2 <= f3:
            a = x1
            b = x3          # минимум в [x1, x3]
        else:
            a = x2          # минимум в [x2, b]

    return (a + b) / 2

# Поиск минимума на отрезке, содержащем точку минимума (≈0.7967)
a, b = 0.0, 2.0
min_x = find_min_quadrisection(f, a, b)
print("Метод квадрисекции (минимум) для варианта 6:")
print(f"Точка минимума: {min_x:.8f}")
print(f"Значение функции в минимуме: {f(min_x):.8f}")