Содержание
ЛАБОРАТОРНЫЕ РАБОТЫ по дисциплине МЕТОДЫ ОПТИМИЗАЦИИ В ЭЛЕКТРОСНАБЖЕНИИ
Лабораторная работа №1. Введение в среду MathCAD
- Цель работы: Изучить интерфейс системы MathCAD, научиться выполнять базовые операции в среде MathCAD
Краткие теоретические сведения
Математический пакет MathCAD позволяет производить различные вычисления и символьные (аналитические) преобразования различных выражений, вычислять интегралы, производные, пределы, решать алгебраические и дифференциальные уравнения и т.д.
Работа в пакете осуществляется в рамках документа.
После запуска пакеты в главном окне программы открыт пустой документ, что показано на рисунке 1.2.
Рисунок 1.2 – Главное окно пакета MathCAD
Следует обратить внимание на вертикальную черту справа в документе – это граница страницы. При вводе документа аналогичная только горизонтальная черта встретится ниже. При создании документов следует не допускать попадания элементов документа (формул, рисунков и т.д.) на границу страниц.
Интерфейс пакета в целом аналогичен множеству известных приложений для операционной системы Windows таких как Word, Excel, Photoshop и др. Базовые команды по работе с файлами (открытие, закрытие, сохранение, печать, установка параметров страницы и др.) и базовые команды редактирования (вставка, копирование, поиск, замена и др.), расположенные в пунктах меню File и Edit аналогичны указанным выше пакетам.
Красный крест в окне документа указывает положение курсора.
Вводимые в документе выражения могут быть как текстовыми, так и математическими. Отличие состоит в том, что текстовые выражения нельзя вычислить. По умолчанию вводятся математические выражения.
Для ввода текстового выражения (текстового блока) следует выбрать пункт меню Insert — Text Region или нажать клавишу «.
Образец ввода текстового и математического выражений приведен на рисунке 1.3.
При настройках пакета по умолчанию текстовые и математические выражения вводятся разным шрифтом и обводятся при вводе разной рамкой.
а) б)
Рисунок 1.3 – Ввод выражений в MathCAD а) математическое б) текстовое
При вводе текстовых блоков доступны команды форматирования, аналогичные различным текстовым процессорам (MS Word, OpenOffice Writer и др.). Команды текстового форматирования расположены на панели, показанной на рисунке 1.4.
Рисунок 1.4 – Панель форматирования текста
Для ввода различных элементов документа (формул, выражений и т.д.) используются панели инструментов, содержащие различные базовые операции. Панели выводятся на экран нажатием соответствующей кнопки на панели, приведенной на рисунке 1.5.
Рисунок 1.5 – Панель вызова панелей базовых операций
Для создания переменной, определения функций используется операция :=, вызываемая нажатием клавиши : или кнопки на соответствующей панели операций.
Пример создания переменной приведен на рисунке 1.6.
Рисунок 1.6 – Создание переменной в MathCAD
Для вычисления значения переменной (вывода ее значения на экран) используется операция =, вызываемая нажатием кнопки = на клавиатуре или кнопки на соответствующей панели операций.
В MathCAD существует 2 способы вычисления значений любого выражения: численное и символьное. Способ вычисления определяется операцией вычисления. Для численного вычисления значения выражения используется операция =, указанная выше. Для символьного вычисления используется операция , расположенная на соответствующей панели.
Отличие символьного от численного способа состоит в том, что при символьном способе вычислений пакет MathCAD попытается вычислить точное значение выражения с использованием обыкновенных дробей, операций извлечения корня и других.
Отличие символьного и численного способа показано на рисунке 1.8, где численно и
sin + tg
4 6
2
символьно вычисляется значение выражения
.
Рисунок 1.7 – Отличие символьного и численного способов вычислений
Функции создаются аналогично переменным. На рисунке 1.8 показано создание
функции f x x2 + 2
Рисунок 1.8 – Определение функции
После создания какого-либо выражения (переменной, функции) над ним можно производит различные операции. Для вычисления производной, неопределенного и определенного интегралов используются операции , , соответственно с панели вычислений вызываемой кнопкой с главной панели инструментов.
На рисунке 1.9 показано вычисление производной, неопределенного и определенного
интегралов от функции f x x2 + 2 .
Рисунок 1.9 – Некоторые операции с функциями
На рисунке 1.9. следует обратить внимание, что для вычисления выражений производных, интегралов используется операция символьного вычисления. Большим достоинством среды MathCAD является интуитивная запись выражений, повторяющая их математическую запись.
Для построения графиков функции используется кнопка с панели графики вызываемой кнопкой на главной панели.
На рисунке 1.10 показано построение графика для функции f x x2 + 2
Рисунок 1.10 – Построение графика функции в MathCAD
Внизу графика указывается переменная функции и интересующий интервал по оси абсцисс. Слева от графика указывается функция, для которой необходимо построить график.
Задания на работу
-
- Создать текстовый блок, содержащий название работы, номер варианта, ФИО студента, отформатировать текст в соответствии с образцом, приведенном на рисунке 1.1.
Лабораторная работа №1. Знакомство со средой MathCAD
Выпонил: студент гр. 111111 Иванов И.И.
Дата: 16.02.2009 г.
Рисунок 1.1. – Образец форматирования текста
-
- Создать 2 переменные со значениями, определяемыми выражениями, приведенными в таблице 1.1. Вывести на экран значения переменных.
- Задать функцию f(x), приведенную в таблице 1.2.
- Вычислить производную и первообразную функции f(x)
- Вычислить определенный интеграл от функции, приведенной в таблице 1.3.
- Построить график функции из задания 5 на интервале интегрирования
Каждое задание должно начинаться с текстового блока, в котором указан номер и формулировка задания.
Таблица 1.1. Таблица переменных
№ | Скалярная переменная a;
Матричная переменная B |
№ | Скалярная переменная a;
Матричная переменная B |
1 | 22 3
1 + 5 ; 1 2 3 0 |
16 | 3 10 74,2
+ 52 + 3 ( 3 )0,75 5 7 ; 3.2 1 + 2 3 + 5 2.8 4.9 |
2 | 1 3
1 + ; 0 2 3 22 |
17 | 5 3 7
3 14.3 74,2 2 + 1 + 2 ; + 3 5 7 1.2 3 + 5 5 |
3 | e + 1
e 3 1 3 ; 2 3 e 2 0.75 |
18 | 7
1.2 1 + 2 3 10 5 3 5 7 2 + 5 ; 3 2 + 3 + 5 14.3 5 |
4 |
2 3 e e + 1 0.75 ; 3 3 e 0.75 1 |
19 | 7 3 11
3 10 2 + 3 6 14.3 + 5 + 52 ; 9 13 1.2 + 2 5 3,1 |
№ | Скалярная переменная a;
Матричная переменная B |
№ | Скалярная переменная a;
Матричная переменная B |
5 | 1 + 5 5
e2 + 2 2 0.2 2 + 3 ; 3 e 2 0.75 |
20 | 3 11
+ 5 14.3 3 10 ; 1.2 9 13 + 52 3,1 + 2 7 5 6 2 + 3 |
6 | 3 5
2 + 3 e + 1 ; 0.2 2 3 1 + 5 e 2 0.75 |
21 | 5 3 5
3 1.3 3 11 ; 2 + 3 + 4 2 + 5 23,75 1.7 1 + 2 5.3 |
7 | 5 0.9 5
3 3 + 2 2 + 3 2 + 3 ; (2 )2,1 3.2 2.5 1 + 3 |
22 | 23,75
1 + 2 1.3 5 7 ; 1.7 5 3 + 5 3 + 4 2 5 3 5.3 3 2 + |
8 | 0.9 0.9
2 (2 ) 5 2,1 7 1 ; 1 + 3 2 + 3 5 3.2 2 + 3 |
23 | 9 13 ;
3,1 + 2 7 6 4 2 + 3 1 + 3 3 2.1 7 9 2 0 2 + 3 3 |
9 | 74,2 5
+ 3 0.4 3 + 4 2 3 ; 2 + 2 (2 )2,1 4 2.5 1 + 3 |
24 | 7 6 9
2 + 3 7 ; 2.1 4 1 + 2 1 + 3 3 7 0 2 2 + 3 3 |
10 |
4 5 3 + 4 2 e 74,2 ; 0.4 2 + 2 + 3 (2 )2,1 2.5 1 + 3 |
25 | 3 ;
1 + 7 6 4 7 2 2 + 3 1 + 3 3 2 + 3 3 9 1 0 |
№ | Скалярная переменная a;
Матричная переменная B |
№ | Скалярная переменная a;
Матричная переменная B |
11 | e 0.3 5
5 ; 0.75 3 + 4 2 3 + 4 2 5 5 2.5 2 + 3 |
26 | 7
9 2 + 3 3 2 3 5 3 ; 4 7 6 2 + 1 + 3 3 2 + 3 1 0 |
12 | 5 2.5
3 + 4 2 5 ; 5 5 2 + 3 2 + 3 0.3 e 0.75 |
27 | 3
0 4 7 2 ; 1 + 3 3 1 + 2 + 3 3 5 7 3 + 5 1 1 |
13 | 3 10 0.7 5
e + 52 3 + 4 2 ; (2 )2,1 1 + 3 2 5.6 2.3 1 + 3 |
28 |
41 + 3 3 0 7 6 ; 1 3 2 + 3 1 + 5 7 1 3 + 5 |
14 | (2 )2,1
0.7 1 + 3 23,75 5 ; 5.6 1 + 2 3 + 4 2 3 10 2.3 + 52 |
29 | 11 5 7
1 2 + 3 1 3 + 5 6 ; 2 + 3 77 7 0, 2 1.3 6 2 + 3 |
15 | ( ) 74,2 3 10
2 2,1 4.9 + 3 + 52 ; 1 + 3 3.2 5 7 2.8 3 + 5 |
30 | 5 7
1 3 + 5 4 ; 7 6 0.2 1 + 3 3 2 + 3 11 1.3 2 + 3 |
Таблица 1.2. Таблица функций
№ | Функция | № | Функция |
1 |
x3 + 6x2 + 13x + 9
( x + 1) ( x + 2)3 |
16 | 2x3 + x + 1
( x + 1) x3 |
2 | x3 + 6x2 + 13x + 8 x ( x + 2)3 | 17 | 2x3 + 6x2 + 7x + 4
( x + 2)( x + 1)3 |
3 |
x3 6x2 + 13x 6
( x + 2)( x 2)3 |
18 | 2x3 + 6x2 + 5x
( x + 2)( x + 1)3 |
4 |
x3 + 6x2 + 14x + 10
( x + 1)( x + 2)3 |
19 | 2x3 + 6x2 + 7x
( x 2)( x + 1)3 |
5 |
x3 6x2 + 11x 10
( x + 2)( x 2)3 |
20 | 2x3 + 6x2 + 5x + 4
( x 2)( x + 1)3 |
6 |
x3 + 6x2 + 11x + 7
( x + 1)( x + 2)3 |
21 |
x3 + 6x2 + 4x + 24
( x 2)( x + 2)3 |
7 | 2x3 + 6x2 + 7x + 1
( x 1)( x + 1)3 |
22 |
x3 + 6x2 + 14x + 4
( x 2)( x + 2)3 |
8 |
x3 + 6x2 + 10x + 10
( x 1)( x + 2)3 |
23 |
x3 + 6x2 + 18x 4
( x 2)( x + 2)3 |
9 | 2x3 + 6x2 + 7x + 2 x ( x + 1)3 | 24 |
x3 + 6x2 + 10x + 12
( x 2)( x + 2)3 |
10 | x3 6x2 + 13x 8 x ( x 2)3 | 25 |
x3 6x2 + 14x 4
( x + 2)( x 2)3 |
11 |
x3 6x2 + 13x 7
( x + 1)( x 2)3 |
26 |
x3 + 6x2 + 15x + 2
( x 2)( x + 2)3 |
12 |
x3 6x2 + 14x 6
( x + 1)( x 2)3 |
27 | 2x3 6x2 + 7x 4
( x 2)( x 1)3 |
13 |
x3 6x2 + 10x 10
( x + 1)( x 2)3 |
28 | 2x3 6x2 + 7x
( x + 2)( x 1)3 |
14 |
x3 + x + 2
( x + 2) x3 |
29 |
x3 + 6x2 10x + 52
( x 2)( x + 2)3 |
15 | 3x3 + 9x2 + 10x + 2
( x 1)( x + 1)3 |
30 |
x3 6x2 + 13x 6
( x + 2)( x 2)3 |
Таблица 1.3. Функции и пределы интегрирования
№ | Функция; нижний и верхний
пределы интегрирования |
№ | Функция; нижний и верхний пределы
интегрирования |
1 | 1 + ln ( x 1) ; e + 1; e2 + 1
x 1 |
16 | 1 x ; 1; 3 x ( x + 1) |
2 |
x2 + 1
(x3 + 3x + 1)2 ; 0; 1 |
17 | 1 ; 3 ; 8
x x2 + 1 |
3 | 4arctgx x ; 0; 1
1 + x2 |
18 | 1 + ln x ; 1; e
x |
4 |
x3
x2 + 4 ; 0; 2 |
19 | 1 ; 2 ; 2
x x2 1 |
5 |
x + cos x ; π; 2π
x2 + 2 sin x |
20 |
x2 + ln x2
; 1; e x |
6 | 2 cos x + 3sin x ; 0; π/4
(2 sin x 3cos x )3 |
21 |
x ; 0; 1
x4 + x2 + 1 |
7 | 8x arctg2x ; 0; 1/2
1 + 4x2 |
22 |
x2
( x2 + 1)2 ; 0; 1 |
8 | 1 + 1
2 x ; 1; 4 ( x + x )2 |
23 | tgx ln (cos x ) ; 0; π/4 |
9 |
x ; 0; 1
x4 + 1 |
24 |
tg ( x + 1) ; -1; 0
cos2 ( x + 1) |
10 |
x + 1
x ; 3 ; 8 x2 + 1 |
25 | (arccos x )3 1 1
; 0; 1 x2 2 |
11 |
x 1 x
; 3 ; 8 x2 + 1 |
26 | 1 cos x ; π; 2π
( x sin x )2 |
12 |
arctgx + x ; 0; 3
1 + x2 |
27 | sin x cos x ; 0; π/4
(cos x + sin x )5 |
13 |
x (arctgx )4
1 + x2 ; 0; 3 |
28 |
x cos x + sin x ; π/4; π/2
( x sin x )2 |
14 |
x2
x2 + 1 ; 0; 1 |
29 |
x3 + x
x4 + 1 ; 0; 1 |
15 | (arcsin x )2 + 1
; 0; sin1 1 x2 |
30 |
x ; 2 ; 3
x4 x2 1 |
Контрольные вопросы
-
- В чем состоит отличие символьного и численного способа вычислений? В каких случаях используется тот и другой?
- Поясните на примере как создать переменную в MathCAD
- Поясните на примере как определить функцию в MathCAD
- Поясните на примере как вычислить производную функции
- Поясните на примере как построить график функции
Лабораторная работа №2. Решение уравнений и оптимизационных задач встроенными средствами MathCAD. Элементы программирования
- Цель работы: Изучить функции системы MathCAD, применяемые при решении систем уравнений и оптимизационных задач
Краткие теоретические сведения
-
- Решение уравнений
Для решения различных математических задач (решение систем уравнений, дифференциальных уравнений, оптимизационных задач) в MathCAD используется т.н. solve- блок, в котором формулируется задача.
Рассмотрим использование solve-блоков на примере: решим уравнение Соответствующий документ MathCAD приведен на рисунке 2.1.
Рисунок 2.1 – Решение уравнения в среде MathCAD
x2 2 0 .
Solve-блок начинается с ключевого слова Given. В следующей строке записано рассматриваемое уравнение. Следует обратить внимание, что в записи уравнения используется не операция вычисления (=), а логическое равенство (выделяется жирным шрифтом). Для ввода логического равенства используется комбинация клавиш Ctrl-=.
Для решения уравнения использована Find, которая используется для решения уравнений и их систем. Аргументами функции Find являются переменные задачи: Find(x,y,z).
На рисунке 2.1 уравнение решено символьно, т.е. решение уравнения точное. Очень небольшое число уравнений имеет символьное решение.
Дополним задачу условием уравнения.
x 0 , т.е. найдем только положительный корень
Соответствующий документ приведен на рисунке 2.2.
Рисунок 2.2 – Решение уравнения с дополнительным условием Как видно из рисунка 2.2 solve-блок был дополнен одним условием.
Для задания неравенств в solve-блоке могут быть использованы операции > (больше),
< (меньше), (больше или равно), (меньше или равно). Первые две операции вводятся нажатием соответствующих кнопок на клавиатуре. Для ввода последних двух операций используются комбинации клавиш Ctrl-9 и Ctrl-0 соответственно.
Как уже было сказано далеко не каждая задача может быть решена символьно. К
такому уравнению относится, например, уравнение уравнения приведено на рисунке 2.3.
x5 + x2 2 0 . Решение указанного
а) б)
Рисунок 2.3 – Решения уравнения
x5 + x2 2 = 0
а) символьное б) численное
На рисунке 2.3 в символьном решении вызов функции Find выделен красным цветом, т.к. пакет MathCAD не смог найти символьное решение задачи.
В численном решении перед solve-блоком добавилась строка x:=0. Она необходима, т.к. численным методам решения задач требуется задание некоторого начальное приближения к решению. В ряде задач полученный ответ сильно зависит от выбора начального приближения.
Решение систем уравнений выполняется аналогично одиночному уравнению. В solve-
x2 + x2 + 2 = 0,
блок записываются все уравнения системы. Решение системы уравнений
1 2
показано на рисунке 2.4.
Рисунок 2.4 – Пример решения системы уравнений
x1 + x2 + 1 = 0;
Решение оптимизационных задач
Для решения оптимизационных задач в MathCAD предусмотрено 2 функции: Minimize и Maximize для решения задач на минимум и максимум соответственно.
Формат вызова функций: Minimize(f, x1, x2), где f – целевая функция, x1,x2 – перечень переменных.
Пример решения оптимизационной задачи
x* = arg min (x2 + x2 + x2 4x 8x 12x + 100)
приведен на рисунке 2.5.
xR3
1 2 3 1 2 3
В случае пустого solve-блока (а указанная выше задача является задачей безусловной оптимизации, т.е. нет никаких дополнительных ограничений) ключевое слово Given можно не указывать, а сразу вызывать функцию Minimize.
Рисунок 2.5 – Пример решения оптимизационной задачи
Элементы программирования в среде MathCAD
Для выполнения повторяющихся действий, записи в MathCAD различных алгоритмов, вычисления выражений, которых определяется в зависимости от некоторых условий, удобно использовать возможности программирования среды MathCAD.
Элементы программирования вынесены на специальную панель программирования, показанную на рисунке 2.6. Данная панель вызывается нажатием кнопки главной панели инструментов.
Рисунок 2.6 – Панель программирования MathCAD
На панели программирования представлены следующие элементы.
-
-
- Add Line – создание блока программы или добавление в нее дополнительных строк.
- ← – оператор локального присваивания.
- if – условный оператор.
- otherwise – оператор иного выбора (обычно применяется с if);
- for – оператор задания цикла с заданным числом повторений;
- while – оператор задания цикла, действующего до тех пор, пока выполняется некоторое условие;
- break – оператор прерывания;
- continue – оператор продолжения;
- return. – оператор возврата;
- on error – оператор обработки ошибок.
-
Рассмотрим эти элементы подробнее.
Оператор локального присваивания ← используется для создания и присваивания значений локальным переменным. Так, конструкция A←1 означает присвоение локальной переменной A значения 1. Создаваемые с помощью оператора ← переменные являются локальными, т.е. существуют только в контексте программы.
Условные оператор if используется для создания выражений, значение которых определяется некоторым условием.
Синтаксис оператора:
Выражение if Условие.
Если Условие выполняется, то возвращается значение Выражения. Совместно с этим оператором используется операторы прерывания break и иного выбора otherwise.
Оператор иного выбора otherwise
Оператор иного выбора otherwise обычно используется совместно с оператором if в конструкциях следующего типа:
Значение оператора otherwise возвращается, если не выполилось Условие расоложенного выше оператора if.
Оператор цикла for служит для организации, циклов с заданным числом повторений.
Синтаксис оператора приведен на рисунке 2.7.
Рисунок 2.7 – Синтаксис оператора for
В операторе for Команды цикла будут выполняться пока Переменная цикла пройдет по всем значениям Диапазона с шагом +1. Переменную цикла можно использовать в командах цикла.
Синтаксис оператора цикла while представлен на рисунке 2.8.
Рисунок 2.8 – Синтаксис оператора while
В отличие от оператора for в цикле while Команды цикла выполняются до тех пор пока значение Условия цикла истинно.
Оператор прерывания break используется для прерывания выполнения операторов while и for, обеспечивая переход в конец тела цикла.
Оператор продолжения continue используется пропуска текущей итерации в цикле и перехода к следующей итерации.
Оператор выхода return прекращает выполнение программы возвращает значение операнда, стоящего следом за ним.
Программы могут быть однострочными, так и многострочными. Многострочные программы оформляются в виде специального блока, который создается командой Add Line на панели (или клавишей ] на клавиатуре).
Создадим программу, которая ищет элемент вектора с максимальным значением. Фрагмент документа MathCAD, реализующим соответствующую программу приведен на рисунке 2.9.
Рисунок 2.9 – Программа поиска максимального элемента массива
Задания на работу
-
- Создать текстовый блок, содержащий название работы, номер варианта, ФИО студента, отформатировать текст в соответствии с образцом, приведенном на рисунке 1.1.
Лабораторная работа №2.
Знакомство со средой MathCAD
Выпонил: студент гр. 111111 Иванов И.И.
Дата: 16.02.2009 г.
Рисунок 1.1. – Образец форматирования текста
-
- Решить систему уравнений из таблицы 2.1. с использованием функции Find численно и символьно.
- Решить численно оптимизационную задачу на минимизацию целевой функции в заданное области с использованием функции Minimize. Целевые функции и области для поиск минимумов приведены в таблице 2.2.
- Составить программу, которая
а) вычисляет значения производной заданной функции в n точках отрезка;
б) перебором определяет точку, в которой значение производной наиболее близко к 0 Результат работы программы – абсцисса соответствующей точки.
Исходные данные (функция f(x), отрезок [a;b], число n) приведены в таблице 2.3.
Правильность работы программы проверить, решив на указанном интервале численно
уравнение f ‘ ( x) = 0 .
Каждое задание должно начинаться с текстового блока, в котором указан номер и формулировка задания.
Таблица 2.1. Системы уравнений
№ | Система уравнений | № | Система уравнений |
1 | x2 + x2 4 = 0,
1 2 3x1 + 4x2 1 = 0; |
16 | x2 x2 4x + 6x 16 = 0,
1 2 1 2 x 5 + x2 = 0; 2 1 |
2 | ex1×2 + 4x2 16 = 0,
2 x1 + x2 1 = 0; |
17 | 5x2 + 4x x + x2 16x 12x 17 = 0,
1 1 2 2 1 2 x2 + x2 3 = 0; 1 2 |
3 | x1 + x2 2 = 0,
5x2 + 4x x + x2 + x 16 = 0; 1 1 2 2 2 |
18 | x2 + x2 x x + x 2x 18 = 0,
1 2 1 2 1 2 x1 + x2 5 = 0; |
№ | Система уравнений | № | Система уравнений |
4 | x2 + 12x x + 2x2 3 = 0;
1 1 2 2 4x2 + x2 25 = 0; 1 2 |
19 | x4 + x2 4x x 16 = 0,
1 2 1 2 2×1 + 7×2 15 = 0; |
5 | x2 + x2 6 = 0,
1 2 x1 + x2 1 = 0; |
20 | x3 + 2x + x x 19 = 0,
1 2 1 2 2×1 + 7×2 + 15 = 0; |
6 | x1 + 2×2 + 2 = 0,
+ x 1 = 0; x2 2 1 2 |
21 | x3x + 2x2x + x x 12 = 0,
1 2 2 1 1 2 3x1 + 17x2 + 19 = 0; |
7 | 2x2 6x 6x 17 = 0,
1 1 2 5×1 + x2 1 = 0; |
22 | 5x3 x + 3x x + 2 = 0,
1 2 1 2 x2 x 4 = 0; 1 2 |
8 | x1x2 3 = 0,
x 2 = 0; x2 2 1 2 |
23 | 7x4 + x x + 9x2x 17 = 0,
1 2 1 1 2 3x4 3x 14 = 0; 1 2 |
9 | x3 + x3 x + x 5 = 0,
1 2 2 1 x1 + x2 1 = 0; |
24 | x ex1 (1 + ex1 )sin x 9 = 0;
1 2 x1 + x2 3 = 0; |
10 | 19x3 + x + 3x2 x 17 = 0,
2 1 1 2 x1 + 5×2 + 6 = 0; |
25 | x2 x2 4x + 6x 15 = 0,
1 2 1 2 x2 x 3 = 0; 1 2 |
11 | 9x3 + x3 + 3x2 x = 0,
1 2 1 2 x3 + 1 = 0; 1 |
26 | 3x x + x2x + x x2 + 17 = 0,
1 2 1 2 1 2 x + x2 3 = 0; 1 2 |
12 | 3x3 + 13x2 + 3x2 13 = 0,
2 1 2 x2 + x2 1 = 0; 1 2 |
27 | 19x3 + x + 3x2 x 15 = 0,
2 1 1 2 19x1 + 11x2 3 = 0; |
13 | 7x3 + x2x + 9x2x 19 = 0,
1 2 1 1 2 x1 + x2 1 = 0; |
28 | x3 + x3 x + x 15 = 0,
1 2 2 1 x2 + x 7 = 0; 1 2 |
14 | x3 13x2 + 9x x x + x 9 = 0,
1 2 1 2 2 1 2×1 + 5×2 1 = 0; |
29 | x x + 50 + 20 3 = 0,
1 2 x1 x2 x1 + x2 56 = 0; |
15 | x2 + 3x2 + 7x x x + x = 0,
1 2 1 2 2 1 x2 + x x 2 = 0; 1 2 1 |
30 | 13x2 11x2x 2x2 + 17 = 0,
1 2 1 2 x1 + x2 56 = 0; |
Таблица 2.2. Целевые функции
№ | Целевая функция и область поиска | № | Целевая функция |
1 | f (x , x ) = x3 + 13x2 9x x
1 2 1 2 1 2 x1 [10;10] x2 [3;3] |
16 | f (x , x ) = 7x4 + x x + 9x2x
1 2 1 2 1 1 2 x1 [3;5] x2 [1;5] |
2 | f (x , x ) = x2 + 25x2 + x x 5x + x
1 2 1 2 1 2 2 1 x1 [3;3] x2 [10;10] |
17 | f (x , x ) = 5x3 + x + 3x x
1 2 1 2 1 2 x1 [2; 2] x2 [3;3] |
3 | f (x , x ) = 17x4 9x x x2 + x2 + 17
1 2 1 1 2 1 2 x1 [10;10] x2 [3;3] |
18 | f (x , x ) = 4x2 + x2 12x x 3x
1 2 1 2 1 2 1 x1 [10;10] x2 [3;3] |
4 | f (x , x ) = 17x3 + 19x2x + x x 17
1 2 1 1 2 1 2 x1 [3;3] x2 [10;10] |
19 | f (x , x ) = x3x + 2x2x + x x
1 2 1 2 2 1 1 2 x1 [1;10] x2 [2;6] |
5 | f (x , x ) = 13x3 11x x + x + 21
1 2 1 2 1 1 x1 [10;10] x2 [3;3] |
20 | f (x , x ) = x3 + 2x + x x
1 2 1 2 1 2 x1 [1;10] x2 [2;6] |
6 | f (x , x ) = 13x2 + x2x + 2x2 + x 17
1 2 1 2 1 2 1 x1 [3;3] x2 [10;10] |
21 | f (x , x ) = x x2 + x2x 3x2 3x2
1 2 1 2 1 2 1 2 x1 [10;10] x2 [2;5] |
7 | f (x , x ) = x2 + x2 + 2x + 2x + 7
1 2 1 2 2 1 x1 [10;10] x2 [3;3] |
22 | f (x , x ) = x ex1 (1 + ex1 )sin x
1 2 1 2 x1 [10;10] x2 [2;5] |
8 | f (x , x ) = x3 + x2 2x 2x + 7
1 2 1 2 2 1 x1 [3;3] x2 [10;10] |
23 | f (x , x ) = x4 + x2 4x x
1 2 1 2 1 2 x1 [10;10] x2 [3;3] |
9 | f (x , x ) = 2x4 + x4 x + x
1 2 1 2 2 1 x1 [10;10] x2 [3;3] |
24 | f (x , x ) = 3x x x2x x x2
1 2 1 2 1 2 1 2 x1 [10;10] x2 [3;3] |
10 | f (x , x ) = x3 + x3 x + x
1 2 1 2 2 1 x1 [10;10] x2 [3;3] |
25 | f (x , x ) = x3 + x3 3x x
1 2 1 2 1 2 x1 [1;5] x2 [2;3] |
11 | f (x , x ) = 19x3 + x + 3x2 x
1 2 2 1 1 2 x1 [2; 2] x2 [5;5] |
26 | f (x , x ) = x2 + x2 + x x x
1 2 1 2 1 2 1 x1 [2;5] x2 [2;3] |
12 | f (x , x ) = 9x3 + x3 + 3x2 x
1 2 1 2 1 2 x1 [2;3] x2 [6; 9] |
27 | f (x , x ) = x2 + x2 x x + x 2x
1 2 1 2 1 2 1 2 x1 [2;5] x2 [2;3] |
13 | f (x , x ) = 3x3 + 13x2 + 3x2 1 2 2 1 2
x1 [1;1] x2 [2; 2] |
28 | f (x , x ) = 5x2 + 4x x + x2 16x 12x
1 2 1 1 2 2 1 2 x1 [3;3] x2 [2;1] |
14 | f (x , x ) = 3x5 + x2x + 11x2x + x3
1 2 1 2 1 1 2 1 x1 [1;1] x2 [2; 2] |
29 | f (x , x ) = x2 x2 4x + 6x
1 2 1 2 1 2 x1 [3;3] x2 [10;1] |
15 | f (x , x ) = 7x5 + x2x + 9x2x 1 2 1 2 1 1 2
x1 [1;5] x2 [1;1] |
30 | f (x , x ) = x x + 50 + 20
1 2 1 2 x x 1 2 x1 [3;10] x2 [10;10] |
Таблица 2.3. Исходные для составления программы
№ | Функция | Параметры |
1 | e1cos(x)
f (x) = + 1 sin (x) x2 |
a = 3, b = 0 , n = 50 |
2 | x2 + 2 cos(x)
f (x) = e sin (x) |
a = 5, b = 3.2 , n = 100 |
3 | f (x) = cos(x) ex
x3 + 1 |
a = 5, b = 1, n = 50 |
4 | x3 + x2 x x
f (x) = e sin (2x + 1) + x4 |
a = 0, b = 1, n = 100 |
5 | f (x) = 1 ex x3 + cos(x) | a = 0, b = 1, n = 50 |
№ | Функция | Параметры |
6 | f (x) = sin(x) e2x+1 1 x | a = 2, b = 6 , n = 100 |
7 | x2 + 1 cos(x)
f (x) = 3 e x3 + 2 |
a = 0, b = 5 , n = 50 |
8 | e cos(x)+1
f (x) = + 0.2 x3 + 1 |
a = 0, b = 1, n = 100 |
9 | x2 + 1 cos(x)
f (x) = 3 e 4 sin (x) x3 + 2 |
a = 1, b = 3 , n = 50 |
10 | f (x) = 3cos(8x)
x4 + 1 |
a = 5, b = 5.2 , n = 100 |
11 | f (x) = tg(x)
e0.5x x2 |
a = 1.5, b = 1, n = 50 |
12 | cos(7x + 2)
f (x) = + 0.8 x2 + e0.5x |
a = 3, b = 2.5 , n = 100 |
13 | x3 + 4x2 2
f (x) = sin (x + 3) |
a = 0.9, b = 1, n = 50 |
14 | cos(x2 )
f (x) = 0.2 1 + x5 |
a = 1, b = 2.6 , n = 100 |
15 | f (x) = tg(9x )
cos2 (5x) + sin5 (x) |
a = 0.4, b = 0.55 , n = 50 |
16 | f (x) = 1.5 e0.5x
1 + 1×3 |
a = 2, b = 1.5 , n = 100 |
17 | cos2 (3x) + sin3 (8x)
f (x) = tg(7x) |
a = 0.48, b = 0.55 , n = 50 |
18 | f (x) = e0.5x sin (4x + 1) | a = 0.6, b = 1.4 , n = 100 |
19 | e3x 2
f (x) = + 4x 1 + x2 |
a = 2, b = 2 , n = 50 |
20 | f (x) = cos(6x) + 1.5
1 x3 + 1x |
a = 0.4, b = 0.8 , n = 100 |
21 | x3 + x2
f (x) = 1 x2 + x3 |
a = 0.5, b = 0.5 , n = 50 |
22 | e3x 2
f (x) = + 8x 1 + x2 |
a = 1, b = 1, n = 100 |
23 | f (x) = 5e2x sin(22x + ) | a = 0.2, b = 0.4 , n = 50 |
24 | f (x) = 0.5x5 + 2x4 + 50sin (5x) | a = 2, b = 1 , n = 100 |
25 | f (x) = 5e2x + e0.5x | a = 2, b = 4 , n = 50 |
26 | f (x) = 5e2x cos(17x + ) | a = 3.4, b = 3.1 , n = 100 |
№ | Функция | Параметры |
27 | x2 + 1
cos 10 f (x) = x |
a = 9, b = 6 , n = 50 |
28 | f (x) = sin(x)
x2 |
a = 2, b = 7 , n = 100 |
29 | f (x) = sin (x)
x + 1 |
a = 2, b = 2 , n = 50 |
30 | x2 + 1
f (x) = 1 x3 |
a = 0.5, b = 1 , n = 100 |
Лабораторная работа №3. Решение канонической задачи линейного программирования методом перебора
- Цель работы: Закрепить теоретические сведения о методах решения канонической задачи линейного программирования
Краткие теоретические сведения
-
- Каноническая и стандартная формы задачи линейного программирования Задачей линейного программирования (ЗЛП) называются задачи, в векторно-
матричном виде записываемые следующим образом:
( )
x* = arg min cT x ;
xD
xi 0,
i = 1n
D :
T
(1)
a j x bj ,
=
j = 1m
Конструкция
=
знаков , или =.
в выражении (1) означает, что на ее месте может стоять один из
n – размерность вектора переменных задачи (число переменных xi), m – число уравнений и/или неравенств ограничений.
Таким образом, ЗЛП – это задача оптимизации линейной целевой функции при ограничениях, заданных линейными равенствами или неравенствами.
Среди различных вариантов постановки ЗЛП выделяют две формы, отличающиеся способом задания ограничений:
- каноническая (КЗЛП);
- стандартная (СЗЛР).
В канонической форме все ограничения заданы в виде равенств, причем число равенств меньше размерности вектора переменных задачи.
В стандартной форме все ограничения заданы в виде неравенств, причем число неравенств больше размерности вектора переменных системы (m n+1).
Указанные формы постановки ЗЛП приведены в таблице 2.1. Таблица 2.1. Формы постановки ЗЛП
Каноническая | Стандартная | ||||
x* = arg min (cT x );
xD D : xi 0, i = 1n A x = b, x1 b1 a11 x = , b = , A = x b a n m m1 m < n |
|
a1n
a mn |
x* = arg min (cT x );
xD D : xi 0, i = 1n A x b, x1 b1 a11 x = , b = , A = x b a n m m1 m n +1 |
|
a1n
a mn |
Любая форма постановки ЗЛП может быть сведена к указанным двум с помощью следующих преобразований:
- если в условии задачи ЛП требуется определить максимум функции f(x) , то это эквивалентно нахождению минимума -f(x).
- В ограничениях типа неревенств возможна замена знака неравенства на противоположный, т.е. неравенство
эквивалентно неравенству
n
aijxj bi
j=1
n
aijxj bi
j=1
(i = 1,…, m)
(i = 1,…, m)
- Ограничения в виде неравенства можно заменить ограничением в виде равенства. Пусть ограничение имеет вид:
a1x1 +a2x2 +…+anxn b Вводим дополнительную переменную xn+1 0 , тогда
a1x1 + a2x2 +…+ anxn + xn+1 = b Если знак неравенства противоположный, т,е,
a1x1 +a2x2 +…+anxn b, то a1x1 + a2x2 +…+ anxn — xn+1 = b
При этом, естественно, увеличивается размерность вектора x.
- От ограничений в виде равенств можно перейти к ограничениям в виде неравенств следующим образом. Систему из m уравнений с n переменными (m<n) решить относительно m переменных, т.е. выразить эти переменные через остальные (n-m) переменных. Тогда с учетом того, что все они неотрицательны, получим m неравенств.
Методы решения КЗЛП
Определим основные термины, используемые при решении КЗЛП.
Точка, удовлетворяющая ограничениям задачи называется допустимым решением или планом.
Допустимое решение, при котором целевая функция f(x) приобретает минимальное значение называется оптимальным решением (оптимальным планом),
Набор из m переменных, для которых определитель матрицы, составленный из коэффициентов при этих переменных, отличен от нуля, называется базисом а сами переменные базисными переменными.
Оставшиеся (n-m) переменных называются свободными переменными.
Решение системы из m уравнений с m базисными переменными при условии равенства нулю свободных (n-m) переменных называется базисным решением.
Если базисное решение дает отрицательные значения некоторых переменных, то оно называется недопустимым, а базисное решение с неотрицательными значениями переменных называется допустимым базисным решением.
В теории ЗЛП доказано, что решением ЗЛП является одно из базисных решений, поэтому для решения ЗЛП необходимо перебрать базисные решения задачи по какому-либо алгоритму.
Метод перебора базисных решений
В методе перебора определяются все базисные решения задачи. Для этого необходимо рассмотреть всевозможные случаи сочетания базисных (m штук) переменных. Количество перебираемых вариантов определяется по формуле:
Cm =
n
n!
m! (n m)!
(2)
Для определения базисного решения необходимо выбрать базисные переменные (m переменных), приравняв к нулю свободные, и решить полученную систему уравнений ограничений.
Перебрав все сочетания базисных переменных и, соответственно, определив все базисные решения, среди них выбираются допустимые базисные решения (с неотрицательными переменными).
Рассчитав значения целевой функции для каждого из допустимых базисных решений, среди них выбирается то, при котором целевая функция достигает минимального значения.
Пример
Решим методом перебора следующую КЗЛП:
x* = arg min ( x + x );
xD 1 2
x1 + x2 + x3 = 2, D : 2x1 + 4x2 + x4 = 1,
x 0, x 0, x 0, x
0;
1 2 3 4
В данной задаче размерность вектора переменных n=4, число уравнений m=2.
Методом перебора необходимо перебрать
N = Cm = C 2 = 4! = 6 базисных решений.
n 4 2! 2!
Сочетания базисных переменных: x1x2, x1x3, x1x4, x2x3, x2x4, x3x4.
В таблице 2.2 представлены сочетания базисных переменных, системы уравнений и базисные решения
Таблица 2.2. К решению примера
№ | Сочетание | Система уравнений | Базисное решение | Значение целевой
функции |
1 | x1x2 | x1 + x2 = 2,
2x + 4x = 1; 1 2 |
(3.5 1.5 0 0) | — |
2 | x1x3 | x1 + x3 = 2,
2x = 1 1 |
(0.5 0 1.5 0) | 0.5 |
3 | x1x4 | x1 = 2,
2x + x = 1 1 4 |
(2 0 0 3) | — |
4 | x2x3 | x2 + x3 = 2,
4x = 1 2 |
(0 0.25 1.75 0) | 0.25 |
5 | x2x4 | x2 = 2,
4x + x = 1 2 4 |
(0 2 0 7) | — |
6 | x3x4 | x3 = 2,
x = 1 4 |
(0 0 2 1) | 0 |
Жирным шрифтом выделены допустимые базисные решения.
Среди допустимых базисных решений минимальное значение целевая функция имеет для сочетания 6.
Таким образом, Оптимальное решение: (0 0 2 1)
На рисунке 2.1 приведен фрагмент документа MathCAD, в котором решена рассмотренная задача. Как видно из рисунка методом перебора получено правильное решение.
Рисунок 2.1 – Решение примера в MathCAD
Обратите внимание, что целевая функция в MathCAD должна быть определена как функция всех переменных задачи.
Матричные операции в MathCAD
При выполнение настоящей лабораторной работы удобно использовать вектор- матричную форму записи уравнений.
В среде MathCAD векторные и матричные операции собраны на панели инструментов вектора и матрицы (Vector and Matrix Toolbar), изображение которой приведена на рисунке 2.2.
Рисунок 2.2 – Панель инструментов вектора и матрицы
Среди представлнных на панели операций в данной работе могут быть полезны следующие:
- – создание матрицы;
- – нижний индекс, для вектора эта операция выбирает из вектора элемент с указанным номером;
- – вычисление обратной матрицы;
- – вычисление определителя матрицы;
- – получение столбца матрицы;
- – вычисление транспонированной матрицы;
- – создание переменной-диапазона;
По умолчанию MathCAD ведет нумерацию строк и столбцов матриц с нуля. Для повышения наглядности вычисление удобно начинать нумерацию с 1. Число, с которого начинается нумерация элементов векторов и матриц хранится в переменной ORIGIN. Изменив ее значение, можно начать нумерацию с любого числа. Так для начала нумерации с 1 используется команда, приведенная на рисунке 2.3
Рисунок 2.3 – Команда задания начала нумерации с 1
Для решения систем линейных уравнений удобно использовать известные из линейной алгебры формулы:
A x = b x = A1 b . (3)
Запись формулы (3) в среде MathCAD приведена на рисунке 2.4.
Рисунок 2.4 – Нахождение решения системы линейных уравнений с использованием
обратно матрицы
Также при работе с матрицами бывает необходимо «собрать» матрицу из нескольких исходных, расположив их слева направо или сверху вниз. Для этого используются функции augment и stack, которые имеют следующий синтаксис:
augment(A,B,C,. )
stack(A,B,C )
где A,B,C – исходные матрицы.
Функции возвращают матрицы следующей структуры:
augment (A, B, C) = (A B C),
A stack (A, B, C) = B .
C
Пример решения КЗЛП методом перебора
Ниже приведен документ MathCAD, в котором задача примера решена с использованием операций MathCAD.
Задания на работу
-
- Создать текстовый блок, содержащий название работы, номер варианта, ФИО студента, отформатировать текст в соответствии с образцом, приведенном на рисунке 3.1.
Лабораторная работа №3.
Решение канонической задачи линейного программирования Выпонил: студент гр. 111111 Иванов И.И.
Дата: 01.03.2009 г.
Рисунок 3.1. – Образец форматирования текста
-
- Привести к канонической форме ЗЛП:
x* = arg min f ( x ); f (x ) = x x
xD 1 2
1x1 + 2 x2 1,
x + x 3,
D :
1 1 2 2
x + x 5
1 1 2
x1 0, x2 0;
Параметры 1 , 2 ,
1 ,
2 , 1 , 2 определяются по формулам:
1 = N ,
журналу.
2 = 7 N ,
1 = N 8 ,
2 = 14 N ,
1 = N 15
где N – номер студента по
-
- Решить КЗЛП методом перебора базисных решений.
- Решить КЗЛП встроенными средствами MathCAD (функция Minimize)
Каждое задание должно начинаться с текстового блока, в котором указан номер и формулировка задания.
Контрольные вопросы
- Как формулируется задача линейного программирования?
- Назовите основные формы постановки ЗЛП и укажите в чем заключается их отличие.
- Какие приемы используются для приведения задачи линейного программирования к каноническому виду?
- Каким образом задача максимизации может быть сведена к задаче минимизации и наоборот?
Рекомендуемая литература
- Костин В.Н. Оптимизационные задачи электроэнергетики: учеб. пособие. – Спб.: СЗТУ, 2003. – 120с. (Электр. вариант)
- Сухарев А.Г., Тимохов А.В., Федоров В.В. Курс методов оптимизации. – 2-е изд. – М.: Наука, 2005. – 368 с. (6 экз.)
- Измаилов А.Ф. Численные методы оптимизации : учеб. пособие для вузов / А.Ф. Измаилов, М.В. Солодов. – М. : Физматлит, 2005 . – 304с. (5 зкз.)
- Струченков В.И. Методы оптимизации. Основы теории, задачи, обучающие программы : учеб. пособие / В.И. Струченков . – М. : Экзамен, 2005 . – 256с. (10 зкз.)
- Банди Б. Методы оптимизации. Вводный курс. – М.: Радио и связь, 1988. (10 экз.)
- Ногин В.Д., Протодьяконов, Евлампиев И.И. Основы теории оптимизации. – М.: Высшая школа, 1986. (26 экз.)
- Пантелеев, А.В. Методы оптимизации в примерах и задачах : учебное пособие для втузов / А.В.Пантелеев,Т.А.Летова . – 2-е изд.,испр. – М. : Высш.шк., 2005 . – 544с. (15 зкз.)
- Шелобаев С.И. Математические методы и модели в экономике, финансах, бизнесе. – М.:ЮНИТИДАНА, 2001.
- Таха, Хамди А. Введение в исследование операций, 7-е издание.: Пер с англ. – М.: Издательский дом «Вильямс», 2005. – 912 с. (4 экз.)
Отзывы
Отзывов пока нет.