Финансовая академия при Правительстве РФ Н.В.Катаргин ЭКОНОМИКО-МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ Практикум для студентов по предметам “Информационные технологии”, "Финансы и кредит", "Мировая экономика" Москва 2005 УДК 683.1 Рецензенты: Доктор технических наук, профессор МГАУ Е.И.Забудский Доктор технических наук, профессор АТиСО В.Н.Квасницкий Катаргин Н.В. Экономико-математическое моделирование. Практикум для студентов по предметам “Информационные технологии”, "Финансы и кредит", "Мировая экономика". – М, 2005. – 20 с Рассмотрено решение некоторых экономико-математических задач, связанных с оптимизацией планирования закупок, перевозок, инвестиций, сетевых графиков, стратегии игры, замены оборудования, а также с прогнозированием. Основной используемый сервис - Поиск решения. Приведены примеры вычисления предельной и суммарной функции и эластичности, а также решения системы нелинейных дифференциальных уравнений применительно к экологической задаче. УДК 683.1 © Н.В.Катаргин, 2005 2 Введение На Западе во второй половине 80-х годов, а в России в последние несколько лет рынок насытился персональными компьютерами (ПК), относительная стоимость их резко упала, и теперь ЭВМ - обычный атрибут не только научной лаборатории или КБ, но и банка, бухгалтерии, склада, цеха, офиса управленца и т.д. Изменилось назначение ЭВМ: если до 80-х годов преобладали математические численные расчеты, то в настоящее время компьютеры больше используются для хранения, поиска и пересылки информации, графических построений, обучения. Расчеты проводятся по готовым специализированным программам - бухгалтерским, математическим и т.д. Программное обеспечение стало "дружественным", что позволило работать на ПК не только профессиональным программистам и специально обученным высококвалифицированным сотрудникам, но и пользователям, не разбирающимся в тонкостях программирования и устройства ЭВМ. Уровень общей технической подготовки пользователей ЭВМ также резко снизился вплоть до детей. Экономико-математическое моделирование развивалось в течение ХХ века, но его практическая реализация была ограничена из-за сложности расчетов и осуществлялась научными коллективами НИИ и ВЦ. Программирование сложных алгоритмов в качестве сервисов и функций электронных таблиц Excel позволило их использовать широкому кругу научных сотрудников и практиков, от которых требуется только грамотная постановка задачи, подбор сервисов и функций для ее решения, подбор исходных данных, построение целевых функций, начальных значений и ограничений, проведение расчетов с помощью сервисов и функций, интерпретация результатов и оценка их надежности. При этом знание математических методов и моделей по-прежнему остается актуальным. В данном практикуме рассмотрено решение некоторых экономикоматематических задач, связанных с планированием закупок, перевозок, инвестиций, сетевых графиков, стратегии игры, а также с прогнозированием. Основной используемый сервис - Поиск решения. Рассмотрены также две задачи - решение уравнения и системы уравнений, которые предваряют задачи по оптимизации планирования. Кроме того, приведены примеры вычисления предельной и суммарной функции и эластичности, а также решения системы нелинейных дифференциальных уравнений применительно к экологической задаче. Лабораторная работа № 1: Решение уравнений Многие инженерные и экономические задачи сводятся к исследованию функций одной или нескольких переменных вида Y=f(X) или Y=f(x1,x2,…xN). Исследовать функцию - значит установить область ее существования (те значения Х при которых возможно вычислить Y), определить области значений Х, при которых Y принимает положительные, отрицательные и 3 аномально большие значения ("уходит в бесконечность"), найти максимумы, минимумы, иногда - точки перегиба графика функции, а также корни уравнения Y= f(x) – значения х, при которых Y обращается в 0 (график функции пересекает ось абсцисс). Наиболее простые методы исследования функциональных зависимостей с помощью компьютера - итерационные, основанные на многократном выполнении сравнительно простых операций. Один из итерационных методов - табулирование функции (расчет значений Y при заданных X) в большом диапазоне значений Х с большим шагом, затем табулирование с небольшим шагом в наиболее интересных диапазонах - вблизи корней, максимумов и минимумов, далее - сужать диапазоны Х и уменьшать шаг для получения все более точных значений экстремумов и корней. Получаемые решения зависят от того, в каких диапазонах Х и Y ведется их поиск, т.е. от их начальных значений. Различные итерационные методы разрабатывались начиная с XVIII века, и в настоящее время имеется большое количество компьютерных программ для их использования. Наиболее простые и удобные программы оформлены в виде функций Excel "Подбор параметра" и "Поиск решения". Используйте функцию "Подбор параметра" для решения уравнений: 1. Построить параболу Y=0,1*х2-х-11: задать область определения (х) от –20 до +20. Для этого занести в соседние ячейки (например А5 и А6) –20 и –19, выделить обе ячейки, поставить курсор на черный квадратик в правом нижнем углу, нажать левую клавишу мыши и потащить вниз до появления числа 20; в ячейку рядом с –20 вставить формулу =0,1*А5^2-А5-11, скопировать ее вниз и построить график. Сделать активной ячейку Y вблизи одного из корней, вызвать Подбор параметра (в Меню Сервис), заставить компьютер подобрать Х, чтобы Y обратился в 0: установить в окне Значение 0, в нижнем окне - адрес Х, щелкнув по соответствующей ячейке мышью. Щелкните по клавише ОК. Не забудьте найти второй корень, выбрав исходные Y и X вблизи него. 2. Найти корни, двигая мышью точку графика в 0. Компьютер сам вызовет Подбор параметра. 3. Найти корни уравнения третьего порядка: протабулируйте функцию Y=х3-4х2-5х+6=0 на достаточно большом интервале, постройте график, определите, сколько корней и где они примерно находятся, найдите корни через Подбор параметра. Лабораторная работа № 2: Решение систем уравнений Решите систему из трех уравнений с тремя неизвестными вида aiX+biY+ciZ=di (i = 1,2,3), используя команду Сервис-Поиск решения. Для этого внесите в таблицу приблизительные значения неизвестных X, Y, Z, значения коэффициентов при этих неизвестных ai, bi, ci (i = 1,2,3); перемножьте X, Y, Z на соответствующие коэффициенты и просуммируйте 4 произведения по строкам. Запустите Поиск решения; В качестве целевой ячейки возьмите первую сумму, задайте установку в ней первого свободного члена d1; на две другие суммы наложите ограничения: равенство двум другим свободным членам d2 и d3; нажмите кнопку “Параметры” и ознакомьтесь с параметрами и методами, используемыми при оптимизационных расчетах; закройте окно “Параметры”, нажав ОК, и запустите выполнение программы (Выполнить). Пример: C D E F Комментарии 3 X Y Z Неизвестные (числа) 4 5 a1 b1 c1 d1 Коэффициенты в 6 a2 b2 c2 d2 уравнениях 7 a3 b3 c3 d3 (числа) 8 9 a1*X b1* Y c1 *Z F9-целевая, = d1 C9:E9) 10 a2*X b2 *Y c2 *Z Ограничения: C10:E10) F10=d2,F11=d3 11 a3*X b3 *Y c3 *Z C11:E11) Лабораторная работа № 3. Математическое программирование. Планирование закупок Основная цель планирования любой деятельности - получение максимального результата (прибыли, объема производства и т.п.) при имеющихся ограничениях. Разработке оптимальных программ-планов посвящен раздел математики под названием “математическое программирование”, в частном случае - “линейное программирование”. Стандартная формулировка задачи математического программирования: изменяя значения аргументов, требуется найти минимум или максимум зависящей от них целевой функции, наиболее полно характеризующей эффективность производства или закупок, при наложенных ограниченияхравенствах и ограничениях-неравенствах. Допустимое решение, отвечающее этим условиям, называется оптимальным планом. Его может не существовать, если наложенные ограничения противоречивы, а иногда может существовать множество решений. В задачах линейного программирования целевая функция и функции в ограничениях - линейные. Для решения задач линейного программирования используются различные методы (Ньютона, наискорейшего спуска, симплекс-метод), общий принцип которых таков: выбирается неоптимальный опорный план (аналогично приблизительным значениям X, Y, Z в Лаб. №2) и его параметры варьируются с целью последовательного улучшения плана, то есть оптимизации целевой функции при соблюдении всех ограничений, с использованием сервиса Поиск решения, что дает возможность решать оптимизационные задачи, не вникая в сложную математику. 5 Предлагаемое упражнение является предельно упрощенным вариантом реальной задачи по составлению рациона для животных, которую можно сформулировать следующим образом: заданы нормы потребления различных компонент - жиров, белков и т.д. (в экономической интерпретации - благ) и их содержания в различных видах кормов, а также цены кормов. Требуется составить план закупки кормов, обеспечивающий минимальную стоимость рациона при потреблении благ не меньше норм. Для решения задачи требуется внести в таблицы Excel нормы, содержания компонент в кормах, цены кормов, а также опорный план - произвольные значения масс закупаемых кормов. Содержания компонент домножаем на массы кормов и суммируем по компонентам, получая их суммарные количества (сколько всего съедено жиров, белков и т.д.), которые в ограничениях Поиска решения устанавливаются больше или равными нормам. Домножаем цены кормов на их количества, суммируем произведения и получаем стоимость закупки целевую функцию, для которой в Поиске решения задаем минимизацию. Изменяемые ячейки - массы закупаемых кормов, на них накладывается глобальное ограничение - требование неотрицательности. Все числа в данном примере - условные. Составьте рацион для коровы из 4 видов кормов, содержащих 4 компонента (жиры, белки, углеводы, витамины), имеющий минимальную стоимость: составьте таблицу по приведенному образцу; рацион (количество кормов) задайте произвольно; перемножьте содержание компонент в кормах и их цены на количество соответствующих кормов (используйте копирование формулы); просуммируйте результаты умножения по столбикам (результаты – сколько всего компонент будет съедено и сколько это стоит); вызовите Сервис – Поиск решения; задайте Целевую ячейку с суммарной стоимостью (здесь F18), цель – Минимальное значение, Изменяя ячейки с количеством кормов (здесь G8:G11), Ограничения Добавить : суммарное потребление компонент должно быть не меньше норм (здесь B16:E16 B6:E6) и количество кормов не может быть отрицательным (здесь G8:G11 0); ознакомьтесь с Параметрами и нажмите Выполнить. A B C D E F G 5 жиры белки углеводы витамины цена количество 6 нормы 40 70 1200 150 7 Корма 8 Сено 5 3 100 10 5 1 9 Овес 22 12 120 20 10 1 10 Ячмень 33 17 88 30 15 1 11 Силос 55 23 100 80 25 1 12 6 13 14 15 16 17 18 Сено Овес Ячмень Силос =B8*$G8 22 33 55 3 12 17 23 100 120 88 100 10 20 30 80 5 10 15 25 Сумма =(B13:B16) 55 408 140 55 Целевая Применим данную технологию для изучения функции потребительского предпочтения, называемой также функцией Р.Стоуна U(x)=П(xi - ai)^ i где ai - минимально необходимое количество i - го блага, которое приобретается в любом случае (в данном случае - нормы), i характеризует степень важности блага. Применительно к данной задаче функция Стоуна характеризует качество молока, и мы можем минимизировать стоимость рациона при заданном качестве молока или максимизировать качество при заданной стоимости. Для этого зададим i и вычислим функцию Стоуна, которую используем в качестве дополнительного ограничения. Целесообразно в выражение в скобках добавить очень малое число, например 10-7, чтобы избежать отрицательных чисел, которые могут возникнуть из-за погрешности расчетов при вычитании равных величин. жиры белки углеводы витамины i 0,3 0,3 0,15 0,25 Качество (i -норма i)^ i 4,761711 3,265933 2,245139 2,864089 100 Здесь приведены числа после решения задачи минимизации стоимости рациона при соблюдении норм и обеспечении качества 100. Без изменения таблиц можно решить другую задачу - максимизировать функцию Стоуна, объявив ее целевой ячейкой, при заданной стоимости рациона, которая становится ограничением. Лабораторная работа № 4. Планирование перевозок Составьте оптимальный план перевозок бетонных блоков с трех заводов на четыре стройки. Считаем, что за один рейс машина перевозит один бетонный блок. Задайте мощности заводов, потребности строек и расстояния между заводами и стройками. Холостые пробеги, состояние дорог и прочие факторы не учитываются, что не влияет на общие принципы постановки задачи и ее решения. Последовательность решения задачи: Создайте таблицы: - расстояния между заводами и стройками, - потребности строек (строка), 7 - мощности заводов (столбец) - первоначальный план перевозок - количество рейсов с i-го завода на j-ю стройку: Ячейка C D E F I J 3 Р а с с т о я н и я км Стройка1 Стройка2 Стройка3 Стройка4 Планы заводов 4 5 Завод 1 6 9 2 11 900 6 Завод 2 12 3 6 7 200 7 Завод 3 8 14 15 9 300 Потребности 8 100 300 600 400 (D8:I8)=(J5:J7) 9 10 11 12 13 14 15 16 17 строек План перевозок (число рейсов с заводов на стройки) Вывезено с заводов =CУММА(D9:I9) =CУММА(D10:I10) =CУММА(D11:I11) Завод 1 1 1 1 1 Завод 2 1 1 1 1 Завод 3 1 1 1 1 Завезено (D10: (E10: (F10: (I10: на стройки D12) Целевая: E12) F12) I12) Число рейсов * расстояния Cуммарный Завод 1 =D10*D5 пробег Завод 2 Скопируйте формулу на всю таблицу всех машин =СУММА(D14:I16) Завод 3 Суммарная потребность всех строек должна совпадать с суммарной мощностью всех заводов. - Запустите Сервис - Поиск решения и заполните окна появившейся экранной формы. Целевая ячейка в данном случае - J17, в которой находится суммарный пробег машин со всех заводов на все стройки, и значение в которой надо сделать минимальным (или заданным, если надо “нагнать” план по километражу). Изменять можно ячейки D10 - I12 (план перевозок) при условии равенства мощностей заводов и потребностей строек, то есть ячеек J10 - J12 и D13 - I13 значениям, заданным в J5 - J7 и D8 - I8. Кроме того, следует задать условие, что количества рейсов - величины положительные и целые. Запустите выполнение программы (Выполнить). Лабораторная работа № 5. Выбор оптимального пути в транспортной сети Транспортная сеть состоит из n узлов (будем называть их также пунктами или городами), некоторые из которых соединены магистралями. Стоимость проезда по каждой из таких магистралей известна и отмечена на схеме. Найти оптимальный маршрут проезда из 1-го пункта в n-ый. В данном примере целевая функция - суммарная стоимость проезда - нелинейная, а область допустимых решений является дискретным множеством - набором 8 единиц и нулей, означающих проезд из одного города в другой или отказ от проезда. Пусть сеть состоит из 10 узлов, соединённых магистралями согласно схеме: 2 7 5 10 9 5 7 1 3 4 6 8 8 6 6 8 3 10 4 11 6 5 9 9 Стоимость проезда из пункта i в пункт k равна Rik , и элементы этой матрицы приведены на схеме. Требуется найти оптимальный маршрут из 1-ого пункта в 10-ый. Внесите стоимости проезда (расстояния) Rik в таблицу Excel и задайте опорный план поездки Xik, который в данном случае представляет из себя матрицу из единиц и нулей, соответствующих перемещению или не перемещению из одного пункта в другой. В отличие от предыдущего примера (Лаб. № 4), здесь не задаются стоимости проезда (расстояния) между пунктами, дорога между которыми проходит через промежуточный пункт, и используется только часть матрицы выше главной диагонали, что позволяет резко сократить количество изменяемых ячеек, т.е. упростить и ускорить решение задачи. Для удобства настройки Поиска решения создайте дополнительную таблицу План поездки Xik в компактном виде, из которой копируются значения в зависимые от нее ячейки таблицы План поездки Xik. В ячейки таблицы План поездки Xik внесите формулы, связывающие ее с таблицей План поездки Xik в компактном виде. Просуммируйте строки и столбцы таблицы План поездки Xik ; ненулевое значение в сумме по строке означает выезд из соответствующего пункта (из п.1 - обязательно); ненулевое значение в сумме по столбцу означает приезд в соответствующий пункт (в п.10 - обязательно). Приезд в какой-либо пункт, кроме п.10, требует обязательного выезда из него, т.е. соответствия сумм по столбцам суммам по строкам. Перемножьте таблицу стоимостей на План поездки Xik и вычислите целевую функцию как сумму по таблице произведений Rik * Xik (аналогично Лаб. №4). Запустите Поиск решения и установите Целевую ячейку Сумма Rik * Xik, Изменяя ячейки - План поездки Xik в компактном виде, Ограничения: План поездки Xik в компактном виде ≤ 1, ≥ 0, целые; суммы по строкам таблицы План поездки (выезд), начиная со второй (с п.2) должны равняться суммам по столбцам (приезд), исключая последнее значение (п.10). 9 Суммы по первой строке (выезд из п.1) и последнему столбцу (приезд в п.10) должны равняться 1. Установите флажок Показывать результаты итераций в меню Параметры и запустите Выполнить. Стоимость проезда (расстояния) Rik куда откуда 1 2 3 4 5 6 7 8 9 2 10 3 8 4 6 5 6 7 8 9 6 8 6 4 5 10 5 7 9 9 3 11 План поездки Xik в компактном виде 16 17 B 1 C 1 D 1 E 1 1 F 1 G 1 1 H 1 1 I 1 1 J 1 1 План поездки Xik суммы по строкам: куда откуда 1 2 3 4 5 6 7 8 9 2 3 =B16 4 =C16 5 6 7 8 10 выезд 3 1 1 1 2 3 =I17 1 =J16 1 =J17 1 9 =D16 =E16 =E17 =F16 =G16 =G17 =H16 =H17 =I16 Приезд: суммы по столбцам 1 1 1 2 3 4 5 10 0 0 0 0 8 0 0 0 0 6 7 8 9 0 0 0 0 0 0 0 0 1 Rik * Xik 6 0 0 0 0 0 0 0 0 2 1 0 5 7 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 10 2 Целевая: 0 0 0 0 6 8 0 0 0 2 1 3 Sum Rik * Xik = 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 4 0 0 0 5 0 0 0 0 9 3 11 97 В результате выполнения программы получаем: План поездки Xik откуда 2 3 4 1 2 3 4 5 6 7 8 9 0 0 1 5 6 7 8 10выезд 9 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 Приезд: суммы по столбцам 0 0 1 0 1 0 1 0 1 Оптимальный план поездки: пункты 1 => 4 => 6 => 8 => 10. Приезд в город становится обязательным, если введено дополнительное ограничение - равенство 1 суммы по соответствующему столбцу таблицы План поездки. Если необходимо сделать обязательным приезд в один из группы городов - вычислите сумму по ячейкам приезда в эти города и введите ограничение: равенство этой суммы единице. Лабораторная работа № 6. Оптимальное распределение ресурсов между отраслями на N лет При вложениях Х1 и Х2 отрасли дают прибыль 0,6*Х 1 и 0,5*Х2, кроме того они дают средства для реинвестирования с перераспределением в конце каждого года, равные 0,7*Х1 и 0,8*Х2. Сумма инвестиций за первый год равна 10000 у.е. Требуется составить план вложений средств на 5 лет с целью получения максимальной суммарной прибыли. Заполните таблицу с произвольным опорным планом: 2 3 4 5 6 7 8 9 10 11 B Год 1 2 3 4 5 C 1 2 2 2 2 2 D E Вложено 2 Всего =C4+D4 2 2 4 2 4 2 4 2 4 Опорный план F G H Прибыль Возврат 10000 =I4+J4 3 3 3 1 =0,6*C4 1,2 1,2 1,2 1,2 2 =0,5*D4 1 1 1 1 I J Возврат 1 2 =0,7*C4 =0,8*D4 1,4 1,6 1,4 1,6 1,4 1,6 1,4 1,6 Целевая: сумм.прибыль (G4:H8) 11 Запустите Поиск решения с суммарной прибылью в качестве целевой ячейки, которую надо максимизировать, изменяя план вложений (здесь C4:D8), при ограничениях: вложения 0, вложения в обе отрасли за первый год равны 10000, в последующие годы - возврату за предыдущий год (E4:E8=F4:F8). Ниже представлены результаты расчетов. 11 2 3 4 5 6 7 8 9 10 11 B Год 1 2 3 4 5 C 1 0 0 0 5120 3584 D Вложено 2 10000 8000 6400 0 0 E Всего 10000 8000 6400 5120 3584 F Возврат 10000 8000 6400 5120 3584 G H Прибыль 1 2 0 5000 0 4000 0 3200 3072 0 2150,4 0 I J Возврат 1 0 0 0 3584 2508,8 2 8000 6400 5120 0 0 Целевая: сумм.прибыль 17422,4 Лабораторная работа № 7 . Оптимизация сетевого графика плана комплекса работ Задача сетевого планирования - построение рационального плана проведения сложного комплекса работ, состоящего из отдельных элементарных взаимно обусловленных работ, т.е. выполнение некоторых работ нельзя начать раньше, чем будут завершены другие, опорные работы. При составлении сетевого графика используется структурная таблица комплекса работ, содержащая перечень элементарных работ комплекса, перечень работ, на которые опираются элементарные работы и время выполнения каждой работы. Метод сетевого планирования позволяет на основе этой информации указать сроки начала каждой работы комплекса, вычислить время, необходимое для выполнения всего комплекса работ, выявить работы, его определяющие - критические, а также провести оптимизацию плана путем перераспределения средств и, соответственно, сроков выполнения работ. а2 а5 а1 а3 а4 а6 а8 а7 Оптимизация плана комплекса работ может быть проведена после нахождения критических работ и резервов, содержащихся в некритических работах. Далее рассмотрены два варианта сокращения критического пути: с вложением дополнительных средств в критические работы и с перераспределением средств между критическими и некритическими работами без изменения их суммы. Предполагается, что время i- й работы ti' изменяется по закону ti нов = ti * (1-bi * xi) в зависимости от дополнительных вложений (или изъятий) xi ci. В первом варианте минимизируется целевая функция - сумма дополнительных вложений в критические работы, при ограничениях: tкрит =40, все 0 xi ci. Во втором варианте минимизируемая целевая функция tкрит при ограничениях -ci xi ci и xi = 0. Обратите 12 внимание на то, что в обоих вариантах не организована проверка на превращение некритических путей в критические. При реальном планировании это надо учитывать. Вариант 1 Вариант 2 Работа Опорные работы a1 a2 a3 a4 a1,a2 a5 a1,a2,a3 a6 a1,a2,a3 a7 a6 a8 a4,a5,a7 t Sum t 20 10 8 20 40 10 30 5 25 5 30 10 50 b 0,2 0,1 0,2 0,3 0,4 0,1 0,3 0,1 c 2 3 1 2 1 2 4 5 Целевая xi Критич.путь a1+a4+a8 t нов x 0 20 0 10 0 8 1,666667 9,999999 0 10 0 5 0 5 0 10 1,666667 40 x t нов 2 12 -3 13 -1 9,6 2 8 -1 14 -2 6 -2 8 5 5 -c -2 -3 -1 -2 -1 -2 -4 -5 xi 0 Критич.путь 25 Лабораторная работа № 8. Оптимизация вложения средств в N предприятий В данном примере показано применение функции Поиск решения при нелинейной зависимости результатов от инвестиций и дискретном множестве значений аргументов (здесь - инвестиций), т.е. аргументы могут принимать значения из ограниченного набора. Обычно такие задачи решаются с помощью функций и уравнений Беллмана. Требуется оптимизировать вложение ограниченных ресурсов в N предприятий с целью получения максимальной прибыли. Прибыль, получаемая каждым предприятием, зависит от вложенных ресурсов нелинейно, и эта зависимость задается таблично, т.е. величины вложений представляют собой дискретное множество. В данном примере требуется разделить 5 млн. руб. между 4 предприятиями. Прибыль fik k -го предприятия в зависимости от вложения xi задается таблично. План aik должен представлять собой матрицу единиц и нулей, при этом 1 означает вложение xi в k-е предприятие. Задайте опорный план aik, состоящий из одинаковых чисел, например единиц. Сформируйте целевую функцию - сумму fik*aik. Сформируйте таблицу произведений xi*aik, сумма которых равна суммарным затратам. (Не забудьте поставить символ $ перед номером столбца Х). Вызовите Поиск решения и задайте целевую ячейку Sum(fik*aik) и ограничения: все aik целые и 0 aik 1, все k aik 1, Sum(xi*aik) =5. 13 x 1 2 3 4 5 f1 f2 8 6 10 9 11 11 12 13 18 15 Опорный план aik 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 k aik 5 5 fik * aik 1 8 6 2 10 9 3 11 11 4 12 13 5 18 15 f3 3 4 7 11 18 f4 4 6 8 13 16 1 1 1 1 1 5 1 1 1 1 1 5 3 4 7 11 18 4 6 8 13 16 Ограни чения xi* aik - инвестиции 1 1 2 2 0 3 3 1 Цел. 4 4 5 5 1 Sum(xi*aik) Ограничение Целевая Sum(fik*aik) 1 2 3 4 5 1 2 3 4 5 60 =5 203 В результате выполнения Поиска решения должны получиться результаты: x 1 2 3 4 5 f1 8 10 11 12 18 f2 6 9 11 13 15 f3 3 4 7 11 18 план aik 1 1 0 1 2 0 1 0 3 0 0 0 4 0 0 0 5 0 0 0 k aik 1 1 1 fik * aik дохо ды 1 8 0 3 2 0 9 0 3 0 0 0 4 0 0 0 5 0 0 0 f4 4 6 8 13 16 1 0 0 0 0 1 4 0 0 0 0 Ограни чения xi* aik - инвестиции 1 0 0 2 0 0 0 1 Цел. 0 0 0 0 1 Sum(xi*aik) Ограничение Целевая Sum(fik*aik) 1 0 0 0 0 1 0 0 0 0 5 =5 24 доход Надо вкладывать по 1 млн.р. в предприятия №1, 2, 4 и 2 млн.р. в №3. На этом примере можно изучать особенности нелинейного программирования, в частности - зависимость решения от опорного плана. Используя найденное решение в качестве опорного плана, измените f43 на большое число, например 500 (вложить 4 млн.р. в предприятие 3 и получить прибыль 500, т.е. сделать это вложение очевидно выгодным). Но после запуска Поиска решения вы увидите старое решение, т.е. компьютер не может преодолеть какую-то "горку" в пространстве решений. Только после замены 14 опорного плана на матрицу одинаковых чисел компьютер выдает правильное решение. Лабораторная работа № 9. Задача выбора стратегии обновления оборудования Важной экономической проблемой является своевременное обновление оборудования: станков, автомобилей, компьютеров и др. Старение оборудования включает физический и моральный износ, в результате чего растут затраты на ремонт и обслуживание, снижается производительность труда и ликвидная стоимость. Задача состоит в определении оптимальных сроков замены старого оборудования. Критерием оптимальности являются либо доход от эксплуатации оборудования (задача максимизации), либо суммарные затраты на эксплуатацию (задача минимизации) в течение планируемого периода. Рассмотрим пример: Новое оборудование стоит р0=4000 р., его ликвидная стоимость убывает по закону р= р0*2-t , где t - возраст в годах, затраты на годовую эксплуатацию r(t) = 600*(t+1). Через сколько лет надо заменять оборудование, т.е. продавать старое и покупать новое? В данном примере целевая функция нелинейная, а оборудование можно заменять только в конце года, т.е. область допустимых решений является дискретным множеством. В таблице план замены оборудования представлен в виде единиц и нулей, что означает замену оборудования в конце года или продолжение эксплуатации. Стоимость эксплуатации за первый год равна 600, ликвидная стоимость (Цена) 4000/2 = 2000. В последующие годы, начиная со второго, стоимость эксплуатации вычисляем по формуле =ЕСЛИ(G5<0,1;600;600+B5), Цена =ЕСЛИ(G5<0,1;C5/2;2000). Стоимость продажи (Продажа) равна Цене или нулю в зависимости от Плана. Покупка = 4000*План, Покупка последнего года равна нулю. Целевую ячейку формируют затраты на эксплуатацию и покупку, а также доходы от продаж: r(t) + p0(t) - p(t) . Ограничения на План: 0 План 1, целые. A Год 1 2 3 4 5 6 7 8 9 10 5 6 7 8 9 10 11 12 13 14 15 16 r(t)= 17 18 B Эксплуат. 600 600 1200 600 1200 600 1200 600 1200 600 8400 C Цена 2000 2000 1000 2000 1000 2000 1000 2000 1000 2000 D E F G Продажа Покупка План 2000 4000 1 0 0 0 1000 4000 1 0 0 0 1000 4000 1 0 0 0 1000 4000 1 0 0 0 1000 4000 1 2000 0 1 p0(t)= p(t)= 8000 20000 Сумм. затраты 15 24400 После выполнения Поиска решения получаем A Год 1 2 3 4 5 6 7 8 9 10 5 6 7 8 9 10 11 12 13 14 15 16 r(t)= 17 18 B Эксплуат. 600 1200 1800 600 1200 600 1200 600 1200 1800 10800 C Цена 2000 1000 500 2000 1000 2000 1000 2000 1000 500 D E F G Продажа Покупка План 0 0 0 0 0 0 500 4000 1 0 0 0 1000 4000 1 0 0 0 1000 4000 1 0 0 0 0 0 0 500 0 1 p0(t)= p(t)= 3000 12000 Сумм. затраты 19800 Задача является нелинейной, и ее успешное решение зависит от опорного плана. Попробуйте ее решить, используя различные опорные планы. Лабораторная работа № 10: Расчет стратегии в игре Многие социально-экономические ситуации обладают тем свойством, что в них сталкиваются не менее двух сторон с различными, часто противоположными интересами, и они могут действовать различными способами. Такие ситуации называются конфликтными. Математическая модель конфликтной ситуации называется игрой. Если играют двое, и проигрыш одного равен выигрышу другого, то такая игра называется игрой двух сторон с нулевой суммой выигрыша. Любое возможное в игре действие игрока называется чистой стратегией (например, выпуск одного товара), их комбинация - смешанной стратегией (в данном примере - выпуск нескольких видов товаров). Матрица, в которой представлены выигрыши игрока в зависимости от его стратегий и ответных стратегий противника, называется матрицей выигрышей, или платежной матрицей. Обычно оптимизация плана игры сводится к выбору частот (или вероятностей) применения чистых стратегий (например, соотношения выпускаемых товаров) с целью минимального проигрыша при любых стратегиях противника (здесь - рынка), и для проведения расчетов можно использовать Поиск решения. Задана платежная матрица выигрышей при различных стратегиях выпуска продукции А1, А2, А3 и возможных состояниях рынка В1, В2, В3, В4. Требуется определить оптимальные стратегии SA*= (p1*, p2*, p3*) и SВ*= (q1*, q2*, q3* , q4*). SA* обеспечивает средний выигрыш (стоимости игры) при любой стратегии В (спроса) и выигрыш = при оптимальной стратегии В: 16 a11p1+a21p2+a31p3 a12p1+a22p2+a32p3 a13p1+a23p2+a33p3 a14p1+a24p2+a34p3 a11x1+a21x2+a31x3 1 a12x1+a22x2+a32x3 1 a13x1+a23x2+a33x3 1 a14x1+a24x2+a34x3 1 Здесь xi=pi/. Вводим произвольные значения x1, x2, x3 и домножаем на них столбцы платежной матрицы. Столбец В2 игнорируем как доминируемый, т.е заведомо невыгодный. Спрос Продукция A1 A2 A3 B1 3 9 7 aik*xi B2 3 10 7 Убрать как доминируемый 6 18 14 38 B3 6 4 5 0 B4 8 2 4 x1 x2 x3 Целевая 12 8 10 30 2 2 2 6 16 4 8 28 1 1 1 После выполнения Поиска решения получим результаты для игрока А: выпуск продукции 1 равен 0,4 , продукции 3 - 0,6. Применив ту же технологию к стратегии игрока В получим оптимальную стратегию рынка: вероятности 0,5 для состояний 1 и 4. Ограничения Продукция A1 A2 A3 Спрос B1 3 9 7 B2 3 10 7 Убрать как B3 6 4 5 x1= x2= x3= Стратегии игрока А 0,074074 p1= 0 p2= 0,111111 p3= 0,4 0 0,6 1/= 0,185185 Выигрыш 5,4 0,090909 =1/= 0,181818 Выигрыш 5,5 B4 8 2 4 доминируемый 0,222222 0 0,777778 1 0,090909 q1 0,5 bikxk 0,272727 0,818182 0,636364 0,444444 0,592593 0 0 0,555556 0,444444 1 1,037037 0 Стратегии игрока В q2 q3 0 0 0 0 0 q4 0,5 0,727273 0,181818 0,363636 17 1 1 1 Лабораторная работа № 11. Аппроксимация и экстраполяция функции с использованием метода наименьших квадратов и оценкой точности методом Монте-Карло Прогнозирование тенденций развития или взаимной зависимости переменных является не менее важной задачей, чем оптимальное планирование. Для решения задачи прогнозирования требуется по экспериментальным точкам провести гладкую кривую и выявить функциональную зависимость (аппроксимация), продлить ее в неизученную область (экстраполяция) и оценить надежность прогноза. Хорошо разработана методика линейного регрессионного анализа (линейной аппроксимации), нелинейные зависимости (степенные, показательные, логарифмические) научились линеаризовать, т.е. сводить к линейной. Вид функции часто задается из теоретических соображений, коэффициенты вычисляются методом наименьших квадратов (МНК), т.е. подбираются таким образом, чтобы сумма квадратов отклонений (разностей) теоретических и экспериментальных значений при равных аргументах была минимальной. Для конкретизации задачи будем исследовать продажу пива в зависимости от температуры воздуха в диапазоне 0О - 30О. Нам известны продажи при различных температурах в диапазоне 0 О - 20О, требуется дать прогноз на диапазон 21О - 30О. В качестве функциональной зависимости выберем квадратный трехчлен Y = at2 + bt+d, т.к. любую функцию в некотором диапазоне можно достаточно точно представить многочленом. В качестве истинной закономерности Yидеал возьмем функцию с коэффициентами a=0,1, b=-1, d=5. "Экспериментальные" значения Y в диапазоне 0О - 20О можно задать вручную, добавляя к Yидеал случайные числа в диапазоне 4, но лучше генерить их по формуле Yэкспер = Yидеал + (СЛЧИС()-0,5)*3* КОРЕНЬ(Yидеал). Выражение (СЛЧИС()-0,5) генерит равномерно распределенные случайные числа в диапазоне -0,5 … 0,5 , КОРЕНЬ(Yидеал) равен стандартному отклонению для распределений Гаусса и Пуассона, сомножитель 3 обеспечивает распределение в диапазоне 1,5. Разумеется, лучше использовать настоящее распределение Гаусса или Пуассона, но это потребует достаточно больших усилий и может быть рекомендовано для проведения реальных научно-исследовательских работ. При каждом щелкании мышью набор Yэкспер будет меняться, что мешает работе, и полученные значения надо скопировать в столбец Yэкспер2, используя Правка Специальная вставка - Значения. Затем следует создать функцию Yтеор = at2 + bt+d диапазоне 0О - 30О, используя произвольные коэффициенты a, b, d, расположенные в ячейках с присвоенными именами ("опорный план"). Вычисляем квадраты отклонений (Yтеор -Yэкспер2)2 в диапазоне 0О - 20О и их сумму, которая будет минимизируемой целевой функцией. Изменяемые ячейки - a, b, d , ограничений нет. После выполнения Поиска решения 18 постройте графики Yидеал, Yэкспер2 и Yтеор в диапазоне 0О - 30О и сравните полученные значения a, b, d и Yтеор с идеальными. Для проверки точности получаемых результатов используйте метод статистических испытаний, или метод Монте-Карло. Расчеты проводятся многократно с использованием различных случайных совокупностей исходных данных Yэкспер, результаты расчетов a, b, d и Yтеор(30О) накапливаются, затем вычисляют их среднее значение и стандартное отклонение с использованием функций СРЗНАЧ и СТАНДОТКЛОН. Копирование результатов можно проводить, используя обычное копирование, а можно использовать Visual Basic. Создайте кнопку: Вид -Панели инструментов - Visual Basic - молоточки. Растянуть кнопку на таблице, дважды быстро щелкнуть по ней и записать программу: Private Sub CommandButton1_Click() Dim a, k, k2, Y, Y2 As Range ' Задание переменных - диапазонов ячеек Set a = Range("c5") : Set k = Range("d2") : Set k2 = Range("B38") Set Y = Range("E35") ' Настройка переменных Set Y2 = Range("E38") ' указание начальных ячеек диапазонов n = Range("B2") ' Номер стат.испытания For i = 1 To 21: a(i, 2) = a(i): Next I ' Копирование Yэкспер в Yэкспер2 For i = 1 To 3: k2(n, i) = k(1, i): Next I ' Копирование a, b, d Y2(n) = Y ' Копирование Yтеор(30О) Range("B2") = Range("B2") + 1 ' Увеличение номера стат.испытания End Sub Переход из режима Конструктора в рабочий режим осуществляется щелканием мышью по синему треугольнику на Панели инструментов Visual Basic. Проведите испытания 20 раз, копируя результаты и наблюдая графики Yидеал, Yэкспер2 и Yтеор в диапазоне 0О - 30О. Кнопка n a b 0,089657 -0,81461 11 tO 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Y идеал 6 5,1 4,4 3,9 3,6 3,5 3,6 3,9 4,4 5,1 6 7,1 8,4 9,9 d 5,003522 Y экспер Y экспер2 Y теор (Yтеор -Yэкс)^2 3,187615 7,896597 5,003522 8,369884 4,614822 3,482362 4,278563 0,633936 3,74168 4,760484 3,732918 1,055892 2,703701 4,266136 3,366586 0,809189 4,303793 3,335176 3,179567 0,024214 0,793039 1,990673 3,171862 1,395207 6,099188 5,762799 3,343469 5,853157 5,354349 6,250096 3,69439 6,531634 4,805577 1,96599 4,224624 5,101426 6,315834 3,494961 4,934171 2,071325 3,716927 7,093881 5,823031 1,615061 6,747879 7,266906 6,891204 0,141152 4,923486 8,628663 8,13869 0,240073 13,78128 10,19753 9,56549 0,39947 19 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Среднее Стан.откл 11,6 16,15502 13,3959 11,1716 4,947498 13,5 18,05094 11,79125 12,95703 1,359036 15,6 15,68348 9,954463 14,92177 24,67411 17,9 23,02733 16,87283 17,06582 0,037245 20,4 14,2468 16,45532 19,38919 8,607551 23,1 28,27731 19,41054 21,89186 6,156983 26 25,06189 24,60926 24,57386 0,001253 29,1 27,43516 Целевая, 32,4 30,47578 (Yтеор-Yэкс)2 35,9 33,69571 80,0253 39,6 37,09495 43,5 40,67351 47,6 44,43138 51,9 48,36857 56,4 52,48506 61,1 56,78087 66 61,256 Накопление результатов a b d Y теор(30) 0,085604 -0,66809 4,900334 61,90122 0,091923 -0,71405 4,015668 65,3248 0,089466 -0,8983 6,661087 60,23185 0,12964 -1,45783 8,04561 80,98681 0,093119 -0,89987 6,109547 62,92096 0,090213 -0,76546 5,094091 63,3224 0,079159 -0,73099 5,285638 54,59921 0,063607 -0,58318 5,875455 45,62676 0,124878 -1,56341 8,591541 74,07946 0,089657 -0,81461 5,003522 61,256 0,093727 0,01971 -0,90958 5,958249 63,02495 0,332175 1,44601 9,638481 Лабораторная работа № 12. Производная, эластичность, суммарная функция Вычислите производную (предельную функцию), эластичность, суммарную функцию (интеграл) для функции N(x)=100/x. В данном примере можно интерпретировать х как цену товара, а N(x) - как спрос, предельную функцию - как прирост спроса при росте цены на 1 рубль (здесь отрицательный), а эластичность показывает, на сколько процентов изменится спрос при росте цены на 1%. Суммарную функцию здесь можно интерпретировать как сумму продаж за х дней при ежедневном росте цен на 1 рубль. Задайте диапазон х 10…30, вычислите N(x), производную dN/dx = (B7B6)/(A7-A6) - в данном случае. Эластичность Е=(N/N)/( x /x), в качестве N и x возьмем их средние значения, тогда E=C6/(B6+B7)*(A6+A7). Суммарная функция формируется добавлением первого значения спроса к начальному значению (здесь 0): =E7+E6, а затем - добавлением следующих значений 20 спроса к предыдущим значениям суммы (копирование формулы вниз). При правильном вычислении интеграла следует брать средние значения N по двум соседним точкам и домножать их на x. 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 A Цена x 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 B N 10 9,090909 8,333333 7,692308 7,142857 6,666667 6,25 5,882353 5,555556 5,263158 5 4,761905 4,545455 4,347826 4,166667 4 3,846154 3,703704 3,571429 3,448276 3,333333 C D E dN/dx Эластичность Сумм.функция -0,90909 -1 0 -0,75758 -1 10 -0,64103 -1 19,09090909 -0,54945 -1 27,42424242 -0,47619 -1 35,11655012 -0,41667 -1 42,25940726 -0,36765 -1 48,92607393 -0,3268 -1 55,17607393 -0,2924 -1 61,05842687 -0,26316 -1 66,61398242 -0,2381 -1 71,87714032 -0,21645 -1 76,87714032 -0,19763 -1 81,63904508 -0,18116 -1 86,18449962 -0,16667 -1 90,53232571 -0,15385 -1 94,69899238 -0,14245 -1 98,69899238 -0,13228 -1 102,5451462 -0,12315 -1 106,2488499 -0,11494 -1 109,8202785 -3,33333 113,2685544 Постройте графики N(x), dN/dx, эластичности и суммарной функции. Лабораторная работа № 13. Решение дифференциальных уравнений Дифференциальные уравнения могут быть использованы для моделирования социальных, экономических и экологических процессов. Проведем исследование системы нелинейных дифференциальных уравнений, отражающих известную экологическую задачу: на ограниченной территории в единицу времени вырастает определенное количество моркови (здесь Eo=1000), появляются 10 зайцев и начинают размножаться со скоростью N*kr, съедая моркови ed=N*ke, при этом остается Е моркови. Когда вся морковь съедается и образуется дефицит D=E-Eo, зайцы начинают вымирать со скоростью, пропорциональной их количеству и квадрату дефицита D: vs=N*ks* D2 . Получаем систему уравнений: dN/dt = kr*N - ks*N* D 2 E=1000- ke*N D= ЕСЛИ(E>1000; (E-Eo)/N;0) Присвойте ячейкам строки 3 имена соответствующих коэффициентов и заполните строку 7 таблицы формулами: A7=A6+B7-C7; B7=kr*A6; C7= ks*A6*E7^2; D7=ke*A6; E7=ЕСЛИ(F7>Eo;( F7-Eo)/A6; 0); F7=Eo-D7. Скопируйте вниз всю строку 7. Постройте графики и исследуйте поведение N, vr, vs, ed, E. Исследуйте поведение системы при различных зависимостях dN/dt от D: линейной, логарифмической, показательной и т.д. 21 2 3 4 5 6 7 8 9 10 A нач.кол 10 B kr 0,05 C ks 5000 D ke 0,2 E Eo 1000 F N vr 10 10,5 0,5 11,025 0,525 11,57625 0,55125 12,15506 0,578813 vs 0 0 0 0 дефицит E D 2 0 998 2,1 0 997,9 2,205 0 997,795 2,31525 0 997,6848 12,76282 13,40096 14,071 14,77455 15,51328 16,28895 17,10339 17,95856 18,85649 19,79932 20,78928 21,82875 22,92018 24,06619 25,2695 26,53298 27,85963 29,25261 30,71524 32,251 33,86355 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2,431013 2,552563 2,680191 2,814201 2,954911 3,102656 3,257789 3,420679 3,591713 3,771298 3,959863 4,157856 4,365749 4,584037 4,813238 5,0539 5,306595 5,571925 5,850521 6,143048 6,4502 ed 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0,607753 0,638141 0,670048 0,70355 0,738728 0,775664 0,814447 0,85517 0,897928 0,942825 0,989966 1,039464 1,091437 1,146009 1,20331 1,263475 1,326649 1,392981 1,46263 1,535762 1,61255 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 997,569 997,4474 997,3198 997,1858 997,0451 996,8973 996,7422 996,5793 996,4083 996,2287 996,0401 995,8421 995,6343 995,416 995,1868 994,9461 994,6934 994,4281 994,1495 993,857 993,5498 Литература 1. О.О.Замков, А.В.Толстопятенко, Ю.Н.Черемных. Математические методы в экономике. "Дело и Сервис", М.-1999. 2. Экономико-математическое моделирование. Под редакцией .Н.Дрогобыцкого. "Экзамен", М. - 2004. 23 Содержание Введение ......................................................................................................................3 Лаб. № 1: Решение уравнений ..................................................................................3 Лаб. № 2: Решение систем уравнений ......................................................................4 Лаб. № 3: Математическое программирование. Планирование закупок ............5 Лаб. № 4: Планирование перевозок.........................................................................7 Лаб. № 5. Выбор оптимального пути в транспортной сети ...................................8 Лаб. № 6. Оптимальное распределение ресурсов между отраслями на N лет...11 Лаб. № 7 . Оптимизация сетевого графика плана комплекса работ ...................12 Лаб. № 8. Оптимизация вложения средств в N предприятий ..............................13 Лаб. № 9. Задача выбора стратегии обновления оборудования ..........................15 Лаб. № 10: Расчет стратегии в игре .......................................................................16 Лаб. № 11. Аппроксимация и экстраполяция функции с использованием метода наименьших квадратов и оценкой точности методом Монте-Карло ....18 Лаб. № 12. Производная, эластичность, суммарная функция ............................20 Лаб. № 13. Решение дифференциальных уравнений ............................................21 24