Рис. 1
На отрезке
снова надо выбрать две внутренние точки, вычислить в них и на концах отрезка значения функции, и сделать следующий шаг процесса. Но на предыдущем шаге вычислений мы уже нашли на концах нового отрезка и в одной его внутренней точке . Поэтому достаточно выбрать внутри еще одну точку , определить в ней значение функции и провести необходимые сравнения. Это вчетверо уменьшает объем вычислений на одном шаге процесса.Как выгодно размещать точки? Всякий раз мы делим оставшийся отрезок на три части (причем одна из точек деления уже определена предыдущими вычислениями) и затем отбрасываем один из крайних отрезков. Очевидно, надо, чтобы следующий отрезок был поделен подобно предыдущему. Для этого должны выполняться соотношения
.Решение этих уравнений дает
. (4)После проведения очередного вычисления отрезок сокращается в
раза; после вычислений функции он составляет долю первоначальной величины (три первых вычисления в точках еще не сокращают отрезок). Следовательно, при длина оставшегося отрезка стремится к нулю как геометрическая прогрессия со знаменателем , т. е. метод золотого сечения всегда сходится, причем линейно.Запишем алгоритм вычисления. Для единообразия записи обозначим
,а поочередно вводимые внутренние точки будут
На первом шаге полагаем согласно (4) . (5)После сравнения может быть отброшена точка с любым номером, так что на следующих шагах оставшиеся точки будут перенумерованы беспорядочно. Пусть на данном отрезке есть четыре точки
из которых какие-то две являются концами отрезка. Выберем ту точку, в которой функция принимает наименьшее значение; пусть это оказалась : . (6)Затем отбрасываем ту точку, которая более всего удалена[3] от
; пусть этой точкой оказалась : . (7)Определим порядок расположения оставшихся трех точек на числовой оси; пусть, для определенности,
. (8)Тогда новую внутреннюю точку введем таким соотношением[4]:
, (9)и присвоим ей очередной номер. Минимум находится где-то внутри последнего отрезка,
. Поэтому итерации прекращаем, когда длина этого отрезка станет меньше заданной погрешности : . (10)Метод золотого сечения является наиболее экономичным аналогом метода дихотомии применительно к задачам на минимум. Он применим даже к недифференцируемым функциям и всегда сходится; сходимость его линейна. Если на отрезке
функция имеет несколько локальных минимумов, то процесс сойдется к одному из них (но не обязательно к наименьшему).Этот метод нередко применяют в технических или экономических задачах оптимизации, когда минимизируемая функция недифференцируема, а каждое вычисление функции – это дорогой эксперимент.
Метод золотого сечения рассчитан на детерминированные задачи. В стохастических задачах из-за ошибок эксперимента можно неправильно определить соотношение между значениями функций в точках; тогда дальнейшие итерации пойдут по ложному пути. Поэтому если различия функций в выбранных точках стали того же порядка, что и ошибки эксперимента, то итерации надо прекращать. Поскольку вблизи минимума чаще всего
~ , то небольшая погрешность функции приводит к появлению довольно большой области неопределенности ~ .2. Минимум функции многих переменных
2.1 Рельеф функции
Основные трудности многомерного случая удобно рассмотреть на примере функции двух переменных
. Она описывает некоторую поверхность в трехмерном пространстве с координатами . Задача означает поиск низшей точки этой поверхности. Изобразим рельеф этой поверхности линиями уровня. Проведем равноотстоящие плоскости и найдем линии их пересечения с поверхностью ; проекции этих линий на плоскость называют линиями уровня. Направление убывания функции будем указывать штрихами, рисуемыми около линий уровня. Полученная картина напоминает топографическое изображение рельефа горизонталями. По виду линий уровня условно выделим три типа рельефа: котловинный, овражный и неупорядоченный.а) б)
в)
Рис. 2 г)
При котловинном рельефе линии уровня похожи на эллипсы (рис. 1, а). В малой окрестности невырожденного минимума рельеф функции котловинный. В самом деле, точка минимума гладкой функции определяется необходимыми условиями
, (11)и разложение функции по формуле Тейлора вблизи минимума имеет вид
, (12)причем квадратичная форма (12) – положительно определенная[5], иначе эта точка не была бы невырожденным минимумом. А линии уровня знакоопределенной квадратичной формы – это эллипсы.