Курсовая работа: Программная модель поиска глобального минимума нелинейных "овражных" функций двух переменных
Начальные точки: х1 = -0,5; х2 = -1. Пробный шаг g = 0,01. Коэффициент пробного шага h = 0,1. Погрешность е = 0,01.
Решение. В начальных точках х1=-0,5, х2=-1 вычислим по методу градиента значение функции, градиент поля функции, значение переменных в шаге и величину шага. Полученные данные занесем в таблицу и поставим номер шага. Затем по формуле xi+1 = xi – h*(dR/dxi) найдем новые значения переменных х1 и х2 и вычислим значение функции. Последние операции будем повторять до тех пор, пока значение функции не начнет возрастать. Когда это случится, предыдущее значение функции будем считать локальным минимумом. Вычислим значения градиента поля, модуль градиента, занесем результаты в таблицу и укажем следующий номер шага.
Все вычисления закончим, когда значение модуля градиента будет меньше или равно значению погрешности. Результаты решения приведены в таблице 2.
Таблица 2
Результаты решения контрольной задачи
Х1 | X2 | dR/dx1 | DR/dx1 | |R| | R(X) | №Шага |
-0,5 | -1 | -2,2499 | -8 | 8,310358 | 7,375 | 1 |
-0,27501 | -0,2 | 1,684231 | ||||
-0,05002 | 0,6 | -1,53007 | ||||
0,17497 | 1,4 | -2,19955 | ||||
0,17497 | 1,4 | -2,90806 | 1,6 | 3,319155 | -2,19955 | 2 |
0,465776 | 1,24 | -3,18108 | ||||
0,756581 | 1,08 | -3,82387 | ||||
1,047387 | 0,92 | -3,98036 | ||||
1,047387 | 0,92 | 0,291158 | -0,32 | 0,432635 | -3,98036 | 3 |
1,018271 | 0,952 | -3,99438 | ||||
0,989155 | 0,984 | -3,99914 | ||||
0,989155 | 0,984 | -0,06462 | -0,064 | 0,090946 | -3,99914 | 4 |
0,995617 | 0,9904 | -3,99976 | ||||
1,002078 | 0,9968 | -3,99997 | ||||
1,002078 | 0,9968 | 0,012583 | -0,0128 | 0,017949 | -3,99997 | 5 |
1,00082 | 0,99808 | -3,99999 | ||||
0,999562 | 0,99936 | -4 | ||||
0,999562 | 0,99936 | -0,00253 | -0,00256 | 0,003599 | -4 | 6 |
Проанализировав результаты в таблице 2, мы видим, что если не учитывать промежуточные значения, минимум функции R(x) найден на 6-ом шаге. Если сравнить результаты, полученные при поиске минимума методом градиента и методом наискорейшего спуска, мы заметим, что метод наискорейшего спуска оправдывает свое название, т.к. минимум функции найден на 6-ом шаге, а метод градиента найдет этом минимум только на 15-ом. Отсюда вывод, метод наискорейшего спуска также эффективен, но работает гораздо быстрее.
Заключение
Универсального метода (алгоритма), с помощью которого можно было бы успешно решать разнообразные задачи оптимизации, не существует. Поэтому для решения каждого конкретного класса задач используют (и, как правило, не один) «свой» численный метод. Следует помнить, что эффективность численного решения зависит от того, насколько полно и точно отражается в применяемом методе специфика данной задачи, ее «индивидуальные» особенности. Данную программную модель рекомендуется использовать для поиска глобального минимума нелинейных «овражных» функции двух переменных.
Конечно, на этом можно было бы и остановиться. Метод успешно работает, довольно быстро находит минимум функции, но этот поиск можно было бы еще ускорить. Следует разработать способ выбора овражного шага, т.е. величина шага должна меняться от этапа к этапу в зависимости от расположении локального минимума функции. Эффективность рассмотренного метода возросла бы еще больше, т.к. метод зависит от величин овражных шагов h1, h2. Но здесь есть свои трудности, если овражный шаг слишком велик, то можно довольно далеко отойти от линии «дна оврага»; если же этот шаг мал, то продвижение будет незначительным. Величину шага нужно подбирать эмпирически, учитывая известные свойства минимизируемой функции.
Литература
1. Юдин Д.Б., Юдин А.Д. «Число и мысль» М.: Знание, 2005. С.190
2. Немировский А.С., Юдин Д.Б. «Информационная сложность математического моделирования» Изв. АНСССР. Тех. Кибернетика. 2003 №1 С.88-117
3. Уайнд Д. «Методы поиска экстремума». М.: Наука, 2007. С.267
4. Гельфонд И.М., Цетлин М.Л. «О некоторых способах управления сложными системами». УМН, 2002. Т.27. С.3-26
5. Федоренко Р.П. «Об одном алгоритме решения задач математического программирования». Журнал вычислительная математика, 2006. Т.22 №6 С.1331-1343
6. Поляк Б.Т. «Введение в оптимизацию» М.: Наука, 2003. С.384
7. Ногин В.Д. «Основы теории оптимизации» М.: Знание, 2007. С99-122
8. Ларичев О.И., Горвиц Г.Г. «Методы поиска локальных экстремумов овражных функций» М.: Наука, 2003. С.5-12
Приложение
Код модуля
Option Explicit
Dim i, s, j, h1, h2
Sub Кнопка2_Щелкнуть()
Form1.Show 'Ввод исходных данных
End Sub
Sub Кнопка3_Щелкнуть()
j = 1
i = 2 'Номер шага(этапа)
Do'Цикл нахождения минимума функции
h1 = Range("aa3") 'Присвоение переменным
h2 = Range("aa4") 'h1,h2 значения шага
Do