Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Малинин / МУЛР.doc
Скачиваний:
55
Добавлен:
15.04.2015
Размер:
2.22 Mб
Скачать

1.3. Минимизация многомерной функции при наличии линейных ограничений на основе метода Давидона-Флетчера-Пауэлла

.

Имеются ограничения:

Ξ

.

Ξ

Ранее (без ограничений) матрица была единичной, теперь она рассчитывается по формуле:

Ξ

Ξ

Ξ

Ξ

Ξ

Ξ

Ξ

Ξ

Ξ

Ξ

Порядок выполнения работы

  1. Ознакомиться с методическими указаниями к лабораторной работе.

2.Составить блок схему алгоритма программы.

3.Сформировать функцию многих переменных для решения уравнения.

4.Выполнить программу на ЭВМ.

5.Оформить отчет.

2. Учебный пример выполнения лабораторной работы

2.1. Минимизация многомерных функций

1. Перед выполнением учебных примеров необходимо изучить теоретический материал.

2. Открыть программу lor2a.exe–”Минимизация функции многих переменных (демонстрационная программа)”.Диалоговое меню программы имеет следующие пункты:

  1. просмотр функции в целом [для всех вариантов она имеет вид

F = (x12 + x2 - 11)2 + (x1 + x22 - 7)2]);

  1. просмотр функции по квадрантам;

  1. метод золотого сечения;

  2. метод квадратичной аппроксимации;

  3. задание/снятие ограничений.

Просмотреть график функции (с линиями уровня) целиком и по квадрантам. Записать координаты начальной точки в тетрадь (в частности, для 1 варианта это x1 = -3,4 их2 = -3,7), которую можно просмотреть ближе, записав указанный квадрант. Уточнить координаты точки двумя методами: золотого сечения и квадратичной аппроксимации. Координаты минимума, полученные этими методами (без задания ограничений), равны:х1 = -3,779, х2 = -3,283.Можно просмотреть направление движения точки по графику, выбрав соответствующий пункт меню. В тетрадь записать координаты точки минимума, количество итераций, за которое достигнуто решение, и оптимальное значениеAlpha.

Далее накладывается ограничение на направление поиска минимума (для всех вариантов оно различно, в частности, для первого варианта имеет вид: -2х1 - 3х2 + 5 = 0). Начальные значения координат точки минимумах1 = -4, х2 = 4,3. Зарисовать в тетради направление движения точки по графику. Вдоль данного направления координаты точки минимума имеют значения:х1 = -2,557, х2 = 3,371 (метод золотого сечения дает этот результат после 2-й итерации приα= 0,002, метод квадратичной аппроксимации после 3-й итерации приα= 0,82).

3.Открыть программу lor4.exe. –”Минимизация многомерной функции. Реализация градиентного метода”.

Диалоговое меню:

  1. вычисление F(x1,x2);

  2. Grad;

  3. нормирование градиента;

  4. формирование вектора положения;

  5. выход.

Все данные заносить в таблицу, вид которой предложен в самой программе. Значения F1 иF2 получаются из значений нормированного градиента, взятых с противоположным знаком. Для взятой произвольно начальной точких1 = 4, х2 = 3 градиентный метод дает следующие результаты.

X1

X2

Alpha

F(x1,x2)

Grad F

F1

F2

4

3

0

105,5014

61,043; 27,426

-0,137

-0,061

3,863

2,939

1

95,7047

58,150; 26,086

-0,133

-0,060

3,597

2,819

2

78,0116

52,523; 23,476

-0,125

-0,055

3,222

2,654

3

56,2257

44,620; 19,820

-0,114

-0,051

2,766

2,450

4

34,4881

34,985; 15,354

-0,101

-0,044

2,261

2,230

5

16,6662

24,360; 10,443

-0,088

-0,037

1,733

2,008

6

4,9695

13,307; 5,353

-0,074

-0,030

1,215

1,798

7

0,2662

2,52; 0,404

-0,064

-0,010

0,703

1,718

8

1,6029

Видно, что минимум функции равен 0,22662 в точке (1,215; 1,798) при alphaравном 7. Результат достигнут на седьмой итерации, но если процесс поиска минимума затянулся, то через 5 шаговalphaможно увеличивать вдвое. Построить график зависимостиF=F(α).

4. Открыть программу lor.exe. –”Программа минимизации функции многих переменных”.

Система меню ориентирована на реализацию всех этапов минимизации многомерной функции методом ДФП, который может использоваться для численной реализации других методов: координатного спуска в методе Гаусса-Зейделя, наискорейшего спуска и других градиентных методов.

1. Вычисление функции F(X1, X2)(в лабораторной работе только для простоты выполнения и наглядности визуализации исходных данных и результатов оптимизации число переменныхnв целевой функции берут равным двум).

2. Вычисление GRAD(X1, X2)[реализация выражения (7)].

3. Нормирование градиента (осуществляется лишь в начальной точке поиска минимума, при дальнейших операциях эта итерация может опускаться).

4. Вычисление вектора направления [реализация выражения (3)].

5. Формирование вектора положения [реализация выражения (4)].

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

7. Золотое деление отрезка (деление отрезка на две неравные части XиY(X>Y)), при котором, где.

8. Вычисление вектора направления на второй и последующих итерациях [реализация последовательно выражений (6), (3)].

9. Поиск интервала неопределенности методом квадратичной аппроксимации [реализация выражения (10)]. Рекомендации по выбору α те же, что и в меню под номером 6.

10. Определение координаты минимума в методе квадратичной аппроксимации [реализация выражения (11)].

11. Построение графика функции (Х2– ордината,Х1- абсцисса).

12. Завершение работы.

Записать координаты начальной точки в тетрадь и начертить таблицу, как в программе lor4.exe.Проделать 2 итерации по поиску минимума функции (первые пять пунктов, т.е.,alfaпри этом равны 0 и 1 соответственно). Для дальнейшего определения значенияalfaперейти к п. 6. Найтиalfaпо предлагаемой формуле и высчитывать далее по первым пяти пунктам вектор положения с учетом нового значенияalfa. После нахождения точки минимума методом золотого сечения перейти ко второму методу. Для этого начертить еще одну такую же таблицу, переписать туда результаты первых двух итераций и перейти к п. 9 для определения значенияalfa, далее продолжить работу по пяти пунктам и по п. 9.

5. Открыть программу lor5.exe–”Программа минимизации функции многих переменных (со сбойными результатами)”.

Диалоговое меню программы имеет вид, как и у lor4.exe. Начертить в тетради исходную таблицу. Для начальной точки взять такие же координаты, как и в программеlor4.exe. Найти координаты точки минимума. При вычислении функцииFубедиться, что налицо сбойный результат (приx1 = 4,x2 = 3 значениеF = 34684,888). При выполнении работы сбой постепенно ликвидируется, но результат будет достигнут за большее количество шагов (для уменьшения количества итераций целесообразно использовать рекомендации по изменению α из предыдущего пункта). Построить график зависимостиF=F(α).

6. Открыть программу lor6.exe. - ”Программа минимизации функции многих переменных без сбойных результатов. Адаптация”.

Диалоговое меню программы имеет вид, как и у lor4.exe. Начертить в тетради исходную таблицу и найти координаты точки минимума (начальные данные такие же, как и в предыдущей программе). Сравнить результаты 5-й и 6-й программ. Построить график зависимостиF=F(α).

Отметим, что использованные в программе алгоритмы минимизации многомерных функций являются стандартными и применяются во всех известных математических пакетах, разработанных в Windows (Excel, MathCad, MathLab, Mathematica).

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

Соседние файлы в папке Малинин