Решение с помощью системы Mathcad 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Решение с помощью системы Mathcad



Зададим ЦФ:

Z(x1, x2):= (х1-7)2+ (х2-4)2

Зададим произвольные начальные значения переменным:

x1:= 0

x2:= 0

Начало блока вычислений

Given

Опишем ограничения:

х1 + х2  ≤ 10

2х1 + х2 ≥ 12

х1 – х2 ≥ 2

х1 – х2 ≤ 4

х1 ≥ 0

х2 ≥ 0

Выполним операцию минимизации:

P: = Minimize (Z, x1, x2)

Выведем на экран значения найденных переменных:

Вычислим целевую функцию:

Z (P0, P1) = 0.5

Итак, оптимальные значения переменных:

 х1 = 6,5, х2 = 3,5. Значение ЦФ Z = 0,5

 


Практическое занятие № 8

Наименование работы: Решение трехмерной задачи нелинейного программирования с помощью Mathcad

Цель работы: Научиться решать задачи нелинейного программирования с помощью Mathcad.

Формировать ОК 1 – ОК 9, овладеть знаниями и умениями, необходимыми для освоения ПК 1.1, ПК 1.2.

Подготовка к занятию: Повторить теоретический материал по теме «Нелинейное программирование»

Литература:

  1. Лобачева М.Е. Конспект лекций «Математические методы», 2015г.

Перечень необходимых приборов, инструментов, материалов: ПЭВМ

Задание на занятие:

С помощью математической системы Mathcad максимизировать целевую функцию Z, приведенную в таблице в соответствии со своим вариантом. По результатам расчета построить трехмерный график, на котором изобразить поверхности ограничений и поверхность рассчитанной ЦФ. На графике показать точку оптимума.

 

Вариант Целевая функция Ограничения
1 Z = 8х12 + 11 x22+15х3 50х1 + 26x2-20 x3 ≤ 30 1 - 20x2+6 x3 ≤ 20 -10х1 + 10x2+5 x3 ≤ 50
2 Z = 3х12 + 4x2+2х3 15х1 + 16x2-17 x3 ≤ 120 18х1 - 19x2+20 x3 ≤ 130 -21х1 + 22x2+23 x3 ≤ 140
3 Z = 13х1+ 12x2+14х3 13х12+ 18x2-19 x3 ≤ 120 24х1 - 25 х 22 +24 x3 ≤ 240 -48х1 + 30x2+49 x3 ≤ 480
4 Z = 10х1+ 20x2+30х3 -30х1+ 40 х 22 +50 x3 ≤ 70 10 х 12 - 20 х 2 +20 x3 ≤ 30 20х1 + 30x2-40 x3 ≤ 50
5 Z = 10х12+ 5x2+45х3 30 х 1+ 40 х 2 -50 x3 ≤ 70 10 х 1 - 20 х 2 +20 x3 ≤ 30 -20х1 + 30x2+40 x3 ≤ 50
6 Z = 14х12 +12х2 + 14 x3 14 х1+ 18 х 2 -19 x3 ≤ 150 21 х 1 - 25 х 2 +24 x3 ≤ 240 -48 х1 + 30 х 22 +56 x3 ≤ 180
7 Z = 15х12 +25х2 + 35 x3 30 х1+ 40 х 2 -50 x3 ≤ 70 10 х 1 - 20 х 2 +20 x3 ≤ 30 -20 х1 + 30 х 2 +40 x3 ≤ 50
8 Z = 3х1 + 4x2+2х3 15 х1 + 16 х 2 -17 x3 ≤ 120 18 х1 - 19 х 22 +20 x3 ≤ 130 -21 х12 + 22x2+23 x3 ≤ 140
9 Z = 13х12 +12х2 + 14 x3 13 х1+ 18 х2 - 19 x3 ≤ 120 24 х1 - 25 х 2 +24 x3 ≤ 240 -48 х1 + 30 х 2 +49 x3 ≤ 480
10 Z = 10х12+ 20x2+30х3 -30 х1+ 40 х 2 +50 x3 ≤ 70 10х 1 - 20 х 2 +20 x3 ≤ 30 20х1 + 30 х 2 -40 x3 ≤ 50

Примечание. Во всех вариантах считать х1≥0,  х2≥0, х3≥0.

Порядок проведения занятия:

  1. Получить допуск к работе.

2. Выполнить задание в соответствии со своим вариантом.

3. Ответить на контрольные вопросы.

Содержание отчета:

  1. Наименование, цель работы, задание;
  2. Выполненное задание;
  3. Выводы по результатам выполненного задания;
  4. Ответы на контрольные вопросы.

Контрольные вопросы для зачета:

1. Сформулируйте задачу нелинейного программирования в общем виде.

2. Опишите порядок решения задачи нелинейного программирования с помощью системы Mathcad.

ПРИЛОЖЕНИЕ

Пример выполнения задания с помощью системы Mathcad.

Зададим ЦФ:

Z(x1,x2, x3):= 3x1 + 4 х22 + 2x3

Зададим произвольные начальные значения переменным:

x1:= 0

x2:= 0

x3:= 0

Начало блока вычислений

Given

Опишем ограничения:

x1 ≥ 0

x2 ≥ 0

x3 ≥ 0

15 х12 + 16 х22-17 x3 ≤ 120

18 х12 + 19 х22+20 x3 ≤ 130

-21х12 + 22 х22+23 x3 ≤ 140

Выполним операцию максимизации:

P: = Maximize(Z,x1,x2,x3)

Выведем на экран значения найденных переменных:

Вычислим целевую функцию:

Z(P0, P1,P2) = 14.25

Итак, оптимальные значения переменных: х1 = 0.835, х2 = 0, x3 = 5,873. Максимальное значение ЦФ Z = 14.25

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

Присвоим значение ЦФ переменной R:

R:= Z(P0, P1,P2)

Создадим циклы для изменения переменных х1 и х2:

x1:=0..P0 + 5

x2:=0..P1 + 5

Выразим переменную х3 из трех ограничений и целевой функции:

 

Графическая иллюстрация полученного решения

 


Практическое занятие № 9

Наименование работы: Решение задач нелинейного программирования методом множителей Лагранжа

Цель работы: научиться решать задачи нелинейного программирования методом множителей Лагранжа. Формировать ОК 1 – ОК 9, овладеть знаниями и умениями, необходимыми для освоения ПК 1.1, ПК 1.2.

Подготовка к занятию: Повторить теоретический материал по теме «Нелинейное программирование»

Литература:

  1. Лобачева М.Е. Конспект лекций «Математические методы», 2015г.

Перечень необходимых приборов, инструментов, материалов: ПЭВМ

Задание на занятие:

Решить двухмерную задачу минимизации целевой функции Z методом множителей Лагранжа и с помощью математической системы Mathcad. Сравнить результаты и сделать вывод.

 

Вариант Целевая функция Ограничения
1 Z = 6х1+ х12 + 4х2 + x22 х1 + 2х2 = 16 х1≥0,  х2≥0
2 Z = 2х1+ х12 + 4х2 + x22 х1 + 2х2 = 10 х1≥0,  х2≥0
3 Z = х12 + 4х2 + x22 - 6х1 х1 + х2 = 8 х1≥0,  х2≥0
4 Z = 8х1+ х12 + 6х2 + x22 х1 + 2х2 = 12 х1≥0,  х2≥0
5 Z = х12 - 4х1- 2х2 + x22 х1 + х2 = 6 х1≥0,  х2≥0
6 Z = 14х1+ х12 + 10х2 + x22 х1 + х2 = 7 х1≥0,  х2≥0
7 Z =х12 - 12х1- 14х2 + x22 1 + х2 = 7 х1≥0,  х2≥0
8 Z = х12 - 6х1 -10х2 + x22 х1 + х2 = 3 х1≥0,  х2≥0
9 Z = х12 - 18х1 -12х2 + x22 1 + х2 = 16 х1≥0,  х2≥0
10 Z = х12 - 12х1 -12х2 + x22 х1 + х2 = 5 х1≥0,  х2≥0

Порядок проведения занятия:

1. Получить допуск к работе.

2. Выполнить задание в соответствии со своим вариантом.

3. Ответить на контрольные вопросы.

Содержание отчета:

  1. Наименование, цель работы, задание;
  2. Выполненное задание;
  3. Выводы по результатам выполненного задания;
  4. Ответы на контрольные вопросы.

Контрольные вопросы для зачета:

1. Перечислите методы решения задач нелинейного программирования.

2. Опишите порядок решения задачи нелинейного программирования методом множителей Лагранжа.

 

ПРИЛОЖЕНИЕ

 

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

                                     

                                   

Такую задачу называют задачей на условный экстремум или классической задачей оптимизации. Чтобы найти решение этой задачи, введем набор переменных , называемых множителями Лагранжа, составим функцию Лагранжа

,

находим частные производные   и  и рассматриваем систему   уравнений (здесь привлечём необходимое условие экстремума, заключающееся в том, что первая производная должна быть равна ):

                          

с m + n неизвестными . Всякое решение системы уравнений определяет точку , в которой может иметь место экстремум функции . Следовательно, решив систему, получают все точки, в которых функция   может иметь экстремальные значения. Дальнейшее исследование найденных точек проводят так же, как и в случае безусловного экстремума (здесь привлекается достаточное условие экстремума – если вторая производная меньше нуля, то имеет место максимум, если больше нуля - минимум).

Таким образом, определение экстремальных точек задачи нелинейного программирования методом множителей Лагранжа включает следующие этапы:

1. Составляют функцию Лагранжа.

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

3. Решая систему уравнений, находят точки, в которых целевая функция может иметь экстремум.

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

 

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

Пусть дана целевая функция Z = х12 - 20х1 - 20х2 + x22 с ограничениями:

х 1 + х 2 = 11

х 1 ≥ 0, х 2 ≥ 0

Требуется минимизировать ЦФ.

 

Чтобы найти решение методом множителей Лагранжа, вначале следует сформировать функцию Лагранжа:

F (х 1, х 2, λ) = х 12 - 20 х 1-20 х 2 + x 22+ λ (11- х 1 - х 2 )

Затем найдем производные по х 1, х 2, λ:

 

Далее найденные производные следует приравнять к нулю и решить полученную систему линейных алгебраических уравнений.

2 х 1 - 20 = 2 х 2 - 20

2 х 1 - 2 х 2 = 0

х 1 - х 2 = 0

х 1 + х 2 = 11

х 1 = 5.5

х 2 = 5.5

В ответ записываем значения х 1 = 5,5; х 2 = 5,5.

       Решение с помощью Mathcad осуществляется аналогично заданию из практического занятия 7.

 

 


Практическое занятие № 10

Наименование работы: Решение простейших задач методом динамического программирования

Цель работы: научиться решать задачи методом динамического программирования. Формировать ОК 1 – ОК 9, овладеть знаниями и умениями, необходимыми для освоения ПК 1.1, ПК 1.2.

Подготовка к занятию: Повторить теоретический материал по теме «Динамическое программирование»

Литература:

  1. Лобачева М.Е. Конспект лекций «Математические методы», 2015г.

Перечень необходимых приборов, инструментов, материалов: ПЭВМ

Задание на занятие:

Выделены денежные средства S0 =100 ден.ед. для вложения в инвестиционные проекты для реконструкции и модернизации производства на четырех предприятиях. По каждому предприятию известен возможный прирост fi(х)(i=1, 2, 3, 4) выпуска продукции в зависимости от выделенной суммы. Требуется распределить средства S0 между предприятиями так, чтобы суммарный прирост продукции на всех четырех предприятиях достиг максимальной величины.

Параметр

Номер варианта

1 2 3 4 5 6 7 8 9 0
f1 (20) 4 2 4 2 2 2 2 2 4 4
f2 (20) 2 3 4 4 2 4 2 2 5 2
f3 (20) 4 4 4 5 2 3 4 1 4 2
f4 (20) 1 2 2 2 3 2 4 2 2 3
f1 (40) 4 4 6 6 7 6 3 4 3 6
f2 (40) 4 4 4 6 5 5 6 6 6 7
f3 (40) 6 3 3 4 6 3 4 4 3 4
f4 (40) 4 4 5 5 5 5 6 4 4 4
f1 (60) 9 7 9 8 7 9 5 6 4 8
f2 (60) 6 4 6 5 8 10 8 9 7 8
f3 (60) 10 8 5 6 5 10 5 4 9 9
f4 (60) 9 5 7 9 8 5 5 6 9 4
f1 (80) 12 11 7 11 12 7 11 7 7 7
f2 (80) 11 11 9 5 13 8 11 8 10 8
f3 (80) 5 8 8 12 7 7 12 7 6 10
f4 (80) 6 5 13 7 9 11 9 8 12 12
f1 (100) 15 14 14 14 14 15 11 15 14 11
f2 (100) 12 11 10 10 12 12 15 15 10 14
f3 (100) 12 13 13 10 10 12 11 10 12 15
f4 (100) 13 14 12 13 14 14 13 12 14 12

 

Порядок проведения занятия:

  1. Получить допуск к работе.
  2. Выполнить задание в соответствии с заданным вариантом.
  3. Ответить на контрольные вопросы.

Содержание отчета:

  1. Наименование, цель работы, задание;
  2. Выполненное задание;
  3. Выводы по результатам выполненного задания;
  4. Ответы на контрольные вопросы.

Контрольные вопросы для зачета:

1. Какие задачи решаются методом динамического программирования?

2. Что означает понятие «шаговое управление»?

3. Как определяются шаги при решении задачи динамического программирования?

4. В чем суть принципа оптимальности Беллмана?

5. Каким образом проводится условная и безусловная оптимизация?

 

ПРИЛОЖЕНИЕ

Динамическое программирование – раздел оптимального программирования (оптимального управления), в котором процесс принятия решения и управления, может быть разбит на отдельные этапы (шаги). Все шаги могут быть уникальными или одинаковыми и чередоваться друг с другом. Некоторые задачи оптимизации легко разделяются на шаги естественным способом, а для других вводится искусственное разделение на шаги.

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

Экономический процесс является управляемым, если можно влиять на ход его развития.

Управление – совокупность решений, принимаемых на каждом этапе для влияния на ход развития процесса.

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

Решение на каждом шаге называется «шаговым управлением». Совокупность всех шаговых управлений представляет собой управление операцией в целом.

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

 

Требуется найти такое управление (х), при котором выигрыш обращался бы в максимум:

где F – выигрыш за операцию;

Fi(xi) – выигрыш на i-м шаге;

х – управление операцией в целом;

хi – управление на i-м шаге (i=1,2,…,m). В общем случае шаговые управления 1, х2, … х m) могут стать числами, векторами, функциями.

То управление (х *), при котором достигается максимум, называется оптимальным управлением. Оптимальность управления состоит из совокупности оптимальных шаговых управлений х* = х*1, х*2, … х*m

F* = max {F*(х*)} – максимальный выигрыш, который достигается при оптимальном управлении х*.

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



Поделиться:


Читайте также:




Последнее изменение этой страницы: 2021-02-07; просмотров: 631; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.201.71 (0.066 с.)