Решение задач нелинейного программирования методом «золотого сечения»

Метод золотого сечения — метод поиска значений действительно-значной функции на заданном отрезке. В основе метода лежит принцип деления в пропорциях золотого сечения. Наиболее широко известен как метод поиска экстремума в решении задач оптимизации

Пусть задана функция Решение задач нелинейного программирования методом «золотого сечения» - student2.ru . Тогда для того, чтобы найти определённое значение этой функции на заданном отрезке, отвечающее критерию поиска (пусть это будет минимум), рассматриваемый отрезок делится в пропорции золотого сечения в обоих направлениях, то есть выбираются две точки Решение задач нелинейного программирования методом «золотого сечения» - student2.ru и Решение задач нелинейного программирования методом «золотого сечения» - student2.ru такие, что:

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Иллюстрация выбора промежуточных точек метода золотого сечения.

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru , (2.1.1)

где Решение задач нелинейного программирования методом «золотого сечения» - student2.ru — пропорция золотого сечения.

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

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (2.1.2)

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (2.1.3)

То есть точка Решение задач нелинейного программирования методом «золотого сечения» - student2.ru делит отрезок Решение задач нелинейного программирования методом «золотого сечения» - student2.ru в отношении золотого сечения. Аналогично Решение задач нелинейного программирования методом «золотого сечения» - student2.ru делит отрезок Решение задач нелинейного программирования методом «золотого сечения» - student2.ru в той же пропорции. Это свойство и используется для построения итеративного процесса.

Алгоритм применения метода «золотого сечения».

1) На первой итерации заданный отрезок делится двумя симметричными относительно его центра точками и рассчитываются значения в этих точках.

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

3) На следующей итерации в силу показанного выше свойства золотого сечения уже надо искать всего одну новую точку.

4) Процедура продолжается до тех пор, пока не будет достигнута заданная точность.

Формализация

1. Шаг 1. Задаются начальные границы отрезка Решение задач нелинейного программирования методом «золотого сечения» - student2.ru и точность Решение задач нелинейного программирования методом «золотого сечения» - student2.ru .

2. Шаг 2. Рассчитывают начальные точки деления:

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (2.1.4)

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (2.1.5)

и значения в них целевой функции:

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (2.1.6)

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (2.1.7)

Если Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (для поиска max изменить неравенство на Решение задач нелинейного программирования методом «золотого сечения» - student2.ru ), то Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Иначе Решение задач нелинейного программирования методом «золотого сечения» - student2.ru .

3. Шаг 3.

Если Решение задач нелинейного программирования методом «золотого сечения» - student2.ru , то Решение задач нелинейного программирования методом «золотого сечения» - student2.ru и останавливаемся.

Иначе возврат к шагу 2.

Решение задач нелинейного программирования методом Фибоначчи.

В силу того, что в асимптотике Решение задач нелинейного программирования методом «золотого сечения» - student2.ru , метод золотого сечения может быть трансформирован в так называемый метод чисел Фибоначчи. Однако при этом в силу свойств чисел Фибоначчи количество итераций строго ограничено. Это удобно, если сразу задано количество возможных обращений к функции.

Алгоритм применения метода Фибоначчи.

Шаг 1. Задаются начальные границы отрезка Решение задач нелинейного программирования методом «золотого сечения» - student2.ru и число итераций n, рассчитывают начальные точки деления:

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (2.2.1)

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (2.2.2)

и значения в них целевой функции:

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (2.2.3)

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru (2.2.4)

Шаг 2.

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Если Решение задач нелинейного программирования методом «золотого сечения» - student2.ru ,то Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Иначе Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Шаг 3.

Если Решение задач нелинейного программирования методом «золотого сечения» - student2.ru , то Решение задач нелинейного программирования методом «золотого сечения» - student2.ru и останавливаемся.

Иначе возврат к шагу 2.

Пример решения задач линейного программирования методом Фибоначчи представлен в задаче № 2 *

Задача № 2.

Пример решения задач нелинейного программирования методом Фибоначчи.*

Найти min функции f(x) = 23x2-25x-37 на отрезке [0;45] за 8 шагов.

Решение.

Fn+2 = F10 = 55;

Fn+1 = F9 = 34;

Fn = F8 = 21;

Fn-1 = F7 = 13;

Fn-2 = F6 = 8;

Fn-3 = F5 = 5;

Fn-4 = F4 = 3;

Fn-5 = F3 = 2;

Fn-6 = F2 = 1;

Fn-7 = F1 = 1.

Итерация 1.

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Итерация 2.

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Итерация 3.

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Итерация 4.

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Итерация 5.

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Итерация 6.

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Итерация 7.

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Итерация 8.

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Решение задач нелинейного программирования методом «золотого сечения» - student2.ru

Ответ: min f(x)= -41,98

Заключение

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

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

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

Наши рекомендации