Понятие и определение метода золотого сечения. Метод золотого сечения Блок схема золотого сечения

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

Предположим, что имеется интервал неопределенности (x 1 ,x 3) и известно значение функции f(x 2) внутри этого интервала (см. рис. 9.3). Если можно вычислить функцию всего один раз в точке х 4 , то где следует поместить точку х 4 , для того чтобы получить наименьший возможный интервал неопределенности ?


Рис. 9.3.

Положим х 2 –х 1 =L и х 3 –х 2 =R , причем L > R , как показано на рис. 9.3 , и эти значения будут фиксированы, если известны x 1 , x 2 и х 3 . Если х 4 находится в интервале (х 1 ; х 2) , то:

  1. если f(x 4) < f(x 2) , то новым интервалом неопределенности будет (x 1 ,x 2) длиной х 2 –х 1 =L ;
  2. если f(х 4)>f(x 2) , то новым интервалом неопределенности будет (х 4 ,х 3) длиной х 3 –х 4 .

Поскольку не известно, какая из этих ситуаций будет иметь место, выберем х 4 таким образом, чтобы минимизировать наибольшую из длин х 3 -х 4 и х 2 -х 1 . Достигнуть этого можно, сделав длины х 3 – х 4 и х 2 – х 1 равными т.е. поместив х 4 внутри интервала симметрично относительно точки х 2 , уже лежащей внутри интервала. Любое другое положение точки х 4 может привести к тому, что полученный интервал будет больше L . Помещая х 4 симметрично относительно х 2 , мы ничем не рискуем в любом случае. Если окажется, что можно выполнить еще одно вычисление функции, то следует применить описанную процедуру к интервалу (х 1 , х 2) , в котором уже есть значение функции, вычисленное в точке х 4 , или к интервалу (х 4 ,х 3) , в котором уже есть значение функции, вычисленное в точке х 2 .

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

На n -м вычислении n -ю точку следует поместить симметрично по отношению к (n - 1) -й точке. Положение этой последней точки в принципе зависит от нас. Для того чтобы получить наибольшее уменьшение интервала на данном этапе, следует разделить пополам предыдущий интервал. Тогда точка х будет совпадать с точкой х n-1 . Однако при этом мы не получаем никакой новой информации. Обычно точки х n-1 и х n отстоят друг от друга на достаточном расстоянии, чтобы определить, в какой половине, левой или правой, находится интервал неопределенности . Они помещаются на расстоянии е/2 по обе стороны от середины отрезка L n-1 ; можно самим задать величину е или выбрать эту величину равной минимально возможному расстоянию между двумя точками.

Интервал неопределенности будет иметь длину L n , следовательно, L n-1 = 2L n - е (рис.9.4 , нижняя часть). На предыдущем этапе точки х n-1 и х n-2 должны быть помещены симметрично внутри интервала L n-2 на расстоянии L n-2 от концов этого интервала. Следовательно, L n-2 = L n-1 +L n (pис.9.4 , средняя часть).


Рис. 9.4.

Замечание . Из рисунка ясно, что на предпоследнем этапе х n-2 остается в качестве внутренней точки.

Аналогично L n-3 =L n-2 +L n-1 (pис. 9.4 , верхняя часть)

В общем случае L j-1 =L j + L j+1 при 1

Таким образом,

Если определить последовательность чисел Фибоначчи следующим образом: F 0 =1, F 1 =l , и F k =F k-1 +F k-2 для k = 2, 3,.. ., то

Следовательно, произведя n вычислений функции, мы уменьшим начальный интервал неопределенности в l/F n раз по сравнению с его начальной длиной (пренебрегая е), и это - наилучший результат.

Если поиск начат, то его несложно продолжить, используя описанное выше правило симметрии. Следовательно, необходимо найти положение первой точки, которая помещается на расстоянии L 2 от одного из концов начального интервала, причем не важно, от какого конца, поскольку вторая точкa помещается согласно правилу симметрии на расстоянии L 2 от второго конца интервала:


(2.4)

После того как найдено положение первой точки, числа Фибоначчи больше не нужны. Используемое значение е может определяться из практических соображений. Оно должно быть меньше L 1 \F n+x , в противном случае мы будем напрасно тратить время на вычисление функции.

Таким образом, поиск методом Фибоначчи , названный так ввиду появления при поиске чисел Фибоначчи , является итерационной процедурой. В процессе поиска интервала (x1; x2) с точкой х 2 , уже лежащей в этом интервале, следующая точка х 2 всегда выбирается такой, что х 3 –х 4 = х 2 –х 1 или х 4 -х 1 = х 3 -x 2 , т.е. x 4 =х 1 -х 2 +х 3 .

Если f(x 2) = f 2 и f(x 4) = f 4 , то можно рассмотреть четыре случая (рис. 9.5).


Рис. 9.5.

Следующий из методов одномерной оптимизаци называется методом "золотого сечения" .

Не всегда можно заранее определить, сколько раз придется вычислять функцию. В методе Фибоначчи это нужно знать для определения L 2 , т.е. положения начальной точки (см. уравнение 2.4).

Метод "золотого сечения" почти столь же эффективен, как и метод Фибоначчи , однако при этом не требуется знать n - количество вычислений функции, определяемое вначале. После того как выполнено j вычислений, исходя из тех же соображений, что и ранее (см. уравнение 2.1), записываем

Т.е.

Таким образом, , откуда . Тогда

В основе этого метода лежит понятие "золотого сечения", введенного Леонардо да Винчи и используемого, в частности, при построении архитектурных сооружений античности и эпохи Возрождения.

Золотым сечением отрезка называется его разбиение на две неравные части, так, что отношение длины всего отрезка к длине его большей части равно отношению длины большей части к длине меньшей части (рис.1.3, слева)

Золотое сечение осуществляется двумя точками x1 и x2, расположенными симметрично относительно середины отрезка (рис.1.3, справа). Нетрудно проверить, что

Точка x1 осуществляет золотое сечение не только отрезка , но и отрезка , а точка x2 осуществляет золотое сечение не только отрезка , но и отрезка . Действительно,

Из (1.10) и (1.11) получаем:

x1 = a + , x2 = a +. (1.12)

Формулы (1.12) являются основными расчетными формулами метода золотого сечения.

Из (1.12) следует, что x1 + x2 = a + b. Если обозначить r = , то формулы (1.12) можно переписать так:

x1 = b - r(b - a), x2 = a + r(b - a) (1.13)

Процедура деления отрезка такая же, как и для методов дихотомии и Фибоначчи. Вычисляются значения функции в выбранных точках: f(x1) и f(x2). Определяется новый отрезок локализации следующим образом:

если f(x1) f(x2), то a1 = a, b1 = x2;

если f(x1) > f(x2), то a1 = x1, b1 = b.

Так же, как и в методе Фибоначчи, одна из пробных точек x1, x2 станет пробной точкой на новом отрезке локализации. Поэтому на каждой итерации достаточно определить только одно значение f(x), так как другое уже найдено на предыдущей итерации.

В конце вычислений можно взять в качестве приближенного значения x* середину последнего из полученных отрезков.

После выполнения n итераций погрешность удовлетворяет следующему неравенству:

Условием окончания вычислений является выполнение неравенства n <.

Алгоритм 1.4 (Алгоритм метода золотого сечения).

Шаг 1. Ввести исходные данные: a, b, . Положить r = , n = .

Шаг 2. Определить x1 и x2 по формулам (1.13).

Шаг 3. Вычислить f(x1) и f(x2).

Шаг 4. Проверить критерий окончания вычислений. Если n <, перейти к шагу 5, иначе - к шагу 6.

Шаг 5. Перейти к новому отрезку локализации и новым пробным точкам. Если f(x1) f(x2), то положить b = x2, x2 = x1, f(x2) = f(x1), x1 = b - r(b - a) и вычислить f(x1). Иначе положить a = x1, x1 = x2, f(x1) = f(x2), x2 = a + r(b - a) и вычислить f(x2).

Положить n = rn и перейти к шагу 4.

Шаг 6. Положить x* . Вычислить f * f(x*).

Реализация в пакете MathCAD 14

Найдем минимум функции f(x), x с точностью до

В итоге получаем f(x*) = -3.749, x*=0.382 с точностью за 18 итераций.

Введение

Метод золотого сечения имеет достаточно большое применение во многих сферах. Так как всё в мире имеет какую-либо форму: предметы, растения, животные, люди - всё. Что представляют собой эти формы? Любое целое обязательно разделено на части разных размеров. Эти части имеют отношения между собой и ко всему миру, имеют формы. А строение любой формы образуется при помощи симметрии и золотого сечения.

Метод золотого сечения применяют в фотографии, живописи. Для фотографа метод золотого сечения - один из самых простых способов выделить главное на картинке. Применяется этот метод и в web-дизайне. В живописи же примером может послужить картина И.И. Шишкина "Сосновая роща". На этой знаменитой картине И.И. Шишкина с очевидностью просматриваются мотивы золотого сечения. Ярко освещенная солнцем сосна (стоящая на первом плане) делит длину картины по золотому сечению. Справа от сосны - освещенный солнцем пригорок. Он делит по золотому сечению правую часть картины по горизонтали. Слева от главной сосны находится множество сосен - при желании можно с успехом продолжить деление картины по золотому сечению и дальше.

В архитектуре метод золотого сечения также нашёл своё применение. По законам золотого сечения были построены наиболее известные нам сооружения, такие как Парфенон (V в. до н.э.), собор Парижской Богоматери (Нотр-дам де Пари). Яркими примерами в русской архитектуре станут Смольный собор в Санкт-Петербурге и храм Василия Блаженного, в котором, если взять высоту собора за единицу, то основные пропорции, определяющие членение целого на части, образуют ряд золотого сечения.

В основном же, метод золотого сечения применяют в программировании. Он является одним из простейших вычислительных методов решения задач оптимизации.

Цель курсовой работы - рассмотреть численные методы поиска экстремума функций одной переменной, а именно метод золотого сечения.

Исходя из поставленной цели, необходимо решить следующие задачи:

Рассмотреть метод золотого сечения, его алгоритм выполнения;

Рассмотреть метод чисел Фибоначчи и его алгоритм выполнения;

Показать реализацию метода золотого сечения в программировании.

Метод золотого сечения

История появления метода золотого сечения

Задачи линейного программирования были первыми, подробно изученными задачами поиска экстремума функций при наличии ограничений типа неравенств. В 1820 году Фурье и затем в 1947 году Данциг предложил метод направленного перебора смежных вершин в направлении возрастания целевой функции -- симплекс-метод, ставший основным при решении задач линейного программирования.

Присутствие в названии дисциплины термина "программирование" объясняется тем, что первые исследования и первые приложения линейных оптимизационных задач были в сфере экономики, так как в английском языке слово "programming" означает планирование, составление планов или программ. Вполне естественно, что терминология отражает тесную связь, существующую между математической постановкой задачи и её экономической интерпретацией (изучение оптимальной экономической программы). Термин "линейное программирование" был предложен Данцигом в 1949 году для изучения теоретических и алгоритмических задач, связанных с оптимизацией линейных функций при линейных ограничениях.

Поэтому наименование "математическое программирование" связано с тем, что целью решения задач является выбор оптимальной программы действий.

Выделение класса экстремальных задач, определяемых линейным функционалом на множестве, задаваемом линейными ограничениями, следует отнести к 1930-м годам. Одними из первых, исследовавшими в общей форме задачи линейного программирования, были: Джон фон Нейман - математик и физик, доказавший основную теорему о матричных играх и изучивший экономическую модель, носящую его имя, и Канторович - советский академик, лауреат Нобелевской премии (1975), сформулировавший ряд задач линейного программирования и предложивший в 1939 году метод их решения (метод разрешающих множителей), незначительно отличающийся от симплекс-метода.

В 1931 году венгерский математик Б. Эгервари рассмотрел математическую постановку и решил задачу линейного программирования, имеющую название "проблема выбора", метод решения получил название "венгерского метода".

Канторовичем совместно с М.К. Гавуриным в 1949 году разработан метод потенциалов, который применяется при решении транспортных задач. В последующих работах Канторовича, Немчинова, В.В. Новожилова, А.Л. Лурье, А. Брудно, Аганбегяна, Д.Б. Юдина, Е.Г. Гольштейна и других математиков и экономистов получили дальнейшее развитие как математическая теория линейного и нелинейного программирования, так и приложение её методов к исследованию различных экономических проблем.

Методам линейного программирования посвящено много работ зарубежных учёных. В 1941 году Ф.Л. Хитчкок поставил транспортную задачу. Основной метод решения задач линейного программирования -- симплекс-метод -- был опубликован в 1949 году Данцигом. Дальнейшее развитие методы линейного и нелинейного программирования получили в работах Куна (англ.), А. Таккера (англ.), Гасса (Saul. I. Gass), Чарнеса (Charnes A.), Била (Beale E.M.) и др.

Одновременно с развитием линейного программирования большое внимание уделялось задачам нелинейного программирования, в которых либо целевая функция, либо ограничения, либо то и другое нелинейны. В 1951 году была опубликована работа Куна и Таккера, в которой приведены необходимые и достаточные условия оптимальности для решения задач нелинейного программирования. Эта работа послужила основой для последующих исследований в этой области.

Начиная с 1955 году опубликовано много работ, посвященных квадратическому программированию (работы Била, Баранкина и Дорфмана (Dorfman R.), Франка (Frank M.) и Вольфа (Wolfe P.), Марковица и др.). В работах Денниса (Dennis J. B.), Розена (Rosen J. B.) и Зонтендейка (Zontendijk G.) разработаны градиентные методы решения задач нелинейного программирования.

В настоящее время для эффективного применения методов математического программирования и решения задач на компьютерах разработаны алгебраические языки моделирования, представителями которыми являются AMPL и LINGO.

Понятие и определение метода золотого сечения

Пусть Х=. Положим х1=1/T. Так как Т2=Т+1,то 1-1/Т=1/Т2.

Итак,отношение длины всего отрезка,к длине большей из его частей равно отношению длины большей части к длине меньшей части:

1/(1/Т)=(1/Т)/(1/Т2)

Деление отрезка в таком отношении называется золотое сечение.

Точку x2 выберем симметрично точке x1 относительно середины отрезка X:x2=1/T2. Сравнив значения f(x1) и f(x2),находим отрезок локализации минимума ( или ).Нетрудно увидеть, что лежащая внутри локализации точка, где вычисление проведено, делит отрезок в отношении золотого сечения.

Алгоритм определяется условием одинаковым в методе Фибоначчи, то есть разница в выборе точки x1. На каждом шаге точка очередного вычисления выбирается симметрично относительно середины отрезка к лежащей внутри этого отрезка точке уже сделанного вычисления.

Рисунок 1 - График взаимного расположения первых 2 вычислений по методу золотого сечения

Таблица 1 ? Взаимное расположение генерируемых алгоритмом точек

Очевидно, что в случае X=, длина отрезка локализации минимума после N вычислений равна (b-a)/(TN-1).

Основная идея данного метода – сокращение числа n ш вычислений функции на каждом шаге (кроме первого)до 1 (минимально возможного значения) с дальнейшим использованием при поиске минимума второй пробной точки каждого шага, которая попадает внутрь нового доверительного интервала. Несмотря на то, что доверительный интервал сокращается при этом существенно менее, чем в два раза (в отличие от дихотомии), данный метод за счёт уменьшения n ш работает в общем значительно быстрее.

Золотым сечением отрезка [a,b ]называется такое его деление промежуточной точкой с , при котором выполняется соотношение (рис 10.12 а), где ξ – коэффициент золотого сечения.

Рис 10.12. Прямое и обратное золотые сечения отрезка

Выразим через xи отрезок ab отрезки ас и cb : аc = x ab; cb= x ac = x 2 ab .

Из условия аc + cb = ab после подстановки данных выражений и сокращения на аb получим следующее квадратное уравнение относительно x:

x 2 + x - 1 = 0 .

Решая его, находим корни:

Отбрасывая отрицательный корень, получим искомую величину отношения:

Разбивать отрезок [a,b ]можно не только в прямом, но и в обратном направлении – от b к a . Аналогичная точка d лежит симметрично с относительно средней точки интервала (a+b )/2(рис.10.12 б).

Величину отношения ad/ab получим, вычитая x из 1:

Точки d , с , задающие обратное и прямое разбиение отрезка в золотом сечении, обладают следующими свойствами.

1. Если отбросить часть отрезка [а,d ], то с d, b ].

2. Если отбросить часть отрезка [с, b ], то d – золотое сечение оставшейся части [a, с ].

Данные свойства можно доказать непосредственной подстановкой значений

Допустим, необходимо с точностью e найти минимум унимодальной функции F (x ) на [a,b ].

Предварительные действия (Шаг 0) .

Доверительный отрезок принимаем равным заданному: а 0 = а, b 0 = b .

Шаги i (i>0) выполняются в цикле при выполнении условия (b i - a i > e).

Шаг 1 . 1. Расчет положения двух пробных точек:

х 2 0 + x(b 0 - а 0)» а 0 + 0,618 (b 0 - а 0);

х 1 = ( b 0 + а 0) - x 2 » а 0 + 0,382(b 0 - а 0).

2. Расчет значений функций F (x 1) и F (x 2).

3. Анализ значений функции в точках х 1 , х 2 и изменение доверительного отрезка по аналогии с дихотомией:

а) при F (x 1) ³ F (x 2) принимаем: a 1 = х 1 , х 1 = х 2 , b 1 = b 0 ,

б) при F (x 1) < F (x 2) принимаем: a 1 = а 0 , х 2 = х 1 , b 1 = х 2 .

4. Проверка окончания цикла: если (b 1 - a 1) > e -продолжение цикла, иначе - выход.

Шаги i (i>1) . Из предыдущей итерации (i -1) известно одно значение функции F (x ) во внутренней точке х доверительного отрезка [a i - 1 ; x i - 1 ]. Поэтому для сокращения достаточно ввести только одну новую пробную точку.

1. Расчет положения новой пробной точки: х¢ = (b i - 1 + а i - 1) - х , расчет значения функции F ().

2. Упорядочение пробных точек х , х¢ и значений функции в них:

если (х < х¢ ), то { х 1 = х ; F (x 1)=F (x ); х 2 = х¢ ; F (x 2)=F () };

иначе { х 1 = х¢ ; F (x 1)=F () ; х 2 = х ; F (x 2)=F (x ) }.

Пункты 3 и 4 совпадают с шагом 1.

Скорость сходимости и точность метода. Так как на каждом шаге длина доверительного отрезка сокращается в t = 1/x » 1,618 раз, то длина[a 1 ,b 1 ] связана с длиной [a, b ] следующим образом: b 1 - a 1 = x (b 0 - a 0) =x (b - a ).

По аналогии для произвольного шага k длина доверительного отрезка: b k - a k = x k (b - a ).

Процесс заканчивается, когда выполняется неравенство b k - a k = x k (b - a ) £ e.

Отсюда следует, что номер шага k , на котором достигается требуемая точность e , равен k (e)= ]log t (b - a )/e [ = ]log t M [.

На первом шаге выполняется два вычисления целевой функции, на всех последующих n ш = 1. Поэтому полное число необходимых вычислений F (х )

п (e) =1+ n ш k (e) = 1+] log t ((b - a )/e)[ .

Зависимость e (п ) находим из равенства (b -a )/e = t ( n -1 ) : e (п ) = (b - a )x (n -1) .

Асимптотические скорости роста зависимостей e(n ) и n (e) для метода золотого сечения:

e (n ) = O[(b-a )x n ];

п(e ) = O =O .

Данный метод является ещё более быстрым по сравнению с дихотомией, так как в формуле для п (e)основание логарифма t » 1,618 < 2. Как и дихотомия, он является регулярным. Также он принадлежит к группе так называемых симметричных методов.

Последовательный метод определения экстремума называют симметричным , если на каждом i –том шаге поиска экстремума на доверительном отрезке [a i ,b i ] уже известна одна пробная точка x 1 и значение целевой функции F (x 1) в ней. Вторая (новая) пробная точка x 2 определяется как симметричная x 1 относительно средней точки (a i +b i )/2 доверительного интервала: x 2 = a i + b i - x 1 .

Метод дихотомии не является симметричным.

Замечание 1. Известная пробная точка x 1 в симметричном методе может быть как меньше, так и больше значения (a i +b i )/2 .

Замечание 2 . Свойство симметрии метода позволяет значительно упростить расчёт новых пробных точек. Формула x 2 = a i + b i - x 1 позволяет рассчитать вторую пробную точку x 2 независимо от того, как первая точка x 1 расположена относительно средней точки доверительного отрезка (до или после).

Замечание 3 . В практических расчетах при большом числе итераций из-за накопления погрешностей вычисления положение пробной точки x 1 на отрезках [a i ,b i ] может значительно отклоняться от золотого сечения. При этом, соответственно, полное число необходимых вычислений целевой функции п (e) будет увеличиваться. Для предотвращения этого явления, положение точки x с известным значением функции можно периодически уточнять по формулам х=a+ x(b-a )либо х=a+ (1-x)(b-a ) в зависимости от того, к какому из данных значений она ближе.

Пример 1 . Найти минимум функции F (х ) = х 2 2х на доверительном отрезке по методу золотого сечения при заданной точности e =0,5.

Решение .

Шаг 0. а 0 = а, b 0 = b .

Шаг 1 . Расчет положения двух пробных точек: х 2 0 + x(b 0 а 0) »1,3124; х 1 = (b 0 0)-х 2) » 0,8876. Значения функции в них: F (x 1 ) = -0,9874; F (x 2) = -0,7768. Так как F (x 1 )<F (x x 2 ;b 0 ].Получаем новый доверительный отрезок [а 1 ;b 1 ] = .

b 1 1 = 1,1124 > e = 0,5;продолжаем поиск.

Шаг 2 . Границы доверительного отрезка а 1 = 0,2; b 1 = 1,3124 . На нем известно значение функции в точке х» 0,8876, F (x ) = -0,9874.

Новая пробная точка: х¢ = ( b 1 1) - 0,8876 » 0,6248. Значение функции в новой точке х¢ : F () = -0,8592.

Поскольку х¢<х, то принимаем х 1 = х¢ ; F (x 1) = F (); х 2 = х ; F (x 2) = F (x ).

Так как F (x 1) > F (x 2), то отбрасываем часть доверительного отрезка [a 1 ;x 1 ].Получаем новый отрезок [а 2 ; b 2 ] = .

b 2 2 = 0,6878 > e = 0,5;продолжаем поиск.

Шаг 3 . а 2 = 0,6246; b 2 = 1,3124 . Известно значение функции в точке х» 0,8876, F (x ) = -0,9874.

Новая пробная точка: х¢ = (b 2 2) - 0,8876 » 1,0494.. Значение функции в новой точке х¢ : F ()= --0,9976.

Поскольку х¢>х, то принимаем х 1 = х ; F (x 1) = F (x ); х 2 =х¢ ; F (x 2) = F ().

Так как F (x 1)>F (x 2),то отбрасываем часть доверительного отрезка [a 1 ; x 1 ] и получаем отрезок [а 3 ; b 3 ] = .

b 3 3 =0,4248 < e =0,5;следовательно, поиск завершен.

Ответ. Выполнено3 шага, использовано 4 пробных точки. Найден итоговый доверительный интервал: [а 3 , b 3 ] = длины 0,4248.

Как видно из Примера 1 п.10.3, число необходимых вычислений функции сократилось по сравнению с методом дихотомии с 6 до 4.

Вопросы для проверки знаний.

1. Что называют а) золотым сечением отрезка, б) прямым и обратным золотым сечением отрезка?

3. Какое свойство золотого сечения используется при сокращении доверительного отрезка?

4. Какие методы называют симметричными и как симметричность используется для упрощения расчета пробных точек?

5. Как выполняются первый и последующие шаги в методе золотого сечения?

6. За счет чего метод золотого сечения является более быстрым по сравнению с дихотомией?

Метод основан на делении текущего отрезка [а, b ], где содержится искомый экстремум, на две неравные части, подчиняющиеся правилу золотого сечения, для определения следующего отрезка, содержащего минимум (максимум).

Золотое сечение определяется по правилу: отношение всего отрезка к большей его части равно отношению большей части отрезка к меньшей. Ему удовлетворяют две точки c и d , расположенные симметрично относительно середины отрезка.

Путем сравнения R (c ) и R (d ) определяют следующий отрезок, где содержится максимум. Если R (d ) > R (c ), то в качестве следующего отрезка выбирается отрезок [с, b ], в противном случае – отрезок [a , d ].

Новый отрезок снова делится на неравные части по правилу золотого сечения. Следует отметить, что точка d является и точкой золотого сечения отрезка [с, b ], т.е.

Поэтому на каждой следующей итерации (кроме "запуска" метода на исходном отрезке) нужно вычислять только одно значение критерия оптимальности.

Существуют аналитические формулы для расчета новой точки на отрезке, где находится максимальное значение R (x ), которую нетрудно получить:

Условие окончания поиска – величина отрезка, содержащего максимум, меньше заданной погрешности.

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

На рис. 3 приведены два этапа поиска максимума функции методом золотого сече­ния.

Рис. 3. Иллюстрация метода золотого сечения: 1 – интервал, включающий в себя искомый максимум функции после первого этапа (первого золотого сечения в точках c и d ); 2 – то же, после второго этапа (новая точка е и старая точка d )

Алгоритм метода золотого сечения для минимизации функции.

Начальный этап. Выбрать допустимую конечную длину интервала неопределённости l > 0. Пусть [а , b ] – начальный интервал неопределённости. Положить
и
. Вычислить R (c ) и R (d ), положить k = 1 и перейти к основному этапу.

Основной этап.

Шаг 1. Если b ­ k a k < l , то остановиться; точка минимума принадлежит интервалу [а k , b k ]. В противном случае если R (c k ) > R (d k ), то перейти к шагу 2, а если R (c k ) ≤ R (d k ), то к шагу 3.

Шаг 2. Положить a k +1 = c k и b k +1 = b k ,
. Вычислить R (d k +1) и перейти к шагу 4.

Шаг 3. Положить a k +1 = a k и b k +1 = d k ,
. Вычислить R (c k +1) и перейти к шагу 4.

Шаг 4. Заменить k на k + 1 и перейти к шагу 1.

Пример.

Дана функция R (x ) = D sin(Ах B + С), где коэффициенты имеют следующие значения: А = 1,0, В = 1,0, С = 1,0, D = 1,0. Найти максимум на интервале: [-1, 2]. Ошибка задается по х: ε =0,05.

Результаты расчетов. Для "запуска" метода найдем две симметричные точки золотого сечения для отрезка [-1, 2]:

x 1 =0,145898, х 2 =0,85410197.

Значения критериев в этих точках соответственно R(x 1) = 0,911080, R (x 2) = 0,960136. Следовательно, новым отрезком является , внутри которого находится максимальное из найденных значений R . Точка золотого сечения для нового отрезка будет x 3 =0,58359214, a R (x 3) =0,99991813. Далее приведены только координаты лучших точек при очередном шаге, номер шага и значения критерия в этих точках.

х 3 = 0,58359214; R 3 = 0,99991813;

х 4 =0,58359214; R 4 = 0,99991813

х 5 = 0,58359214; R 5 = 0,99991813;

х 6 = 0,58359214; R 6 = 0,99991813

х 7 = 0,58359214; R 7 = 0,99991813;

х 8 = 0,55920028; R 8 = 0,99993277;

х 9 = 0,55920028; R 9 = 0,99993277.

Всего было проведено 10 вычислений критерия оптимальности.