Метод золотого сечения: поиск минимума функции
Метод золотого сечения - один из классических алгоритмов одномерной оптимизации: он находит минимум унимодальной функции на отрезке, не вычисляя производную и не требуя аналитического выражения. В основе лежит простое наблюдение: на каждом шаге достаточно двух пробных точек, чтобы гарантированно выбросить часть отрезка, где минимума нет. Попробуйте калькулятор ниже - двигайте ползунок шага и смотрите, как синий отрезок сужается к минимуму; дальше разберём каждую формулу строго.
Принцип метода и золотое число
Пусть на отрезке задана унимодальная функция - непрерывная, имеющая ровно один минимум. Мы хотим сузить отрезок неопределённости до заданной точности .
На каждом шаге расставляем две пробные точки:
где - золотое сечение (меньший корень уравнения ). Дробь делит отрезок в пропорции .
Сравниваем и :
- если - минимум лежит в , поэтому заменяем ;
- если - минимум в , заменяем .
Ключевое свойство золотого сечения: после сужения одна из двух новых пробных точек совпадает со старой. Это значит, что на следующем шаге достаточно вычислить только в одной новой точке - экономия на 50% по сравнению с произвольным разбиением.
Скорость сходимости
После итераций длина отрезка неопределённости равна
Поскольку , длина убывает геометрически. Чтобы достичь точности , достаточно
итераций. Например, для отрезка и нужно всего шагов.
Это быстрее метода деления пополам только в теоретическом смысле: дихотомия за два вычисления сужает отрезок в 2 раза, тогда как золотое сечение за два вычисления - в раза. Но за одно вычисление (со второй итерации) - в ; при дорогостоящих это решающий довод.
![Сходимость метода золотого сечения: длина отрезка [a, b] по шагам убывает по закону phi^n - прямая линия на логарифмической шкале](/blog/inline/metod-zolotogo-secheniya-test-convergence.png)
На логарифмической шкале убывание длины отрезка - прямая линия с наклоном . Именно это свойство делает золотое сечение точно оптимальным для стратегий с одной пробной точкой за шаг.
Шаги алгоритма на примере
Возьмём на , точность .
Шаг 0. , , длина 5.
Так как , отбрасываем правую часть: . Длина стала .
Шаг 1. , .
Теперь , отбрасываем левую часть: .
Так шаг за шагом отрезок сжимается к (истинный минимум ). Уже через 10 итераций длина не превысит - лучше заданной точности .
Условие применимости: унимодальность
Метод гарантирует нахождение глобального минимума только тогда, когда функция унимодальна - имеет ровно один минимум на отрезке. Если у два и более локальных минимума, алгоритм «выберет» один из них, но какой именно - непредсказуемо.
Если f(x1) = f(x2), строгое правило сужения не работает: оба конца можно двигать одновременно (a ← x1, b ← x2), но при равном значении это возможно лишь при симметрии. На практике чаще берут любое из двух правил и контролируют ситуацию.
Проверить унимодальность аналитически: достаточно, чтобы имела единственный корень на и в нём (строгий минимум). Для гладкой строго выпуклой функции ( всюду на ) метод работает безусловно.
Связь с золотым сечением и числом Фибоначчи
Название «золотое сечение» не случайно: - то самое иррациональное число, которое с древности описывает деление отрезка в «наиболее гармоничном» соотношении. В математической оптимизации его роль другая: это единственная точка деления, при которой метод после каждого шага оставляет такое же относительное расположение пробных точек на новом, меньшем отрезке.
Числа Фибоначчи связаны с формулой:
а метод Фибоначчи (предшественник золотого сечения) использует конечное число шагов, заранее известное. Для оба метода совпадают, и коэффициент сужения стремится к .
Частые ошибки
- Забывают проверить унимодальность. Применяют метод к функции с двумя локальными минимумами и удивляются неверному ответу. Сначала убедитесь, что функция унимодальна на выбранном отрезке.
- Путают и . Формулы и симметричны относительно середины, но всегда. Привязка знака к нижней границе () дает , к верхней () - .
- Неверно обновляют границу. Если , то (не ): отрезок оставляем. Частая ошибка - поставить , выбросив зону, где минимум ещё может быть.
- Используют десятичное . Округление накапливается за 20-30 итераций. Держите как константу.
- Останавливаются по числу шагов, а не по ширине отрезка. Критерий остановки - , а не «сделали шагов». При фиксированном вы не знаете, достигнута ли нужная точность.
FAQ
Нужна ли производная для метода золотого сечения? Нет. Метод использует только значения и и не требует производной. Это делает его применимым к «чёрным ящикам» - функциям, для которых формулы нет, но значение можно получить экспериментально или численно.
Чем метод золотого сечения отличается от градиентного спуска? Градиентный спуск использует производную и может применяться к многомерным функциям, но требует её вычисления и может застрять в локальном минимуме. Золотое сечение - строго одномерный метод, работает без производной и при унимодальности гарантирует глобальный минимум. Для одномерных задач без производной золотое сечение обычно предпочтительнее.
Как выбрать начальный отрезок ? Отрезок должен содержать минимум. Практически: построить грубый график или оценить по физическому смыслу задачи. Если минимум не попал в , алгоритм найдёт «минимум на краю» - либо , либо . Признак: после сходимости проверьте, что и .
Коротко
Метод золотого сечения сужает отрезок неопределённости в раз за каждый шаг при одном вычислении . Формулы пробных точек и обеспечивают переиспользование: одна из точек остаётся на следующем шаге. За шагов длина отрезка составляет , убывая геометрически. Условие применимости - унимодальность функции на ; без него метод не гарантирует глобального результата.
Читайте также

Метод золотого сечения: поиск минимума функции
Метод золотого сечения для поиска минимума функции на отрезке: формулы пробных точек, правило сужения интервала, число шагов до нужной точности и разбор частых ошибок студентов.

Метод половинного деления: решение нелинейного уравнения
Метод половинного деления для решения нелинейного уравнения: условие смены знака, формула середины отрезка, оценка числа итераций и разбор типовой задачи с корнем x^3 - x - 2 = 0.

Метод секущих для корня уравнения: формула и шаги
Метод секущих для корня нелинейного уравнения: рекуррентная формула через два приближения, пошаговый разбор, отличие от метода Ньютона и бисекции, условия сходимости и типичные ошибки.