ЛЕКЦИЯ 12. КЛАССИЧЕСКИЙ МЕТОД И ОСНОВЫ МЕТОДОВ СПУСКА

Требования: Python 3.10 или новее, NumPy, Matplotlib.
Распакуйте архив и откройте терминал в полученной папке.
  python -m pip install numpy matplotlib
  python descent_foundations.py
  python descent_foundations.py --variant 7
  python descent_foundations.py --nonconvex
  python descent_foundations.py --nonconvex --start 0 0
В Windows вместо python можно использовать py.

Основной пример: f=2(x1-1)^2+2(x1-1)(x2+1)+2(x2+1)^2+3.
Начальная точка (3,0), точный минимум (1,-1), f*=3.
Варианты 1–18 сохраняют коэффициенты лекций 10 и 11, но стартуют
в точке (s+2,t+1). Невыпуклый пример: x1^4-2*x1^2+x2^2.

Шаг Армихо: alpha0=1, beta=0.5, sigma=0.1, направление p=-grad(f).
При каждой новой итерации поиск шага снова начинается с alpha0=1.
Точность по норме градиента 1e-6; ограничение 2000 итераций.
Можно задать --tol 1e-8, --max-iter 5000, --output folder_name.

Результаты сохраняются в results_quadratic, results_variant_XX или
results_nonconvex. Повторный запуск в ту же папку перезаписывает результаты.
result.json: статус, точка, функция, норма градиента, спектр Гессиана.
iterations.csv: история принятых точек; alpha в строке k ведёт к точке k+1.
trials.csv: все пробы шага, включая отклонённые.
descent.png: траектория и норма градиента, 300 dpi.
Последняя строка iterations.csv не имеет alpha и rejected.

gradient_tolerance означает выполнение критерия стационарности,
iteration_limit — достижение лимита. Эти статусы не являются доказательством
минимума. curvature_report оценивает только кривизну с абсолютным порогом
1e-8; порог надо соотносить с масштабом конкретной задачи.
В старте (0,0) невыпуклого примера алгоритм останавливается в седле.
Сравните с --start 0.2 1 и --start -0.2 1 (используйте разные --output).

armijo отклоняет неубывающее направление, неконечные значения и недопустимые
параметры; ограничивает число проб и проверяет изменение точки.
Программа предназначена для рассмотренных гладких функций на R^2.
Для произвольной функции с ограниченной областью определения необходима
дополнительная проверка допустимости пробных точек.
