import numpy as np

# Функция Растригина для n переменных
def rastrigin(x):
    A = 10
    x = np.array(x)
    return A * len(x) + np.sum(x ** 2 - A * np.cos(2 * np.pi * x))

# Функция Бута
def booth(x):
    return (x[0] + 2 * x[1] - 7)**2 + (2 * x[0] + x[1] - 5)**2

# Функция Розенброка для n переменных
def rosenbrock(x):
    x = np.array(x)
    return np.sum(100 * (x[1:] - x[:-1]**2)**2 + (1 - x[:-1])**2)

# Пример четвёртой функции
def quad_function(x):
    return 2 * x[0]**2 + x[0]*x[1] + x[1]**2 - 3 * x[0]

# Пример пятой функции
def cos_function(x):
    return 5 * np.cos(x[0] - 0.4) + x[0]**2
