Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
122
Добавлен:
13.03.2016
Размер:
1.11 Mб
Скачать
      1. Метод золотого сечения

Метод золотого сечения также являетсяпоследовательным методом минимизации. Этот метод использует найденные значения ¦(x) более рационально, чем метод деления интервала пополам, что позволяет переходить к очередному интервалу, содержащему x после вычисления одного, а не двух значений ¦(x).

Метод золотого сечения тесно связан с числами Фибоначчи, которые определяются с помощью рекуррентного соотношения:

F0 = 0, F1 = 1, Fi = Fi-1 + Fi-2, i ≥ 2.

Таким образом, числа Фибоначчи образуют последовательность, в которой каждое очередное число представляет собой сумму двух предыдущих:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,…

Рассмотрим на исходном отрезке [a; b] точку x и вычислим ¦(x). Зная значение целевой функции в одной точке, невозможно сузить область поиска точки x*. Поэтому выберем вторую точку x так, чтобы a < x< x< b, и вычислим ¦(x). Возможен один из следующих двух случаев: ¦(x) £ ¦(x) или ¦(x) ³ ¦(x).

Согласно свойству унимодальной функции: если ¦(x) £ ¦(x), то x < x; если же ¦(x) ³ ¦(x), то x > x; в первом случае искомая точка x не может быть на отрезке [x; b], а во втором − на отрезке [a; x] (эти отрезки на рис. 5.3. отмечены штриховкой). Следовательно, теперь область поиска сужается и следующую точку x следует брать в одном из укороченных отрезков [a; x] или [x; b].

Рис. 5.3. Уменьшение интервала поиска точки минимума методом золотого сечения

Установим, где на исходном отрезке лучше всего выбрать точки x и x. Так как первоначально ничего неизвестно о положении точки x, то оба указанных выше случая равновозможны, т.е. “лишним” может оказаться любой из отрезков [x; b] и [a; x]. Отсюда ясно, что точки x и x должны быть расположены симметрично относительно середины отрезка [a; b]. Чтобы максимально сузить область поиска, эти точки должны быть “поближе” к середине исходного отрезка. Если их взять рядом с серединой исходного отрезка, то на втором этапе сужение области поиска будет незначительным (рис. 5.4). На втором этапе сужения области поискапотребуется вычислить лишь одно значение ¦(x), которое будем сравнивать с уже имеющимся значением ¦(x) или ¦(x) в зависимости от того, какой из двух случаев реализовался.

Рис. 5.4. К выбору пробных точек x и x

Поэтому, с одной стороны, точки x и x следует выбирать рядом с серединой отрезка, а с другой – слишком близкими их брать нельзя. Для того чтобы найти “золотую середину” используется метод “золотого сечения”.

Поиск с помощью метода золотого сечения основан на разбиении отрезка прямой на две части, известном как “золотое сечение” – отношение длины всего отрезка к большей части равно отношению большей части к меньшей.

Рассмотрим симметричное расположение двух пробных точек на исходном интервале единичной длины (рис. 5.5). Пробные точки x, x отстоят от

·

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

Рис. 5.5. Поиск пробных точек с помощью метода золотого сечения

Предположим, что исключается правый подынтервал. На рис. 5.6. показано, что оставшийся подынтервал длины F содержит одну пробную точку x, расположенную на расстоянии (1 − F) от левой граничной точки. Чтобы точки x= 1 − F и x= F де лили отрезки [0; F] и [0; 1] в одном и том же отношении должно выполняться равенство = или F=1 − F, находим положительное значение F = » 0,62.

Рис. 5.6. Интервалы, полученные методом золотого сечения

Таким образом, x= 1 − F= » 0,38, x= F= . Дроби F= и F= называются дробями Фибоначчи или числа Фибоначчи (Bonaccio(итал.), сын Боначио − добродушный, простодушный, т.е. сын добряка, сын удачника). Это название им дал Леонардо Фибоначчи из Пизы, который первым открыл их еще в 1202 г., подсчитывая, сколько пар потомства могут дать в год пара кроликов и их последующее потомство.

Для того чтобы симметрия поискового образа сохранялась, расстояние (1 - F) должно составлять F- ю часть длины интервала (которая равна F). При таком выборе F следующая пробная точка xразмещается на расстоянии, равномF- й части длины интервала, от правой граничной точки интервала (рис. 5.7.). Отсюда следует, что при выборе F в соответствии с условием 1 − F= Fсимметрия поискового образца (рис. 5.5) сохраняется при переходе к уменьшенному интервалу (рис. 5.7.). Схема поиска, при которой пробные точки делят интервал в этом отношении, известна под названиемпоиска с помощью метода золотого сечения.

Рис. 5.7. Симметрия золотого сечения интервала

Для произвольного отрезка [a; b] выражения для пробных точек примут вид

x=a + F(ba), x=a + F(ba) (5.3)

Зная одну из точек золотого сечения отрезка [a; b], другую можно найти по одной из формул

x= a+ bx, x = a+ bx (5.4)

Пусть ¦(xQ[a; b] и требуется найти точку минимума x функции ¦(x) на [a; b]. Построим последовательности {a}, {b} и {}, n = 1,2,…, следующим образом:

a=a,b=x, =x,если ¦(x)£ ¦(x); (5.5)

a = x, b = b, = x, если ¦(x) > ¦(x), n = 2,3,…,

где a = a, b = b, x и x − первая и вторая точки золотого сечения (5.3) отрезка [a; b].

Для определения чисел a, b, , по найденным a, b, необходимо выполнить следующие операции:

  1. найти одну из точек золотого сечения отрезка [a; b] по известной другой точке , используя формулы (5.4). При определенииxс большой точностью, чтобы избежать накопления ошибок округления, обычно точки золотого сечения отрезка [a; b] находят по формулам (5.3) и в качестве x и x используют и ту из найденных точек, которая больше отличается от;

  2. вычислить значение ¦(x) во вновь найденной точке золотого сечения (значение в другой точке уже вычислено на одном из предыдущих шагов);

  3. сравнить значения ¦(x) и ¦(x) и найти a, b и по формулам (5.5).

Таким образом, на каждом шаге определения a, b и n = 2,3,…, требуется вычисление одного значения ¦(x). Положив x» найдем точку минимумаxс точностьюe:

½x- ½ £ e= [(- 1)/2]n∙(ba),

отсюда следует, что число шагов n метода золотого сечения, обеспечивающее заданную точность e нахождения точки x, должно удовлетворять неравенству

n ³ ln() /ln() » − 2,1 ln() (5.6)

Пример 5.4. Решить пример 5.2. методом золотого сечения.

Вычисления проведем по формулам (5.5), представив результаты в таблице 5.3, где стрелками отмечены сохраняющиеся при переходе к следующему шагу значения.

Таблица 5.3

Значения пробных точек и функции ¦(x)

N

e

a

B

x

x

¦(x)

¦(x)

Примечание

1

0,309

1,5

2,0

1,691

1,809

-92,049

-91,814

¦(x)< ¦(x),b=x

2

0,191

1,5

1,809

1,618

1,691

-91,464

-92,049

¦(x)> ¦(x),a=x

3

0,118

1,618

1,809

1,691

1,736

-92,049

-92,138

¦(x)> ¦(x),a=x

4

0,073

1,691

1,809

1,736

1,764

-92,138

-92,083

¦(x)< ¦(x),b=x

5

0,045

1,736

-92,138

e < e, точность достигнута

Из таблицы 5.3 получаем x » = 1,736, ¦ » ¦()= − 92,138. Если воспользоваться формулой (5.6), то n можно определить заранее. В нашем случае n ³ 4,79, т.е. n = 5.