Симплексный метод решения задач линейного программирования средствами Mathcad

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

Решить симплексным методом задачу:

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Решение:

Приводим задачу к каноническому виду.

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Значение целевой функции при этом базисе равно: Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

При поиске минимума используется функция Minimize/

Краткие итоги по теоретической части

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

ПРАКТИЧЕСКАЯ ЧАСТЬ

Лабораторные работы направлены на получение навыков использования математических пакетов в решении различных математических и инженерных задачах, в представлении полученных результатов различными методами (табличном, графическом виде).

Все работы выполняются по вариантам, задаваемым преподавателем. После выполнения работы оформляется отчет.

Цель практической части:Научить студентов работе в системе Mathcad. Получить навыки решения уравнений разной сложности, использовать математические и статистические функции всистеме Mathcad.

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

- Название работы.

- Результаты выполнения заданий.

- Выводы по работе относительно используемых операторов, функций и полученных результатов.

Лабораторная работа №1
Табулирование функций и нахождение корней уравнений
в системе Mathcad

Подготовка к работе

По указанной литературе изучить:

- правила ввода текста, данных, переменных;

- задание функций пользователя;

- операторы присваивания;

- правила построения графиков и графические средства для работы с ними;

- правила вывода таблиц с результатами вычислений;

- состав и назначение элементов Math Palette (палитры математических символов).

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

  1. Создать в текстовой области заголовок документа "Вычисления в Mathcad".
  2. Задать выражение для расчета заданной переменной, выбранную из табл. 1. в соответствии с вариантом, для конкретного значения аргумента.
  3. Задать это выражение как функцию пользователя.
  4. Задать ранжированную переменную, изменяющуюся в пределах xo¸xn с шагом h=0.1. Рассчитать и вывести в виде таблицы значения функции при изменении аргумента в заданном интервале.

5. Для данной функции построить XY - график. Отформатировать его для наглядного представления заданной функции.

6. Построить график функции f(x) и приблизительно определить один из корней уравнения. Решить уравнение f(x)= 0 с точностью ε = 10 - 4 с помощью встроенной функции Mathcad root. Варианты заданий (Таблица 1);

Таблица 1

Варианты заданий

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Продолжение таблицы 1

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

7. Найти корни полинома с помощью функции polyroots. Задать вектор V, содержащий коэффициенты полинома. Коэффициенты полинома найти с использованием символьной команды. Варианты заданий (Таблица 2)

Таблица 2

Варианты заданий

№ варианта g(x) № варианта g(x)
x4 – 2x3+x2 – 12x+20 x4+x3 – 17x2 – 45x – 100
x4+6x3+x2+x2 – 4x – 60 x4 – 5x3 +2x2 –15x+50
x4 – 14x3 – 40x – 75 x4 – x3 –x2 – 20x+25
x4 – x3+x2 – 11x+10 x4+5x3+7x2 – 5x+95
x4 – x3+13x2 – 31x + 25 x4 – 7x3+17x2+x – 20
x4+7x3+9x2+13x – 30 x4+10x3+36x2+70x+75
x4+3x3 – 23x2 – 55x – 150 x4+9x3+39x2+59x+60
x4 – 6x3+4x2–10x+75    

Методические указания

Пример выполнения задания лабораторной работы

Чтобы определить начальное приближение по хвоспользуемся графиком. По команде Format →Graph → Trace, выплывет окно, показанное на рис. 10, по нему определите приближенное значение х,предварительно нужно щелкнуть по точке пересечения графика функции с осью абсцисс.

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Рис. 10 Определение приближенного значения х

По графику обнаружено начальное приближение х= 1.4

Изменение системного параметра TOL (рис.11). Чтобы изменить значение TOL в определенной точке рабочего документа, используйте определение вида TOL:=0.01. Чтобы изменить значение TOL для всего рабочего документа, выберите команду Математика à Параметры… à Переменныеà Допуск сходимости (TOL), (Toolsà Workscheetà Convergence Tolerance(TOL) – в англоязычном Mathcad)

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Рис. 11 Окно системных параметров

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru Установленозначение

Контрольные вопросы

1. Поясните структуру окна системы Mathcad.

2. Какие приёмы создания текстовой области Вы знаете?

3. Перечислите приоритетность выполнения операций в выражениях.

4. Какие типы данных используются в системе Mathcad?

5. Дайте понятие идентификатора.

6. Какие требования предъявляются к идентификаторам?

7. Дайте понятие переменной.

8. Как задать переменную в системе Mathcad?

9. Что такое ранжированная переменная?

10. Для решения, каких задач используется ранжированная переменная?

11. Дать понятие функции пользователя?

12. Назовите оператор присвоения системы Mathcad?

13. Назовите оператор вывода системы Mathcad?

14. Как вывести результаты вычислений в виде таблиц?

15. Как создать и отредактировать XY - график?

Лабораторная работа №2
Функции условных выражений

Подготовка к работе

По указанной литературе изучить:

‒ категории функций;

‒ операции отношений;

‒ правила записи функции условных выражений;

‒ состав палитр Evaluation and Boolean (Отношения) .

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

1 Задать условную функцию с использованием функции if и условий. Варианты заданий в таблице 3

2 Задать эту функцию, используя операторы if и otherwise из палитры программирования

Выведите таблицы результатов и сравните их между собой.

Таблица 3

Варианты заданий

Функция x=[ ], a, b
1. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x=[0 ..5] a=1.5
2. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x=[-2 ..2] a=5 b=2
3. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x=[-5 ..5] a=2.5 b=3
4. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x=[-4 ..4] a=3 b=1.5
5. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x=[-3 ..4] a=6 b=3.5
  Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru   x=[-2 .. 4] a=3 b=4
6. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru   x=[-4 5] a=2 b=1.5]

Продолжение таблицы 3

7. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru   x=[-5..5] a=3 b=4.5
8. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru   x=[0..7] a=4 b=6
9. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru   x=[-1 .. 6] a=3 b=5
10. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru   x=[-2..7] a=2 b=4
11. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x=[-1 5] a=3 b=8
12. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru   x=[1 .. 8] a=2 b=4
13. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru   x=[0…9] a=1.5 b=6

Методические указания

Для создания условных выражений можно использовать условия, функцию if , а также операторы программирования if и otherwise.

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

Пример применения функции if

Пусть требуется найти значение функции

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru для x=7.

Mathcad-документ может быть составлен следующим образом:

f(x):= if(x<0,cos(x),if(x<10,x+1,tan(x))) f(7)= 8

Замечание: Функция f(x) может быть задана и таким образом:

f(x):=(x<0) cos(x)+(x>0) (x<10) (x+1)+(x>10) tan(x).

Для создания условия в Mathcad предусмотрены также операторы в палитре программирования if и otherwise (если, иначе).

На рис.12 приведен пример моделирования выпрямления функции sin(x).

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Рис. 12 Пример моделирования одно и двух–полупериодного
выпрямления функции

Контрольные вопросы

1. Какие виды встроенных функций имеются в системе Mathcad?

2. Как пользоваться встроенными функциями?

3. Запись условий в системе Mathcad.

4. Как записать условную функцию, используя условные выражения?

5. Синтаксис функции if, её аргументы?

6. Значения условного выражения при истинности условия?

7. Значения условного выражения при ложности условия?

Лабораторная работа №3
Функции для обработки векторов и матриц

Подготовка к работе

По указанной литературе изучить

- палитру Vector and Matrix (Векторы и матрицы) и назначение элементов этих палитр;

- ввод, вывод и обработку одномерных и двумерных массивов данных;

- приемы работы с массивами данных в Mathcad;

- векторные и матричные операторы;

- векторные и матричные функции;

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

1 Выполнить сортировку для векторов (Таблица 4)

2 Выполнить сортировку для матриц (Таблица 5).

3 Вычислить вектор VE собственных значений матрицы М .

Таблица 4

Варианты заданий

№ вар. Заданный вектор № вар. Заданный вектор
V=[3, 2, 4, 5] V=[7, 18, 3, 11]
V=[7, 8, 9, 5] V=[1, 5, 3, 9]
V=[12, 14, 7, 11] V=[24, 9, 12, 27]
V=[6, 8, 10, 15] V=[9, 3, 17, 11]
V=[3, 9, 12, 14] V=[4, 15, 2, 19]
V=[7, 9, 11, 13] V=[11, 17, 1, 13]
V=[5, 7, 8, 12] V=[5, 9, 15, 2]
V=[23, 25, 7, 19]    

Таблица 5

Варианты заданий

№ вар Исходная матрица Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru № вар Исходная матрица Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru
Отсортировать по 1 столбцу. Вывести этот столбец Отсортировать по 1 столбцу. Вывести этот столбец
Отсортировать по 1 строке. Вывести эту строку Отсортировать по 1 строке. Вывести эту строку
Отсортировать по 2 столбцу. Вывести этот столбец Отсортировать по 2 столбцу Вывести этот столбец

Продолжение таблицы 5

Отсортировать по 2 строке. Вывести эту строку Отсортировать по 2 строке. Вывести эту строку
Отсортировать по 3 столбцу Вывести этот столбец Отсортировать по 3 столбцу Вывести этот столбец
Отсортировать по 3 строке. Вывести эту строку Отсортировать по 3 строке. Вывести эту строку

Методические указания

Вывод элементов матрицы А и элементов вектора В и Х1

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Транспонирование вектора Х

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Исходный вектор Прямая сортировка Реверс сортировки

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Исходная матрица Сортировка по первой строке Сортировка по первому столбцу

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Начальный индекс столбца и строки ORIGIN = 0

Вывод второго столбца матрицы Вывод второй строки матрицы

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Рис. 10 Примеры применения векторных и матричных функций

Контрольные вопросы

1. Какие операции можно производить с матрицами и векторами в Mathcad?

2. Назовите элементы палитры Vector and Matrix (Векторы и матрицы) и их назначение.

3. Назовите операции над матрицами и векторами в Mathcad?

4. Назовите функции сортировки векторов и матриц.

5. Как вывести нужный элемент массива?

6. Как вывести заданный столбец матрицы?

7. Как вывести заданную строку матрицы?

8. Назовите функцию вычисления следа матрицы, поясните, что называется следом матрицы.

Лабораторная работа №4
Решение систем линейных и нелинейных уравнений

Подготовка к работе

По указанной литературе изучить

- способы решения систем линейных уравнений в Mathcad;

- способы решения нелинейных уравнений в Mathcad

- функция для решения системы линейных уравнений методом Гаусса.

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

1. Решить систему линейных уравнений (Таблица 6):

- используя функцию Find, решить уравнение в символьном виде;

- матричным способом;

- используя функцию lsolve.

2. Решить систему нелинейных уравнений (Таблица 7)

- приближенно графически;

- используя функцию Find

- используя функцию Minerr.

Таблица 6

Варианты заданий

№ вар. Система линейных уравнений № вар. Система линейных уравнений
1. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru 2x1 +x2 + 2x3+3x4=8 3x1+3x3=6 2x1 – x2 + 3x4=4 x1+2x2 – x3 + 2x4=4 Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x1 +2x2 + 8x3+2x4= 114 8x1+x2 + 2x3 + x4=52 x1 + 5x2 + x3 =72 x1 – 12x2 +5x3 + x4= 97
2. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x1 +2x2 + 3x3+4x4=22 2x1+3x2+ x3 + 2x4=17 2x1 + x2 + x3 – 7x4=8 x1 – x3 + 3x4= – 7 Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru 6x1 - 4x2 + 12x3 - 2x4= 132 2x1+x2 + 9x3 + 5x4=118 3x1 - 2x2 - 2x3 - x4=7 x1 - 12x2 +2x3 - x4= 17
3. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru 2x1 +x2 - 5x3+x4= – 4 x1+3x2 - 6x4=9 x1 – x2 + 3x3=6 x1+4x2 –7x3 + 2x4= – 2 Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x1 - 2x2 - x4= 86 5x1 + 2x3 - 3x4=88 7x1 - 3x2 + 7x3 +2x4=146 3x1 – 7 x2 +6x3 + 3x4= 89
4. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x1 +2x2 + 3x3+2x4= 24 2x1+3x2 + 4x3 + x4=32 3x1 + 4x2 + x3 +2x4=26 4x1+2x2 +x3 + 3x4= 24 Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru x1 - 2x2 - 8x4= – 8 x1+5x2 - 7x3 + 5x4= – 12 x1 + x2 - 5x3 +2x4= – 15 3x1 – x2 + 3x4= 9

Продолжение таблицы 6

5. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru 2x1 +x2 + 5x3 - x4= 14 7x2 - x3 + 3x4= – 5 4x1 + x2 + 2x3 =16 x1+5x2 +2x3 - 7x4= – 13 Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru 2x1 +2x2 + 7x3+x4= 14 – 2x2 + 3x3 + x4=19 2x1 + 2x2 + x3 +x4=22 3x1 - 5x2 +x3 - x4= 32
6. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru 4x1 +7x2 + x3 - 4x4= 12 x1 + 6x3 + x4=21 x1 + 4x2 + 6x4=16 2x2 +4x3 + x4= 15 Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru 8x1 - x2 + 7x3+5x4= 156 2x1+x2 - 3x3 - x4= – 17 11x1 + 4x2 + x3 =176 x1 - x2 - 3x3 - 4x4= – 25
7. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru 7x1 +7x2 - 3x3+2x4= 8 2x1+4x2 + 5x3 + 8x4=42 2x1 + 2x2 + 2x3 +2x4=28 2x1 - 2x3 - x4= – 2 Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru 6x1 - 9x2 + 7x3= 75 7x1 - 3x3 - x4= – 35 9x2 + 7x3 +x4=97 5x1 - 9x2 +x3 + 6x4= 45
8. Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru 6x1 - 7x2 + 5x3+2x4= 64 5x1+5x2 - 14x3 = – 27 4x1 + 3x2 – 11x4=6 x1+2x2 +2x3 + x4= 42    

Таблица 7

Варианты заданий

Функции F1(x), F2(x) интервал x=[ ], шаг h Функции F1, F2 интервал x=[ ], шаг h
1. F1(x)= – 1.5x3 – 5x2+3x+45 F2(x)= – 75│cos(x)│ x=[ – 10..10] h=0.3 9. F1(x)=2.5x3 + 2.9x2+x+17 F2(x)= 20sin(x2) x=[ – 20..20] h=0.2
2. F1(x)=5x3 + x2+12x+9 F2(x)= 25│sin(x)│(1) x=[ – 10..10] h=0.2 10. F1(x)= – 3.5x3 +10x+65 F2(x)= 55│cos(x)│ x=[ – 10..10] h=0.3
3. F1(x)=– 0.5x3 + 5x2+5x – 15 F2(x)= – 15│tg(x)│ x=[ – 10..10] h=0.1 11. F1(x)=7.5x3 – x2 – 13x +35 F2(x)= 10│cos(x)│ x=[ – 10..10] h=0.3
4. F1(x)=x3 + 2x2+15x – 27 F2(x)= 53│cos(x)│ x=[ – 15..15] h=0.5 12. F1(x)=– 3x3 + x2 – 20x – 7 F2(x)= 20│tg(x)│ x=[ – 10..10] h=0.3
5. F1(x)=4.6x2+10x + 30 F2(x)= 40sin(x) x=[ – 10..10] h=0.3 13. F1(x)=6.5x3 – 9x2+7x – 19 F2(x)= – 15│tg(3x)│ x=[ – 15..15] h=0.1
6. F1(x)=– 4.5x3 + 3x2 – 4 x+60 F2(x)= 90│cos(x)│ x=[ – 20..20] h=0.4 14. F1(x)=– 8.5x3 – 2x2+20x+5 F2(x)= – 35│cos(x)│ x=[ – 10..10] h=0.2
7. F1(x)=– 7.5x3 + 16x2+54 F2(x)= – 45│cos(2x)│ x=[ – 25..20] h=0.2 15. F1(x)= – 15x2+9x+70 F2(x)= 5│sin(x)│ x=[ – 20..20] h=0.5
8. F1(x)=– 5x3 +13x+40 F2(x)= 50cos(3x) x=[ – 10..10] h=0.5    

Методические указания

Решить систему линейных уравнений: Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

4x1 +x2 + x3+3x4=25

3x1 – x2+3x3=16

2x1 – 2x2 + 3x4=– 4

x1+2x2 – x3 + 2x4=4

Матричным способом X:=A-1 × B, где А- матрица, составленная из коэффициентов перед неизвестными, В – вектор свободных членов, X – вектор корней x1, x2, x3 …;

С помощью встроенной функции lsolve(А,В).

Проверить результаты решения непосредственной подстановкой полученных корней х1, х2, х3 в одно из заданных уравнений.

Решение в матричной форме

А – матрица коэффициентов системы при неизвестных

В – вектор свободных членов

Решение системы в матричной форме A × Х:=В, где Х – вектор корней системы линейных уравнений.

Результат решения системы линейных уравнений Х=(х1,х2,х3,х4)

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Результат решения системы линейных уравнений Х1=(x1,х2,х3,х4)

Результат решения системы линейных уравнений с использованием функции lsolve

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Проверка решения системы линейных уравнений

Симплексный метод решения задач линейного программирования средствами Mathcad - student2.ru

Наши рекомендации