
- •2.2 Умови існування екстремуму функції однієї змінної
- •2.3 Класифікація методів одновимірної оптимізації
- •2.4 Метод Свена для встановлення інтервала пошуку
- •2.5 Методи розв’язку задач одновимірної оптимізації шляхом виключення інтервалів
- •2.5.1 Правило виключення інтервалів
- •2.5.2 Метод загального перебору
- •2.5.3 Метод ділення інтервалу пошуку на половину
- •2.5.4 Метод золотого січення
- •2.5.5 Метод Фібоначчі
- •2.6 Методи поліноміальної апроксимації та точкової оцінки
- •2.6.1 Метод з використанням квадратичної апроксимації. Метод Пауела
- •2.6.2 Метод з використанням кубічної апроксимації
- •2.7 Методи з використанням похідних
- •2.7.1 Метод Ньютона-Рафсона
- •2.7.2 Приклад застосування методу Ньютона- Рафсона
- •2.7.3 Метод січних (хорд)
- •2.8 Порівняльна характеристика та особливості застосування і програмної реалізації методів одновимірної оптимізації
2.5.3 Метод ділення інтервалу пошуку на половину
Метод поділу інтервалу пошуку наполовину дозволяє зменшити інтервал пошуку в два рази при кожній ітерації[3,5] .
Алгоритм застосування данного методу наведений нижче. Отже необхідно знайти мінімум F(х) на відрізку [a, b].
Крок 1. xm=(а+b)/2; L=b-a; обчислити F(xm).
Крок 2. x1=а+L/4; x2=b-L/4; обчислити F(x1) і F(x2).
Крок 3.
Якщо F(x1)<F(xm), то виключити (xm, b], тобто b=xm, xm=x1. Перейти до кроку 5.
Якщо F(x1)> F(xm), то перейти до кроку 4.
Крок 4.
Якщо F(x2)<F(xm), то виключити [a, xm), тобто а=xm, xm=x2. Перейти до кроку 5.
Якщо F(x2)> F(xm), то виключити [a, x1)][ і (x2, b], тобто а=x1, b=x2. Перейти до кроку 5.
Крок 5. L=b-a. Якщо L < то закінчити пошук. В іншому випадку повернутися до кроку 2.
Рис.2.4. Метод загального пошуку
Як слідує з алгоритму, з кожних трьох значень цільової функції F(х), обчислених в інтервалі пошуку, надалі використовується тільки дві, а третя не дає додаткової інформації і надалі не використовується, це є недоліком методу ділення інтервалу на половину . В методі золотого січення цільова функція обчислюється в точках інтервалу, які розташовані таким чином, щоб кожне обчислене значення цільової функції давало б нову корисну інформацію.
2.5.4 Метод золотого січення
Основна
ідея методу
золотого січення [3,5]
полягає в
тому, що
інтервал пошуку ділиться на дві частини
так, щоб відношення
довжини великого відрізка до довжини
всього інтервалу було таке, що дорівнює
відношенню
(рис.2.5)
.
Враховуючи, що z1+z2=z, отримаємо:
z12=z z2 = (z1+z2)z2 = z1z2 + z22. (2.4)
Перепишемо рівняння 2.4 в наступному вигляді:
z1z2 + z22 - z12 = 0, (2.5)
Розділимо
ліву частину рівняння на
і
тоді будемо мати:
,
або
.
Отриманий
вираз є квадратним рівнянням, якщо
позначити
.
Рис.2.5. Позначення використані в методі золотого січення
,
де
.
Розв’яжемо
відповідне рівняння і отримаємо параметр
відношення
,
який позначимо через
.
Отже, розв’язок
рівняння
,
,
,
,
.
В результаті, отримаємо інтервал невизначеності з двома точками та відповідними значеннями функції (рис.2.6).
Проаналізуємо отриману ситуацію. В методі золотого січення, де можливі два варіанти отриманих ситуацій.
Перша, якщо
<
- (Рис.2.7).
>
,
,
,
,
=
,
.
Рис.2.6
Рис.2.7
Другий випадок,
коли
>
(Рис.2.6),
тоді:
<
,
,
,
=
,
.
В першому випадку
новим інтервалом пошуку буде
,
а в другому -
.
Алгоритм застосування методу „золотого січення” наведено нижче.
Крок
1.
Обчислюємо коефіцієнт дроблення відрізка
[a,
b]
k=(-
1)/2.
Крок 2. x1=а+(1-k)(b-a), обчислити F(x1).
Крок 3. x2=а+k(b-a), обчислити F(x2).
Крок 4.
Якщо x2-x1| < , де - задана точність, то xm = (x1+x2)/2, обчислити F(xm) і закінчити пошук.
Якщо x2-x1| > , то перейти до кроку 5.
Крок 5.
Якщо F(x1)>F(x2), то виключити а = x1, x1 = x2 і F(x1) = F(x2). Перейти до кроку 3, потім до кроку 4.
Якщо F(x1) < F(x2), то b = x2, x2=x1 і F(x1)=F(x2). Перейти до кроку 2 і 4.
Приклад.
Мінімізувати функцію
на інтервалі
.
Для того, щоб
перейти до інтервалу одиничної довжини,
зробимо заміну змінних, поклавши
.
Таким чином, задача прийме наступний
вигляд:
мінімізувати
,
при обмеженні
.
Ітерація 1.
;
.
Проведемо два перших обчислення значення
функції:
,
,
,
.
Оскільки
і
,
інтервал
виключається.
Ітерація 2.
;
.
Наступне обчислення функції проводиться
в точці
,
.
Оскільки
і
,
інтервал
виключається.
Ітерація 3.
,
.
Наступне обчислення функції проводиться
в точці, розміщеній на віддалі
(довжина
отриманого проміжка) від лівої границі
точки інтервала, або на віддалі
(довжина
інтервала) від правої граничної точки.
Таким чином,
.
.
Оскільки
і
,
інтервал
виключається.
В результаті
отримано наступний інтервал невизначеності
для змінної
,
або
для змінної
.
Якщо в процесі
пошуку проведено шість обчислень значень
функції, то довжина результуючого
інтервала для змінної
рівна
,
що відповідає інтервалу довжиною 8.1 для
змінної
.
Для порівняння, в аналогічній ситуації
методу ділення інтервала наполовину
отримано інтервал довжиною 11.25.