Мегаобучалка Главная | О нас | Обратная связь


Безусловная и условная минимизация функции многих переменных с использованием систем MATCAD



2015-12-15 1075 Обсуждений (0)
Безусловная и условная минимизация функции многих переменных с использованием систем MATCAD 0.00 из 5.00 0 оценок




Цель работы:знакомство с задачей безусловной и условной минимизации функции многихпеременныхвсистеме MATCAD.

Введение.Данная задача может быть решена с помощьюсистемы MATCAD .В этой системе существуют различные встроенные функции, позволяющие с той или иной точностью решить поставленную задачу.

 

1. Постановка задачи.

Дана функция y= f(X), на которую накладываются ограничениями в форме равенств и неравенств. ( ) . Требуется найти минимум функции, используя возможности системы MATCAD.

 

2. Метод решения в системе MATCAD.

В данной системе имеется встроенная функция Minimize(X), которая производит вычисления на основе алгоритмов оптимизации, не требующих вычисления производных функции f(X), что позволяет решать задачи, в которых вычисления производных по тем или иным причинам невозможно.

Функция Minimize(X) должна использоваться в составе блока решения, открываемого директивой Given, и возвращает вектор неизвестных , при которых заданная функция имеет минимальное значение. Внутри блока могут быть различные ограничительные условия в виде равенств или неравенств. Перед блоком решения надо задать начальные значения искомых переменных.

Примечание. При поиске минимума « овражистой» функции ( примером может служить функция Розенброка f(X)=100( x2 –x12) 2+ (1-x1)2 ) результаты решения сильно зависят от выбора начальных значений переменных. хi.

Другой способ решениявсистеме MATCAD задач безусловной минимизации функции многихпеременныхреализуютсяспомощью функции MinErr (p, q, ...), которая также должна использоваться в составе блока решения, открываемого директивой Given. Функции MinErr возвращает вектор неизвестных , при которых заданная функция имеет минимальное значение. При этом внутри блока решения обязательно д.б. заданы необходимые условия существования экстремума в следующем виде:

( более подробно см. приложение 4)

 

Данный способ также имеет недостатки при поиске минимума « овражистой» функции , т. е. решение зависит от выбора начальных значений вектора переменных . Поэтому наилучшим способом получения наиболее точного решения для любых функций f(X) в системе MATCAD является возможность программирования любого известного численного метода поиска минимума функции многихпеременных. В качестве примера возьмем метод деформированного многогранника(метод Нелдера —Мида). Напомним его основные положения.

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

Суть метода заключается в последовательном перемещении и деформировании симплекса вокруг точки экстремума.

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

Параметрами метода являются:

· коэффициент отражения α > 0, обычно выбирается равным 1.

· коэффициент сжатия β > 0, обычно выбирается равным 0,5.

· коэффициент растяжения γ > 0, обычно выбирается равным 2.

Алгоритм метода.

1. «Подготовка». Вначале выбирается n+1 точка Xi =( xi(1),xi(2),…,xi(n)),

i=1,..., n+1 образующие симплекс n-мерного пространства. В этих точках вычисляются значения функции: f1=f(X1), f2=f(X2), … , fn+1=f(Xn+1).

2. «Сортировка». Из вершин симплекса выбираем три точки: Xh с наибольшим (из выбранных) значением функции fh, : Xg со следующим по величине значением fg и XL с наименьшим значением функции fL . Целью дальнейших манипуляций будет уменьшение по крайней мере fh.

3. Найдём центр тяжести всех точек, за исключением Xh: .

4. «Отражение». Отразим точку Xh относительно Xc с коэффициентом α (при α = 1 это будет центральная симметрия, в общем случае — гомотетия), получим точку Xr и вычислим в ней функцию: fr = f(Xr). Координаты новой точки вычисляются по формуле:

Xr = (1 + α) Xc − α Xh .

5. Далее смотрим, насколько нам удалось уменьшить функцию, ищем место fr в ряду fL, fg. fh.

Если fr < fL, то направление выбрано удачное и можно попробовать увеличить шаг. Производим «растяжение». Новая точка Xe = (1 − γ) Xc + γ Xr и значение функции fe = f(Xe).

Если fe < fL, то можно расширить симплекс до этой точки: присваиваем точке Xh значение Xe и заканчиваем итерацию (на шаг 9).

Если fe > fL, то переместились слишком далеко: присваиваем точке Xh значение Xr и заканчиваем итерацию (на шаг 9).

Если fL < fr < fg то выбор точки неплохой (новая лучше двух прежних). Присваиваем точке Xh значение Xr и переходим на шаг 9.

Если fh > fr > fg, то меняем местами значения Xr и Xh. Также нужно поменять местами значения fr и fh. После этого идём на шаг 6.

Если fr > fh, то просто идём на следующий шаг 6.

В результате (возможно, после переобозначения) fr > fh > fg> fl.

6. «Сжатие». Строим точку Xs = β Xh + (1 − β) Xc и вычисляем в ней значение fs = f(Xs).

7. Если fs < fh, то присваиваем точке Xh значение Xs и идём на шаг 9.

8. Если fs > fh, то первоначальные точки оказались самыми удачными. Делаем «глобальное сжатие» симплекса — гомотетию к точке с наименьшим значением Xl:

 

Xi= Xi+( Xi- XL )/2

 

9. Последний шаг — проверка сходимости. Суть проверки заключается в том, чтобы проверить взаимную близость полученных вершин симплекса, что предполагает и близость их к искомому минимуму. Если требуемая точность ещё не достигнута, можно продолжить итерации с шага 2.

4. Текст программы.

 

Смотри приложение №4.

 

Задание.

Используя возможности системы MATCADнайти минимум следующих функций:

I. Задача безусловной оптимизации.

1) f(X)=x12+ x22 +x32+ x1–x1 *x2-2x3

2) f(X)=100( x2 –x12) 2+ (1-x1)2

3) f(X)=( x2 –x12) 2+ (1-x1*x2)2

4) f(X)=5x12+ x22 + 4x1 *x2-16x1-12x2

5) f(X)=x12+ 2x22 +3x32+10 x1–6x1 *x3-20x3

 

II. Задача условной оптимизации.

1) f(X)=x12+ x22 + 0.5x1 *x2

x1+ x2 –1=0

2) f(X)=100( x2 –x12) 2+ (1-x1)2

x1+ x2 –1=0

3) f(X)= 3x22 -11x1-3x2 -x3

x1-7x2 +3x3+7<=0

5 x1+2x2 –x3–2<=0

x3>=0

 

4) f(X)= 4/x1+ 9/x2 +x1+x2

x1+x2–6<=0

x1>=0

x2>=0

5) f(X)= 4/x1+ 9/x2 +x1+x2

x1+x2–4<=0

x1>=0

x2>=0

Лабораторная работа №5

 



2015-12-15 1075 Обсуждений (0)
Безусловная и условная минимизация функции многих переменных с использованием систем MATCAD 0.00 из 5.00 0 оценок









Обсуждение в статье: Безусловная и условная минимизация функции многих переменных с использованием систем MATCAD

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1075)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)