Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Mathcad - УМКД_ПМС_Лабораторная работа_3 2012

.pdf
Скачиваний:
43
Добавлен:
23.03.2016
Размер:
701.73 Кб
Скачать
i= 1, 2, ... , p j = 1, 2, ... , q

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

Решение задач оптимизации в программной среде MathCad

Цели работы: Решение задач условной оптимизации.

Использование специальных функций MathCad для решения задач оптимизации.

1.1 Решение задачи условной оптимизации.

Рассмотрим следующую общую задачу нелинейного программирования: Минимизировать F(x) при ограничениях:

φi(x) = 0

ψj(x) 0

где x = x1, x2 , ... , xn

Ограничения в виде неравенства ψj(x) 0

- называется активным, или связывающим, в точке (x'), если ψj(x') = 0,

- и называется неактивным, или не связывающим, в точке (x'), если ψj(x') < 0,

где (x') - допустимая точка, то есть удовлетворяющая всем ограничениям.

Пример 1.1 Оптимизация с использованием встроенных функций Maximize() и Minimize()

Найти минимум или максимум целевой функции в Mathcad удобно с использованием функций для минимизацииMinimize()

или максимизации Maximize().

Найдем миниум функции цели, соблюдая ограничения задачи

F(x1,x2) := x12 - x2

φ1(x1,x2) := x1 + x2 - 6

где

 

φ1(x1,x2) = 0

ψ1(x1,x2) := -x1 + 1

где

 

ψ1(x1,x2) 0

ψ2(x1,x2) := x12 + x22 - 26

где

 

ψ2(x1,x2) 0

x1

4

- начальные приближения для искомых переменных.

 

 

:=

 

x2

8

При применении функций Minimize()/Maximize() в блоке решения [Given ... Minimize()/Maximize()] должны

 

 

 

 

 

 

 

 

быть заданы только ограничения,

 

 

 

 

 

 

сама оптимизируемая функция F(x) указывается непосредственно в функции Minimize()/Maximize().

Given

 

 

Если условия/ограничения отсутствуют, то ключевое слово Given не используется.

 

 

 

 

 

 

 

 

φ1(x1,x2) = 0

При формировании ограничений вида равенства или неравенства

 

шаблоны знаков равенства =, больше >, меньше <,

 

ψ1(x1,x2) 0

больше или равно

, меньше или равно

 

ψ2(x1,x2) 0

следует брать из панели булевские

 

Для повышения точности полученного результата выполнить команду Инструменты/Параметры документа.

Выбрать вкладку Встроенные переменные;

 

 

 

для переменных TOL и CTOL задать значения 0.0000001

 

 

 

 

 

 

 

 

Для получения формата результата, представленного в образце

Нахождение минимума и присвоение искомым

установить курсор в блок с выведенным результатом;

вызвать команду Формат/Результат; выбрать вкладку Формат числа;

переменным найденных значений:

 

задать формат Десятичный, число десятичных знаков 5

 

 

 

 

 

 

 

x1

 

 

 

 

 

 

 

 

:= Minimize(F,x1,x2)

 

x1

1

 

x2

 

 

 

 

 

 

 

 

 

 

=

 

 

 

 

 

 

 

x2

5

Проверим полученную точку на соблюдение ограничений

φ1(x1,x2) = 0

ψ1(x1,x2) = -5.093 10- 8

ψ2(x1,x2) = -4.074 10- 7

Для анализа функции цели в окрестности точки решения получим графическое отображение функции цели

Графическое отображение минимизируемой функции F(x) и ограничений φ112

при помощи графика поверхности:

 

 

Для отображения графика в соответствующем рисунку виде

 

 

вставьте шаблон График поверхности, в нижнем углу

 

 

шаблона перечислите имена вставляемых функций.

 

 

Откройте окно форматирования диаграммы,

 

 

на вкладке Дополнительно выберите Карту цветов

 

 

Радуга.

 

 

 

Для График2, График3, График4 задайте на этой вкладке

 

 

Блеск 0,

 

 

 

%прозрачности

60.

 

 

На вкладке Оформление для каждого из графиков с

 

 

График1 по График4 задайте

 

 

в области Параметры заливки

 

 

опцию Заливка контуров

 

 

 

 

F,φ1,ψ1,ψ2

Пример 2 - Оптимизация с использованием функций Maximize()/Minimize()

Найти максимумы и минимумы функции

(x22 - 0.5)2

F(x1,x2) := sin(x1 + x2) -

0.132

 

 

на заданном интервале изменения переменных:

0 x1 7

-1 x2 0.5

Для оценки поведения функции цели полезно построить график линий уровня и график поверхности

для функции цели в заданном интервале:

Для отображения графика в соответствующем рисунку виде вставьте

 

 

 

 

шаблон График поверхности,

 

 

 

 

в нижнем углу шаблона перечислите имена вставляемых функций.

 

 

Откройте окно форматирования диаграммы,

 

 

на вкладке Общиедля График1 выберите График поверхности,

 

 

для График 2 - Линии уровня;

 

 

на вкладке Дополнительно выберите Карту цветов Радуга.

 

 

На вкладке Данные быстрого графика

 

 

задайте для каждого из графиков в областях дискретных значений

 

 

диапазоны изменения переменных.

 

 

Область 1 соответствует диапазону изменения x1,

 

 

0 x1 7

 

 

 

область 2 соответствует x2 -1 x2 0.5

 

F,F

Проверьте, чтобы на этой вкладке в области Система координат

 

было отмечено Декартовы.

 

 

 

На вкладке Оформление для каждого из графиков График1 и

 

 

График2 задайте в области Параметры заливки

 

 

опцию Заливка контуров

 

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

Переведите в режим отображения линий уровня.

На вкладке Специальная снять отметку с опции Автоматический контур и

отметить опцию Нумерация.

F

Проведем поиск минимумов и максимумов функции при помощи встроенных функций MathCad

Для решения примера 2 удобно использовать функции Maximize()/Minimize(), которые позволяют найти локальный максимум/минимум. В этом случае нет необходимости в явном вычислении производных, т.к. встроенные функции имеют свои средства для проверки экстремумов.

Начальные

 

 

 

Решение и

 

 

 

 

 

 

Значение целевой функции

приближения

 

 

результат:

 

 

 

 

 

 

в точке решения:

из графика:

 

 

 

 

 

 

 

 

 

 

x1

 

4.5

x1

 

 

 

 

4.712

 

 

 

 

 

 

 

 

 

 

 

 

:=

 

 

 

 

:= Minimize(F,x1,x2)

=

 

-2.165 10

- 11

 

F(x1,x2) = -2.894

x2

 

0.1

x2

 

 

 

 

 

 

x1

 

2.2

 

x1

 

 

 

2.278

 

 

F(x1,x2) = 1

 

:=

 

 

 

 

:= Maximize(F,x1,x2) =

 

 

 

 

x2

 

-0.7

 

x2

 

 

-0.707

 

 

 

1.3 Тестирование встроенных функций Maximize() и Minimize()

Тестовая функция Пауэлла (при x1' =0, x2' = 0, x3' =0, x4' = 0, значение F(x1', x2', x3', x4') = 0 ):

Pauell(x1,x2,x3,x4) := (x1 + 10 x2)2 + 5 (x3 - x4)2 + (x2 - 2 x3)4 + 10 (x1 - x4)4

Pauell(0,0,0,0) = 0

x1

 

0.1

x1

 

 

0.025

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-2.462 10- 3

 

x2

:=

0.2

 

x2

:=

x3

0.3

 

x3

Minimize(Pauell,x1,x2,x3,x4) =

 

 

 

 

 

0.012

 

 

 

 

 

 

 

 

 

 

 

 

x4

 

0.4

x4

 

0.012

 

 

 

 

Pauell(x1,x2,x3,x4) = 7.258 10- 7

Задания для самостоятельного решения

Пример С.1 На минимизацию с использованием встроенных функций Mathcad Minimize() и Maximize()

Минимизировать

F(x1, x2, x3) = 1000 - x12 - 2x22 -x32 - x1x2

при ограничениях:

x12 + x22 + x32 - 25 = 0 8x1 + 14x2 + 7x3 - 56 = 0 x1 ≥ 0

x2 ≥ 0 x3 ≥ 0

Решите пример используя встроенные функции Mathcad:

[Given ... Minimize()/Maximize()].

Пример С.2 На минимизацию с использованием встроенных функций Mathcad Minimize() и Maximize()

Найти максимальное и минимальное значение функции

F(x1,x2):= sin(x1)+ sin(x2)- sin(x1 x2)

заданной в интервале независимых переменных

-3 x1 3

-4 x2 4

Решите пример используя встроенные функции Mathcad: [Given ... Minimize()/Maximize()].

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]