Метод золотого перетину
Метод золотого перетину — метод пошуку екстремуму дійсної функції однієї змінної на заданому відрізку. В основі методу лежить принцип поділу відрізка в пропорціях золотого перетину. Є одним з найпростіших чисельних методів розв'язку задач оптимізації. Вперше представлений Джеком Кіфером у 1953 році.
Опис методу
Нехай задано функцію . Тоді для того, щоб знайти невизначене значення цієї функції на заданому відрізку, що відповідає критерію пошуку (нехай це буде мінімум), розглянутий відрізок ділиться в пропорції золотого перетину в обох напрямках, тобто вибираються дві точки та такі, що:
- , де — пропорція золотого перетину.
Таким чином:
Тобто точка ділить відрізок у відношенні золотого перерізу. Аналогічно ділить відрізок у тій же пропорції. Ця властивість і використовується для побудови ітеративного процесу.
Алгоритм
- На першій ітерації заданий відрізок ділиться двома симетричними відносно центру точками і розраховуються значення в цих точках.
- Після чого той з кінців відрізка, до якого серед двох знову поставлених точок ближче виявилася та, значення в якій максимальне (для випадку пошуку мінімуму), відкидають.
- На наступній ітерації в силу показаній вище властивості золотого перетину вже треба шукати лише одну нову точку.
- Процедура триває до тих пір, поки не буде досягнута задана точність.
Формалізація
- Крок 1. Задаються початкові межі відрізка і точність .
- Крок 2. Розраховують початкові точки поділу: і значення в них цільової функції: .
- Якщо (для пошуку максимуму змінити нерівність на ), то
- Інакше .
- Крок 3.
- Якщо , то і зупинитися.
- Інакше повернутися до кроку 2.
Метод чисел Фібоначчі
В силу того, що в асимптотиці метод золотого перетину може бути трансформований у так званий метод чисел Фібоначчі. Однак при цьому в силу властивостей чисел Фібоначчі кількість ітерацій строго обмежена. Це зручно, якщо відразу задано кількість можливих звернень до функції.
- Крок 1. Задаються початкові межі відрізка і кількість ітерацій , розраховують початкові точки поділу: цільової функції: .
- Крок 2. .
- Якщо , то .
- Інакше .
- Крок 3.
- Якщо , то і зупинитися.
- Інакше повернутися до кроку 2.
Література
- Акулич И. Л. Математическое программирование в примерах и задачах: Учеб. пособие для студентов эконом. спец. вузов. — М. : Высш. шк., 1986.
- Гилл Ф., Мюррей У., Райт М. Практическая оптимизация. Пер. с англ. — М. : Мир, 1985.
- Джон Г. Мэтьюз, Куртис Д. Финк. Численные методы. Использование MATLAB. — 3-е издание. — М.—СПб., : Вильямс, 2001. — С. 716.
- Загорулько А. В. Чисельні методи у механіці. — Суми : СумДУ, 2008. — 185 с.
- Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. — М. : Наука, 1970. — С. 575—576.
- Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. — М. : Наука, 1973. — С. 832 с илл..
- Коршунов Ю. М. Математические основы кибернетики. — М. : Энергоатомиздат, 1972.
- Максимов Ю. А., Филлиповская Е. А. Алгоритмы решения задач нелинейного программирования. — М. : МИФИ, 1982.
- Максимов Ю. А. Алгоритмы линейного и дискретного программирования. — М. : МИФИ, 1980.