Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
В. Ю. Дорофеев, Г. В. Савинов
«Mathematica»
ДЛЯ ЛИНЕЙНЫХ
ЭКОНОМИЧЕСКИХ МОДЕЛЕЙ
Учебное пособие
ИЗДАТЕЛЬСТВО
САНКТ-ПЕТЕРБУРГСКОГО ГОСУДАРСТВЕННОГО
ЭКОНОМИЧЕСКОГО УНИВЕРСИТЕТА
2018
ББК 22.1
Дорофеев В. Ю., Савинов Г. В. «Mathematica» для линейных экономи-
ческих моделей, 110 с., 2018.
Цель данного пособия – перебросить мостик от теоретических курсов
«Линейная алгебра» и «Методы оптимальных решений» к практическому
их использованию для анализа и принятия управленческих решений. Зна-
комство с возможностями программного комплекса «Wolfram
Mathematica» дает инструменты решения практических задач, отличаю-
щихся большой размерностью и требующих для своего анализа больших
вычислительных затрат. Приведенные в пособии примеры анализа эконо-
мических проблем являются типовыми и полезны как для закрепления ма-
тематических знаний студентов, так и для выработки навыков применения
эффективных современных математических методов решения экономиче-
ских задач.
Учебное пособие предназначено для студентов факультета экономики
СПбГЭУ.
The course is designed to bridge a gap between the theoretical courses
«Linear Algebra» and «Methods of Optimal Solutions» and their practical use
for analysis and decision-making. The course also introduces to the basics of
working with software package «Wolfram Mathematica» which provides the
tools to address complex problems in business, such as those characterized by
high dimensionality, requiring substantial computational costs. To strengthen the
understanding of the course as well as to develop the skills of applying modern
mathematics for solving arising business problems, the course is supplemented
with business cases and full-blown solutions for them.
The course is for the curriculum of the faculty of Economics, St. Petersburg
State University of Economics.
Введение
Математика, это та наука, которая всегда оказывается в авангарде про-
гресса технических специальностей, предлагая новые методы и подходы,
новые идеи. С другой стороны, освоение математики требует правильного
баланса классического подхода – с карандашиком и листком бумаги – и ис-
пользованием самых современных средств. Программные продукты, такие
как «Wolfram Mathematica», «Maple», «MathCad» и многие другие, «научи-
лись» символьному языку, то есть ставишь задачу: решить уравнение x + a
= 0 и получаешь ответ x = – a, или спрашиваешь, чему равна производная
sin 4x, а тебе пишут 4cos 4x. Но эта возможность программ не заменит пер-
вичного обучения основным математическим знаниям. С другой стороны,
появляются новые возможности освоения тех разделов, которые первона-
чально являлись узко специальными в виду сложности расчётов. Для реше-
ния именно этой задачи было задумано данное учебное пособие, круг задач
в котором определялся линейными моделями в курсе высшей математики,
читаемым в СПбГЭУ.
Использование математических пакетов при анализе моделей в этом
пособии сделано на примере «Wolfram Mathematica», хотя практически та-
кими же возможностями обладают и другие пакеты. Научившись работать
в каком-то одном, нетрудно будет освоить и любой другой. Авторы отдали
предпочтение именно «Wolfram Mathematica» или просто «Mathematica».
(Этот пакет можно скачать с официального сайта для бесплатного 2-х не-
дельного использования.) Им можно также воспользоваться в режиме on-
line, если перейти на «WolframAlpha» с помощью режима поиска (пример
такого подхода здесь также рассмотрен).
Предлагаемый в данном пособии анализ моделей авторы постарались
сделать максимально самодостаточным: даётся постановка задачи и приво-
дятся математические теоремы и утверждения, описывающие модель с не-
обходимыми пояснениями.
Литература, которая посвящена освоению символьных пакетов, и в том
числе пакету «Mathematica», столь велика, что мы не рискнём её воспроиз-
водить, тем более, что её не трудно найти в интернете. Тем не менее хоте-
лось бы отметить, дабы окончательно не «потонуть» в потоке информации,
что есть небольшие, но очень ёмкие (примерно в 70 страниц) справочники
по командам – как [1], и более фундаментальные с описанием свойств и
возможностей функций – такие как [2], а имеются более «приземлённые»,
как и это пособие, рассчитанные на исследование определённого класса за-
дач [3].
4
Линейная алгебра
Линейные пространства
Любая совокупность элементов образует множество M. Множество M
называется пространством, если для любых двух элементов x, y этого мно-
жества и любого вещественного числа , во-первых, определена операция
суммы элементов, обозначаемая как x + y, и умножение произвольного эле-
мента пространства x на число , обозначаемое как x или x, во-вторых, x
+ y, x и x также являются элементами этого множества, при этом x = x.
Пространство называется линейным пространством L, если для любых
элементов x, y, z этого пространства и произвольных вещественных чисел1
, выполняются следующие свойства:
A1. x + y = y + x.
A2. x + (y + z) = (x + y) + z.
A3. Особенная роль вещественной единицы: 1 · x = x.
A4. ( x) = (x).
A5. Существует нулевой элемент, который обозначается символом 0,
что x + 0 = x.
A6. Для всякого элемента x существует противоположный элемент x*
этого пространства такой, что: x + x* = 0.
A7. ( + )x = x +x.
A8. (x + y) = x + y.
Элементы линейного пространства L называются векторами.
Упорядоченное множество элементов вида x = (x1, x2, … , xn), где все xi
– вещественные числа, называемые координатами, над которыми введены
операции сложения и умножения на число по правилу:
1). x + y = (x1, x2, … , xn) + (x1, x2,… , xn) = (x1 + y1, x2 + y2, … , xn + yn)
2). x · = · x = · (x1, x2,… , xn) = (x1, x2,… , xn)
называется n-мерным вещественным линейным пространством или просто
– пространством Rn. (Нетрудно убедиться, что свойства A1 – A8 выполня-
ются, при этом нулевой вектор – это вектор с нулевыми координатами, а
противоположный вектор – это вектор, умноженный на – 1.) Два вектора
называются равными, если они имеют одинаковые координаты.
1
В пособии рассматривается только вещественное линейное пространство.
7
a b
cos(a, b ) , где a b (a , b ), a (a , a ) (1)
a b
Пример 2. Найти длину векторов a (1, 2, 2) и b (2,3, 4) и угол
между ними в градусах.
Комментарий к решению:
– число вставляется с помощью Basic Math Assistant в группе Calcu-
lator в её подгруппе Basic. Basic Math Assistant подключается из главного
меню из опции Palettes;
– ArcCos[] даёт ответ в радианах, поэтому произведён перевод в гра-
дусы;
– использована команда ответа в виде десятичного числа N[].
9
2 4 6 1 4
1 7 2 3 5
Пример 11. Найти ранг матрицы .
3 8 1 2 6
1 10 9 7 0
Решение.
21
2
Геометрический вектор обозначается жирным шрифтом.
23
N A, B
y
4
M x ,y
3
2
l : Ax By C
t
1 P a, b
l: Ax By C
x
0
1
1 0 1 2 3 4 5
Модель обмена
Пусть дана экономическая система, состоящая из n производителей и
n видов продуктов, для которой выполнены требования:
1. Каждый производитель производит только один продукт.
2. Экономика замкнута, т. е. весь продукт, произведённый каждым про-
изводителем, потребляется внутри системы.
3. Каждый производитель весь свой продукт обменивает только на про-
дукцию, производимую внутри системы (т. е. нет никаких внешних поступ-
лений).
4. Продукция, произведённая каждым производителем за плановый пе-
риод, например, за год, принимается за единицу.
Экономическая система, в которой выполняются требования 1 – 4,
называется простой моделью обмена или моделью международной тор-
говли. Обозначим через αij количество продукта, потребляемое потребите-
лем за плановый период.
j 1
ij p j pi , i 1, 2,..., n.
j 1
ij p j pi , i 1, 2,..., n.
n
Пусть объём продукции равен xi s y j . Тогда из (8) следует
j 1 ij
n
xn 1 an 11 x1 an 12 x2 ... an 1n xn an 1i xi
i 1
n n
n n
n
an 1i sij y j an 1i sij y j sn 1 j y j
i 1 j 1 j 1 i 1 i 1
n1 n 2
s s ... s nn sn1 sn 2 ... snn ...
s s ... s s s ... s y
n 11 n 12 n 1n
n 11 n 12 n 1n
n
s s
n 21 n 22
s ... s n2n n 21 sn 22 ... sn 2 n
33
Линейное программирование
1. Основные задачи линейного программирования.
Одной из первых постановок задачи линейного программирования в
виде предложения по составлению оптимального плана перевозок, была
дана советским экономистом А. Н. Толстым в 1930 году, а в 1931 году вен-
герский математик Б. Эгервари рассмотрел математическую постановку и
решил задачу линейного программирования «проблема выбора», хотя, как
таковая математическая теория линейного программирования, восходит
ещё к работам Фурье (1826) и к фундаментальным работам Фаркаша. В
1939 г. Л. В. Канторович для решения транспортной задачи ввёл «метод
разрешающих множителей». Он же совместно с М. К. Гавуриным в 1949
году разработал «метод потенциалов», а Дж. Данциг предложил симплекс-
метод. Все эти задачи объединял общий подход и метод исследования.
Линейное программирование – это наука о методах исследования и
отыскания наибольшего и наименьшего значений линейной функции, на
неизвестные которой наложены линейные ограничения. Таким образом, за-
дачи линейного программирования относятся к задачам на условный экс-
тремум функции. Выделяют два основных типа задач линейного програм-
мирования.
Задача 1. Определение оптимального ассортимента продукции.
Пусть предприятие может производить два вида изделий P1 и P2, рас-
полагая для их изготовления ограниченными ресурсами материалов Q1, Q2
в количествах 420 и 200 единиц и оборудования Q3 в количестве 360 еди-
ниц. Затраты ресурсов и оборудования на изготовление одного изделия P1
и P2 равны 2 и 3, 2 и 1, 4 и 1 соответственно. Известно, что прибыль, кото-
рую получает предприятие от выпуска одного первого изделия равна 40
единицам, а от одного второго изделия равна 50 единицам.
Требуется определить, сколько изделий P1 и P2 должно производить
предприятие, чтобы достичь наибольшей прибыли. Для решения задачи со-
ставим её математическую модель, записав условие в виде таблицы.
вид затраты на1 ед. продукции объём
ресурсов P1 P2 ресурсов
Q1 2 3 420
Q2 2 1 200
Q3 4 1 360
прибыль 40 50
38
140
l1
120
100
80 l2
60
40
20 l3
0
0 20 40 60 80 100
Рис. 1 Рис. 2
Рис 1 получим в пакете «Mathematica» следующим образом:
– введём уравнение прямой l1.
ContourPlot[2x + 3y == 420, {x, 0, 250}, {y, 0, 150}]
Заштрихуем область планов.
RegionPlot[{2x + 3y < 420 && x>0 && y > 0}, {x, 0, 260}, {y, 0, 160}]
после чего добавим изображение точек A(0, 140) и E(210, 0), которые впи-
сываем непосредственно в рамке графика «Mathematica» после двойного
начатия левой кнопки мышки.
Аналогично решаем оставшиеся четыре неравенства системы (9), обо-
значая прямые, соответствующие второму и третьему из неравенств (9), как
l2 и l3 соответственно. В результате получим область, заштрихованную на
Рис. 2, которую осуществляем командой
r = RegionPlot[{2x + 3y < 420 && 2x + y < 200 && 4x + y < 360 && x>0
&& y > 0}, {x, 0, 260}, {y, 0, 160}, PlotStyle Gray]
Перейдём к поиску оптимального решения, которое соответствует мак-
симуму целевой функции (10).
42
Рис 3. Рис. 4.
Воспользуемся Теоремой 10, по ко-
торой направление возрастания целевой функции совпадает с нормалью к
прямой. Этот же результат можно получить из курса математического ана-
лиза функции многих переменных, где показано, что направление наиболь-
шего возрастания функции нескольких переменных в окрестности точки из
области определения функции совпадает с градиентов функции. Так как
градиент функции z, определяется как вектор, компоненты которого равны
частным производным grad z ( z 'x1 , z 'x2 ) , то для линейной зависимости
градиент функции совпадает с нормалью к прямой
N grad z 40i1 50i2
где введены единичные векторы i1 , i2 – орты на плоскости X1OX2. В резуль-
тате приходим к Рис. 3, который получается командой
r1 = Graphics[Arrow[{{0, 0},{40,50}}]]
Show[r, r1]
Т. о. в задаче линейного программирования градиент z(x1, x2) не зависит
от точки, поэтому перемещение из любой точки плоскости в области опре-
деления функции в направлении градиента приведёт к увеличению значе-
ния целевой функции. Отметим другой важный факт – при перемещении
перпендикулярно градиенту значение целевой функции не изменится.
На плоскости X1OX2, через точку О(0, 0) проведём прямую l0,: 50x1 +
40x2 = 0 перпендикулярно вектору N. Для всех точек этой прямой значение
43
Рис. 5.
Ответ: при изготовлении изделий P1 в количестве 45 единиц, а изделий
P2 – 110 единиц фирма получит наибольшую прибыль в размере 7300 еди-
ниц.
Замечание 1. Из метода решения следует, что наибольшее значение це-
левой функции задачи линейного программирования всегда достигается на
границе области в её угловой точке. В связи с этим справедлив альтерна-
тивный подход, основанный на методе перебора значения целевой функции
в угловых точках. Так, в нашем случае:
z(O) = 0, z(A) = 7000, z(C) = 7300, z(B) = 5600, z(D) = 3600
Этот способ решения удобно сочетать с изложенным выше, когда име-
ются сомнения в точности нахождения оптимальной точки, связанные с
близким к параллельному расположению линии уровня и линии границы
области.
45
Рис. 6. Рис. 7
Из Рис. 6 видно, что при увеличении правой части дефицитного ре-
сурса (2’) линия l2 будет подниматься вверх по графику – соответственно
значение целевой функции в точке максимума будет также увеличиваться,
а многоугольник области решений OACBD стянется в четырёхугольник
OAKD. Дальнейшее увеличение второго ресурса не приведёт к увеличению
значения целевой функции, при этом ресурс (2’) станет избыточным. На
Рис. 7 изобразим новое положение линии границы второго ресурса (2’), ко-
торая будет проходить через точку K. Видим, что максимально допустимое
значение второго ресурса a2max, определяется точкой K. Найдём его, подста-
вив координаты точки K в (2’).
a2max (K) = 2 · 66 + 1 · 96 = 228
при этом, как вычислено ранее, произойдёт увеличение значения целевой
функции до z (K) = 7440.
Если уменьшать значение ресурса a2, то, как видно из Рис. 6, будет
уменьшаться и максимальное значение целевой функции (когда линия l2
опускается вниз – точка максимума C тоже опускается вниз, против направ-
ления вектора N, указывающего направление роста целевой функции).
Точка C будет по-прежнему оставаться точкой максимума и являться пере-
сечением прямых l1 и l2, пока она не дойдёт до оси OY, то есть до точки A.
48
Рис. 8. Рис. 9.
Аналогичное рассуждение проводим для первого ресурса (2x1 + 3x2
420). Обозначим его значения как a1:
2x1 + 3x2 = a1 (1’)
Из Рис. 8 видно, что при увеличении a1 прямая l1 будет подниматься
вверх. Точку пересечения прямых l1, l2 и оси OY обозначим как G. Оче-
видно её координаты G(0, 200).
49
1
Следовательно, если 33 c1 100 , а коэффициенте c2 не меняется, то
3
точка C(45, 110) остаётся единственной оптимальной точкой.
Как только коэффициент c1 станет равным одному из крайних значений
1
интервала (33 ;100) статус ресурсов изменяется и появляются альтерна-
3
тивные решения. Но при этом оптимальное значение прибыли будет zmax
(45 · 100/3 + 110 · 50, 45 · 100 + 110 · 50 ) = (7 000, 10 000).
Аналогичные вычисления можно провести для коэффициента c2 и по-
лучить, что при неизменном значении коэффициента c1 = 40 и неизменной
точки оптимума значение коэффициента c2 может изменяться в пределах
(20, 60), в чём рекомендуем убедиться самостоятельно.
4. Двойственность в линейном программировании
Каждой задаче линейного программирования можно поставить в соот-
ветствие некоторую другую задачу линейного программирования, называ-
емую двойственной по отношению к первой. При этом оказывается, что ис-
ходная задача (её будем называть прямой задачей) и двойственная к ней
задача образуют пару взаимно двойственных задач, и любую из них можно
рассматривать как исходную или прямую задачу.
В качестве примера построим двойственную задачу для задачи об оп-
тимальном использовании сырья и оборудования при планировании произ-
водства, которая в математической форме имеет следующий вид:
n
z ( x) ci xi max, x ( x1 , x2 ,..., xn ) (18)
i 1
при ограничениях
n
a ji xi b j , j 1, 2,..., m
i 1 (19)
xi 0, i 1, 2,..., n
По тем же исходным данным дадим экономическую формулировку
двойственной задачи.
Пусть предприятие решило не выпускать готовую продукцию, а реали-
зовать имеющиеся ресурсы, получив выручку за них не менее той суммы,
которую можно получить при изготовлении готовой продукции, миними-
зируя общую стоимость реализованных ресурсов. Необходимо установить
оптимальные цены y1, y2, … , ym на эти ресурсы, которые удовлетворяли бы
указанным условиям, что в математической форме имеет вид:
55
m
f ( y ) b j y j min, y ( y1 , y2 ,..., ym ) (20)
j 1
при ограничениях
n
y j a ji ci , i 1, 2,..., n
i 1 (21)
y j 0, j 1, 2,..., m
Задачи (18 – 19) и (20 – 21) образуют пару симметричных взаимно-
двойственных задач. Здесь целевая функция (20) описывает затраты пред-
приятия, приобретающего сырье по ценам y1, y2, … ,ym, а ограничения-нера-
венства (21) – условия того, что выручка предприятия, реализующего сырье
по условным ценам, будет не меньше той, которую может оно получить,
изготавливая продукцию и реализуя её.
В матричном виде прямая и двойственная задачи имеют вид:
прямая задача : двойственная задача :
z ( x) (c, x) max f ( y ) (b, y) min
при ограничениях при ограничениях (22)
Ax b Aт y c
x 0 y 0
(22) называется принципом соответствия прямой и двойственной задач.
Замечание. Равенства в системе ограничений могут быть записаны в
виде системы неравенств так, как, например, уравнение 4x1 + 5x2 = 6 равно-
сильно системе неравенств
4 x1 5 x2 6 4 x1 5 x2 6 4 x1 5 x2 6
4 x1 5 x2 6 4 x1 5 x2 6 4 x1 5 x2 6
поэтому можно считать, что двойственная задача может быть составлена
для прямой задачи с любым типом ограничений.
Анализируя модели двойственных задач, устанавливаем следующие
связи между ними.
1. Свободные члены ограничений прямой задачи служат коэффициен-
тами целевой функции двойственной задачи, а коэффициенты целевой
функции прямой задачи – свободными членами ограничений двойственной.
56
... (24)
a x a x ... a x b
m1 1 m 2 2 mn n m
x1 , x2 ,..., xn 0
(Заметим, что коэффициент при b1 в Out[12] – это ценность первого ре-
сурса.)
64
3
45 b2 0
4 b2 60
1
110 b2 0 b2 28
2 z 7300 5 b
5 2
70 b2 0
2
Откуда при b2 (140, 228) статусы ресурсов не изменятся, при этом
z max
(7 300 – 5 · 60, 7 300 + 5 · 28) = (7 000, 7 440). Наконец,
65
При b3 > – 70 или при b3 (290, +) оптимальное решение не изме-
нится.
3-я задача анализа на чувствительность
Пусть коэффициент c1 целевой функции изменился на с1. Подставим
новое значение целевой функции в качестве исходных условий и с помо-
щью матрицы линейных преобразований найдём соответствующую по-
следнюю симплекс-таблицу.
(31)
(Здесь было использовано свойство транспонирования (SB т)т = BSт,
чтобы записать результат столбцом, хотя свободные члены b0 образуют
строку.)
Осталось решить неравенство bn > 0, для каждого bi, i = 1, 2, 3.
Найдём пределы изменения первого ресурса и его ценность. Полагаем
в (31) b2 = b3 = 0.
70
175 1
44 88 b1 0 b1 350
142
71 61 b
b 0
1
61
176 352 1
72
9 23
b 0 b1 23
11 88 1
2353 23 2353 23 b
b1 44 88
1
44 88
Следовательно, при b1 (8 – 72/23, 8 + 142/61) = (112/23, 630/61) ~
(4.87, 10.33) статусы ресурсов не изменятся. Одновременно с изменением
объёма первого ресурса произойдёт изменение прибыли zmax (2353/44 –
23/88 · 142/61, 2353/44 +23/88 · 72/23) = (3225/61, 2389/44) ~ (52.87, 54. 30).
Ценность первого ресурса отрицательна и, как следует из формулы
(16), находится из индексной строки и равна y1 = –23/88, т. е. увеличение
объёма первого ресурса уменьшит оптимального значения прибыли.
Найдём пределы изменения второго ресурса и его ценность. Полагаем
в (31) b1 = b3 = 0.
175 5
44 44 b2 0 b2 35
71 3 b 0 b
71
176 176 2 2 3
9 1 b 0 b2 9
11 11 2
2353 27
2353 27 b2
b2 44 44
44 44
Следовательно, при b2 (7 – 35, 7 + 9) = (-28, 16) статусы ресурсов не
изменятся. Одновременно с изменением объёма второго ресурса произой-
дёт изменение прибыли zmax (2353/44 – 27/44 · 35, 2353/44 +27/ · 9) =
(3225/61, 2389/44) ~ (52.87, 54. 30).
Ценность второго ресурса положительна и аналогично нахождению
ценности первого ресурса получим y2 = 27/44, что означает, что увеличение
объёма второго ресурса приведёт к увеличению оптимального значения
прибыли.
Найдём пределы изменения третьего ресурса и его ценность. Полагаем
в (31) b1 = b2 = 0.
71
175 3
44 22 b3 0 b3 175 / 6
71 7 b 0 b3 71
176 88 3
14
9 1 b 0 b3 9
11 11 3
2353 47
2353 47 b3
b3 44 22
44 22
Следовательно, при b3 (24 – 71/14, 24 + ) = (265/14, + ) ~ (18.93 ,
+ ) статусы ресурсов не изменятся. Одновременно с изменением объёма
третьего ресурса произойдёт изменение прибыли zmax (2353/44 – 27/44 ·
35, + ) = (2259/44, + ) ~ (51.34, + ).
Ценность третьего ресурса положительна и аналогично нахождению
ценности первого и второго ресурсов и равна y2 = 47/22, что означает, что
увеличение объёма второго ресурса приведёт к увеличению оптимального
значения прибыли.
Так как ценность третьего ресурса выше ценности второго ресурса, то
увеличение его на единицу объёма более выгодна, чем увеличение второго
или уменьшение на единицу третьего ресурсов.
Так как все ресурсы дефицитные, то изменение запасов какого-либо
одного из ресурсов приведёт к изменению оптимального значения при-
были.
3-я задачи анализа на чувствительность.
Исследуем влияние изменения какого-либо одного коэффициент целе-
вой функции на оптимальное значение прибыли. Для этого введём малые
изменения ci, i = 1, 2, 3 в целевую функцию условия (29), после чего умно-
жим обратную матрицу на расширенную матрицу системы (30) и получим
оптимальную матрицу симплекс-метода с изменёнными значениями коэф-
фициентов целевой функции.
72
Целочисленное программирование.
В ряде случаях требуется получить оптимальное целочисленное реше-
ние. Такого рода задача уже не является задачей линейного программиро-
вания, но её решение находится в области планов симплекс-метода. Не-
трудно убедиться, что простое округление как правило не даёт оптималь-
ного решения. В связи с этим разработан специальный метод – «метод вет-
вей и границ», позволяющие на основе симплекс-метода, с одной стороны,
и перебора целочисленных решений, с другой стороны, находить оптималь-
ный симплекс-план.
76
Решение.
Видим, что прибыль могла бы быть больше, что понятно, так как об-
ласть допустимых планов расширилась. Интересным является то обстоя-
77
Транспортная задача
Транспортная задача – задача о наиболее экономном плане перевозок
однородного или взаимозаменяемого продукта из пунктов отправления в
78
an cn1 … cnm
xn1 xnm
n
j1 xij ai , i 1, 2,..., m
m
xij b j , j 1, 2,..., n (33)
i 1
xij 0, i 1, 2,..., m, j 1, 2,..., n
ПО \ b1 = 10 b2 = 30 b3 = 5
\ ПН
a1 = 15 10 5
a2 = 20 15 5
a3 = 10 10
Обезьяний Ботаниче-
Поход
питомник ский сад
С 1 тур. базы 5 6 20
Со 2 турбазы 10 12 5
60 180 110
200 5 6 20
200 10 12 5
Ответ представим в виде таблицы: (при этом с 1 турбазы все туристы от-
правятся на экскурсии, а на 2 турбазе 50 туристов останется. Минимальная
стоимость всех экскурсионных поездок равна 2 130 ед.)
Обезьяний Ботаниче-
Поход
питомник ский сад
С 1 тур. базы 20 180
Со 2 тур. базы 40 110
работы или станки в зависимости от начальных условий (m < n или m > n).
Поэтому без потери общности можно сразу положить m = n.
В задаче о назначениях переменная xij принимает всего два значения:
xij = 0, если j-я работа не выполняется на i-ом станке,
xij = 1, если j-я работа выполняется на i-м станке, поэтому соответству-
ющая задачи линейного программирования может быть сформулирована
следующим образом:
n
xij 1, j 1, 2,..., m
i 1
m
при ограничениях xij 1, i 1, 2,..., n
j 1
x 0 или x 1
ij ij
n m
минимизировать z cij xij
i 1 j 1
Матрица обмена
Найти равновесный вектор цен, если задана матрица обмена.
0.4 0.3 0.2 0.2 0.2 0
0.6 0.3 0.2 0.9
1). 0.4 0.7 2). 0.8 0.1 3). 0.2 0.4 0.6 4). 0.4 0.2 0.7
0.4 0.3 0.2 0.4 0.6 0.3
0.2 0.1 0.2 0.4 0.3 0.4 0.2 0.1 0.2 0.2 0.4 0.1
0.2 0.4 0.6 0.1 0.1 0.1 0.2 0.5 0.3 0.5 0.2 0.3
5). 0.3 0.5 0.2 0.3 6). 0.3 0.1 0.6 0.2 7). 0.2 0.1 0.3 0.3
0.3 0 0 0.2 0.3 0.4 0 0.2 0.3 0.2 0.1 0.3
№ Потребление Конечный
отрасли I II продукт
I 30 40 30
II 10 20 20
труд. затраты 2 3
капитал. 26 34
Найти валовый вектор продукции, полные затраты труда и капитало-
вложений по вектор-плану Y = (40, 50).
2. Найти валовый вектор продукции, полные затраты труда и капита-
ловложений по вектор-плану Y = (30, 80), если
№ Потребление Конечный
отрасли I II продукт
I 110 60 30
II 30 60 10
трудовые за- 30 40
траты
капиталовложе- 20 50
ния
3. Найти валовый вектор продукции, полные затраты труда, капитало-
вложений и расход электроэнергии по вектор-плану Y = (60, 30), если
№ Потребление Конечный
отрасли I II продукт
I 200 150 50
II 90 80 30
электроэнергия 40 20
труд. затраты 50 30
капитал. 80 10
90
Вариант № 2. 3 3 3 2
Вариант № 3. 3 4 4
96
3 5 1 5 2 9
2 4 3 7 3 1
a (48, 30, 33, 45,69)
7. С 1 3 2 6 2 7 .
b ( 32,37, 44, 25,37, 40)
3 4 6 9 5 2
1 3 2 6 2 7
Д. у.: из четвёртого пункта груз необходимо вывезти полностью.
8 4 6 5 7 3
4 8 5 2 6 4
a (51, 86, 29,37, 42)
8. С 7 3 2 6 2 3 .
b ( 48,59,56, 47, 27,17)
5 4 8 4 8 5
1 3 2 6 2 7
Д. у.: в пятый пункт груз необходимо завезти полностью.
Задача о назначении
Для заданной матрицы тарифов найти назначения на работу, имеющие
минимальную стоимость. Указать стоимость назначений.
6 9 8 6 4 5 1 3 5 5 6 4
1). 2 6 3 2). 5 3 2 3). 8 2 8 4). 6 9 5
7 7 5 9 6 8 6 3 4 3 4 7
3 4 3 4 7 5 8 3 4 3 2 6 3 4 6
6 3 6 6 5 3 5 6 3 1 9 3 6 6 5
8 5 7 5 4 7 2 7 5 4 4 8 7 8 3
5). 6). 7).
3 2 8 3 2 5 2 8 6 7 7 2 8 7 4
3 8 4 5 6 6 9 4 5 4 8 5 4 5 9
99
Ответы
Собственные значения и собственные векторы матрицы
1). {2, 1, 0} и a1 = (1, -2, 2) С1; a2 = (1, 0, 1) С2; a3 = (2, 3, 1) С3.
2). {– 6, 3, 2} и a1 = (0, 1, 6) С1; a2 = (3, 1, 0) С2; a3 = (2, 1, 0) С3.
3). {3, 2, 1} и a2 = (–3, 1, 3) С1; a2 = (–8, 3, 7) С2.
4). {2, 1, 1} и a2 = (1,–2, 2) С1; a2 = (1, 0, 1) С2.
5). 2 и a2 = (0, 0, 1) С1; a2 = (1, 2, 0) С2.
6). –1 и a = (1, 1, –1) С.
7). {3, 2, 1} и a2 = (1, 3, 9) С1; a2 = (1, 2, 4) С2; a3 = (1, 1, 1) С3.
8). {2, 1, 0} и a2 = (–1, 1, 0) С1; a2 = (1, –1, 1) С2; a3 = (1, 1, 0) С3.
9). {3, 3, 2} и a2 = (–2, 0, 1) С1; a2 = (4, 0, 1) С2; a3 = (3, 5, 1) С3.
10). {–3, 3, 1} и a2 = (6, –7, 5) С1; a2 = (0, 1, 1) С2; a3 = (–2, 1, 1) С3.
11). {6, 3, –2} и a2 = (1, 2, 1) С1; a2 = (1, –1, 1) С2; a3 = (–1, 0, 1) С3.
12). {2, 1, 1} и a2 = (0, 0, 1) С1; a2 = (–1, 2, 20) С2.
Матрица обмена
1). P = (3, 4) C; 2). P = (9, 8) C 3). P = (3, 4, 3) C
4). P = (1, 4, 4) C 5). P = (144, 350, 293, 54) C
6). P = (176, 152, 241, 142) C 7). P = (106, 253, 151, 162) C
8). P = (4030, 3172, 2423, 2479, 4328) C
9). P = (514, 342, 842, 1645, 775) C
Линейная балансовая модель
1. (188.235, 114.706, 720.588, 8794.12).
2. (241.176, 173.529, 14176.5, 13500).
3. (228.571, 71.4286, 10571.4, 13571.4, 19000).
4. (445.714, 217.143, 37714.3, 20000, 30742.9).
5. (121.4, 77.0, 98.7, 68.5, 83.1, 113.3, 13 046.4, 12696.6).
6. (173.6, 96.0, 165.3, 163.9, 105.0, 132.5, 18 181.5, 19 587.7, 46 098.4).
100
Графический и симплекс-методы
1. 90 – обычных станков и 40 – с программным управлением, 380 тыс. руб.
– максимальный объём реализации. Ценность стали = 2/3, ценность цвет-
ных металлов = 1/3, ценность обязательств = 0.
Д. У.: 100 – обычных станков и 20 – с программным управлением, 300
тыс. руб. – максимальный объём реализации. Ценность стали = 0, цен-
ность цветных металлов = 5, ценность обязательств = 0, ценность Д. У.
= 8.
2. 130 – «Audi», 30 – «Волг», макс. прибыль = 6100. Ценность возможно-
стей покраски мастерской = 40 ед., ценность краски и обязательств по
«Audi» = 0, ценность обязательств по «Волге» = 10 ед.
Д. У.: 110 – «Audi», 50 – «Волг», макс. прибыль = 5900. Ценность воз-
можностей покраски мастерской = 30 ед., ценность краски, обяза-
тельств по «Audi» и обязательств по «Волге» = 0, ценность Д. У. по
«Audi» = 10 ед.
3. По 100 пальто из ратина и кожи, макс. прибыль = 3600 тыс. руб. Цен-
ность обязательств по объёму реализации на 1-й сорт = 8/15, на второй = 0,
на 3-й = 4.
Д. У.: 110 пальто из ратина, 80 – из кожи, макс. прибыль = 3360 тыс.
руб. Ценность обязательств по объёму реализации на 1-й и 2-й сорта =
0, на второй = 0, на 3-й = 20 ед., ценность Д. У. = 24.
4. 50 – редукторов 1-го вида, 10 – редукторов 2-го вида, макс. прибыль =
21 000. Ценность чугуна = 150 ед., ценность стали = 0, ценность обязатель-
ного задания = 50 ед.
Д. У.: 40 – редукторов 1-го вида, 40 – редукторов 2-го вида, макс. при-
быль = 20 000. Ценность чугуна = 100 ед., ценность стали и обязатель-
ного задания = 0, ценность Д. У. по чугуну = 100 ед.
5. 100 – тракторов 1-го вида, 50 – тракторов 2-го вида, макс. прибыль = 40
000. Ценность возможностей мастерской = 300 ед., ценность финансовых
обязательств = 0, ценность обязательного задания на трактора 2-го типа =
100 ед.
101
Задача о назначении
0 1 0 0 1 0 1 0 0
1). 1 0 0 , С = 16 2). 1 0 0 , С = 17 3). 0 1 0 , С = 12
0 0 1 0 0 1 0 0 1
1 0 0 0 0
0 1 0 0 0 0 1 0
0 0 0 0 1
4). 0 0 1 , С = 21 5). , С = 16
1 0 0 0 1 0 0 0
0 0 1 0 0
0 0 1 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0 0 1
0 0 0 0 1 0 1 0 0 0
6). , С = 16 7). , С = 28
0 0 0 1 0 1 0 0 0 0
1 0 0 0 0 0 0 0 1 0
107
Список источников
1. Давыдов Е. Г. Введение в интеграционную систему Математика 2.
Москва: Радио и Связь, 1997.
2. Дьяконов В. П. Mathematica в математических и научных расчётах.
Москва: Солон-Пресс, 2004 (есть более поздняя версия).
3. Фридман Г. М., Леора С. Н. Математика & Mathematica. СПб:
Невский Диалект, 2010.
4. Дмитриев В. Г., Дорошева Е. Н., Савинов Г. В., Сорокина О. А. Ос-
новы линейного программирования. СПБ: изд. СПбГУЭФ, 2006.
5. Банди Б. Основы линейного программирования. Москва: Радио и
Связь, 1989.
6. Дорофеев В. Ю. Линейная алгебра и аналитическая геометрия. СПб:
«Ютас», 2005.
7. Таха Х. А. Введение в исследование операций. Москва: Мир, 1985.
8. Кузнецов А. В. Холод Н. И. Математическое программирование.
Минск: Высшая школа, 1984.
108
Оглавление
Введение .............................................................................................................. 3
Общий подход к применению пакета «Wolfram Mathematica» ..................... 4
Линейная алгебра ............................................................................................... 6
Линейные пространства .................................................................................. 6
Матрицы ........................................................................................................... 9
Собственные значения и собственные векторы матрицы ......................... 15
Системы линейных уравнений..................................................................... 17
Аналитическая геометрия............................................................................. 22
Модель обмена ............................................................................................... 26
Линейная балансовая модель ....................................................................... 30
Линейное программирование.......................................................................... 37
1. Основные задачи линейного программирования. ................................. 37
2. Графический метод. .................................................................................. 40
3. Анализ на чувствительность в графическом методе ............................. 45
1-я задача анализа на чувствительность. ................................................. 45
2-я задача анализа на чувствительность. ................................................. 51
3-я задача анализа на чувствительность. ................................................. 51
4. Двойственность в линейном программировании .................................. 54
5. Анализ на чувствительность в симплекс-методе. .................................. 57
1-я и 2-я задачи анализа на чувствительность......................................... 62
3-я задача анализа на чувствительность .................................................. 65
Целочисленное программирование. ............................................................... 75
Транспортная задача ........................................................................................ 77
Блокирование перевозок. .............................................................................. 84
Задача о назначениях .................................................................................... 85
Задания для самостоятельной работы ............................................................ 88
Собственные значения и собственные векторы ......................................... 88
Матрица обмена ............................................................................................. 88
Линейная балансовая модель ....................................................................... 89
Графический и симплекс-методы ................................................................ 91
109
«Mathematica»
для линейных экономических моделей
Дорофеев Вячеслав Юрьевич, доцент, канд. физ. мат. н.,
Савинов Геннадий Володарович, профессор, д. т. н.Составить