Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы безусловной оптимизации.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7 Мб
Скачать
☆

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

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

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

= .

Рис 1.3

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

= = , (1.10)

= = . (1.11)

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

= = ,

= = .

Из (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)

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

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

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

Далее процедура деления отрезка [a1, b1] повторяется с использованием формул (1.12) или (1.13).

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

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

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

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*).

Пример 1.5.

Методом золотого сечения решим задачу, рассмотренную ранее: f(x) = x4 + e –xmin, x  [0, 1], = 0.1.

Результаты вычислений приведены в табл. 1.6.

Таблица 1.6

Номер

итерации

a

b

n

x1

x2

f(x1)

f(x2)

Сравнение

f(x1) и f(x2)

1

2

3

4

5

0

0.382

0.382

0.382

0.472

1

1.000

0.764

0.618

0.618

0.5

0.309

0.191

0.118

0.073

0.382

0.618

0.528

0.472

0.618

0.764

0.618

0.528

0.704

0.685

0.668

0.673

0.685

0.807

0.685

0.668

f(x1) > f(x2) f(x1) < f(x2)

f(x1) < f(x2)

f(x1) > f(x2)

Вычисления прекращаются после 5-ой итерации, так как требуемая точность достигнута (0.073 < 0.1).

Таким образом, x*  0.55 и f(x*)  0.67.