УДК 519.852

ИСПОЛЬЗОВАНИЕ MATHCAD PRIME ПРИ ИЗУЧЕНИИ РАЗДЕЛА «ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ»

Шевченко Алеся Сергеевна
Рубцовский институт (филиал) Алтайского государственного университета
кандидат физико-математических наук, доцент кафедры математики и прикладной информатики

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

Ключевые слова: задача линейного программирования, задача о диете, транспортная задача


USING OF THE MATHCAD PRIME WHEN STUDYING THE SECTION «LINEAR PROGRAMMING»

Shevchenko Alesya Sergeevna
Rubtsovsk Institute (branch) Altai state university
Candidate of physico-mathematical sciences, Associate Professor Mathematic and applied informatics

Abstract
In this article the solution of linear programming problems with use of a system computer algebra of Mathcad Prime from a class of computer-aided design systems is considered. The main potentials of Mathcad Prime are described. Use of Mathcad Prime increases the intensity of a practical training and interest in the learning process, expands the range of problems of the practical contents.

Keywords: diet problem, Mathcad Prime, problem of linear programming, transport problem


Рубрика: 01.00.00 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Шевченко А.С. Использование Mathcad Prime при изучении раздела «Линейное программирование» // Современные научные исследования и инновации. 2016. № 4 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2016/04/67335 (дата обращения: 20.11.2016).

Задачи линейного программирования можно решать многими способами: вручную, с помощью стандартных программных средств (табличный процессор MS Excel), либо с помощью специального программного обеспечения [1]. Однако изучение данного класса задач без использования современных программ требует довольно глубоких знаний в данной области и отнимает много времени. Таким образом, решать данные задачи «в ручном режиме» за строго определенный интервал времени могут лишь специалисты в области прикладной математики. Тем не менее, количество областей применения линейного программирования постоянно увеличивается. Методы математического программирования применяются как при изучении отдельных проблем математики, так и в прикладных областях: экономики, логистики, программировании. Существуют различные системы компьютерной алгебры (СКА) (MathCad, Matlab, Mathematica, Maple), имеющие в своем распоряжении необходимый инструментарий для построения математических моделей и решения задач линейного программирования. Владение хотя бы одной из СКА [2-6] позволяет будущему специалисту, не владеющему в полной мере техникой математических преобразований, самостоятельно выполнять громоздкие вычисления, решать сложные прикладные задачи.
В данной статье рассмотрим решение задач линейного программирования с использованием системы компьютерной алгебры Mathcad Prime [7-8] из класса систем автоматизированного проектирования. 
PTC Mathcad Prime – это новое и единственное решение для ведения инженерных вычислений, которое одновременно позволяет вести сами вычисления и документировать их, существенно снижая риск появления дорогостоящих ошибок. PTC Mathcad Prime позволяет инженерам заниматься проектированием, выполнять вычисления и документировать работу в легко читаемом формате, удобном для совместного и повторного использования. Mathcad Prime отличается надежностью, простотой использования и обладает всеми функциональными возможностями, необходимыми для решения комплексных задач, требующих применения математического аппарата. Использование вычислений в Mathcad Prime в процессе инженерной деятельности упрощено благодаря «бесшовной» интеграции Mathcad Prime с всемирно известными инженерными и офисными приложениями. Все это облегчает совместную работу инженеров на всех этапах разработки, решение задач верификации, сертификации и публикации инженерных документов.
Mathcad Prime имеет простой интерфейс и хорошие возможности визуализации. Первое, что бросается в глаза при запуске Mathcad Prime – это новая система меню, основанная на так называемой «ленте» (ribbon). Интерфейс пользователя, основанный на технологии «ribbon» в настоящее время применяется во многих приложениях Windows, включая и MS Office (см. Рис.1).

Рисунок 1. Интерфейс пользователя, основанный на технологии «ribbon»

Лента, как и в других современных приложениях, состоит из вкладок (интерфейсных групп), на которых сгруппированы соответствующие команды. На вкладках Ленты («Математика», «Ввод/вывод», «Функции», «Матрицы/таблицы», «Графики», «Форматирование формул», «Форматирование текста», «Расчет», «Документ», «Ресурсы») отображаются кнопки, предназначенные для выполнения тех или иных команд, причем многие из кнопок собраны в контекстно-зависимые меню. 
Второе, что «бросается в глаза» при запуске Mathcad Prime – это линованное поле для ввода операторов. Так, решая задачу по математике, физике, химии и вузовским дисциплинам, мы берем линованный в клеточку лист бумаги и приступаем к работе.
Приятным сюрпризом для многих пользователей Mathcad Prime будет то, что система меню, все описания и все подсказки даются на русском языке. Кроме того, пользователи могут найти в Интернете видеоролики на русском языке с показом основных приемов работы с Mathcad Prime. Имеется также много анимационных уроков по работе с Mathcad Prime на английском и русском языках.
Отличительной чертой Mathcad от большинства других современных математических приложений является его построение по принципу WYSIWYG (“What You See Is What You Get” — “что вы видите, то и получите”) [8]. То есть математические выражения в среде MathCAD записываются в их общепринятой нотации: числитель находится сверху, а знаменатель внизу; интеграл или производная – это привычные математические знаки, а не специальным образом записанные символы, снижающие наглядность решения, в интеграле пределы интегрирования также расположены на привычных местах. Все это делает запись понятной для пользователя, читающего распечатку или глядящего на экран. Эту особенность ценят те, кому приходилось решать задачи при помощи языков программирования, где понять суть решения может лишь, владеющий подобными навыками, специалист. 
В Mathcad Prime рабочие формулы можно размещать в пределах текста, что позволяет добиться идеальной читаемости и целостности документа и использовать один и тот же файл для проведения вычислений, хранения, распространения и подготовки отчетов.
При вводе и редактировании переменных и функций в среде Mathcad Prime есть возможность давать им (вручную или автоматически) обозначения: переменная, единица измерения, константа, функция и т.д. 
В систему MathCAD интегрированы средства символьной математики, что не только улучшает визуальное восприятие преобразований на экране, но и позволяет решать задачи или их этапы как численно, так и аналитически. Решая поставленную задачу, пользователь может вводить числовые значения переменных и дополнять их размерностями. При этом можно выбирать и систему единиц (СИ, кг-м-мс г-см-с, британская), и конкретные размерности (мм, дюймы, футы и т.д.) – MathCAD имеет встроенную систему автоматического пересчета и контроля единиц измерений в процессе вычислений. Так, если мы определяем расстояние от одного объекта до другого как сумму отдельных расстояний с использованием различных единиц измерения (мили, футы, ярды, сантиметры), то система MathCAD автоматически произведет перерасчет всех расстояний и выдаст результат с заранее установленной единицей измерения.
В среде Mathcad, как известно, есть богатый инструментарий работы с массивами – векторами и матрицами, простыми и вложенными. В среде Mathcad Prime работа с этими инструментами стала еще более удобной: массив в расчете вводится протяжкой мышкой (как в MS Office), появились кнопки вставки и удаление строк и столбцов матриц, в созданный массив легко вставить другой массив, создав тем самым вложенный массив, и т.д.


Рисунок 2. Технология работы с матрицами в Mathcad Prime

Для ввода в расчет нескольких векторов одинаковой длины можно воспользоваться новым объектом Mathcad Prime – таблицей: набором связанных векторов одинаковой длины. Осталась, естественно, и возможность работы в среде Mathcad Prime с таблицей Excel. Данные можно импортировать из таблиц Excel, анализировать и экспортировать обратно в Excel. 
В среде Mathcad Prime существенно обновился блок решения (Solve) уравнений и систем (алгебраических и дифференциальных) и проведения оптимизации: четко выделены зоны задания первого приближения, ограничений и собственно решения. Кроме того, переменные первого приближения стали локальными, что позволяет избегать ряда ошибок.
В среде Mathcad Prime существенные изменения коснулись и инструментов формирования численного ответа. В частности, комплексные числа стало возможным представлять в тригонометрической форме. 
Инструменты программирования Mathcad Prime эволюционировали в сторону традиционных языков программирования. В частности, появились операторы else if и also if, что делает язык программирования Mathcad более похожим на языки С, Pascal, BASIC – на самые популярные языки программирования.
В новой версии Mathcad Prime 3.0 появилась долгожданная возможность внешнего программирования: теперь вы можете создать программу на C++ или Fortran-е за пределами Mathcad (например, в Microsoft Visual Studio). Внутри Mathcad эта программа будет работать, как пользовательская функция, причем передать в нее и из нее параметры можно в той же форме, что и для обычной встроенной функции Mathcad.
Пакеты расширений представляют собой набор дополнительных функций, встроенных автоматически в Mathcad Prime. Доступ к ним находятся в главном меню программы, в меню «Функции». 
Пакет имеет удобную справочную систему с примерами решения задач, есть справочник по основным математическим и физико-химическим формулам и константам, которые можно автоматически переносить в документ. Подробная документация, возможность дополнения электронными учебниками по различным дисциплинам: обыкновенные дифференциальные уравнения, статистика, термодинамика, теория управления, сопротивление материалов и т. д. делают пакет привлекательным для использования в учебном процессе. 
Рассмотрим конкретные примеры.
Пример 1 (Задача о диете). Пусть имеются 8 видов продуктов содержащих 9 питательных веществ и незаменимых компонент. В 100 граммах продукта содержится известное  количество питательного вещества или незаменимого компонента. Кроме того, известны: – ежесуточная минимальная потребность организма в веществах  и  – стоимость и энергетическая ценность (в килокалориях) 100 грамм продукта . Все указанные величины представлены в табл. 1.
Требуется рассчитать суточную диету так, чтобы обеспечить необходимое количество питательных веществ и незаменимых компонент при минимальных затратах на продукты. Найти калорийность Kполученной оптимальной диеты.
Решение. Для решения сформулированной задачи составим ее математическую модель.
1. Введем обозначения:  − неизвестное пока количество (грамм) продукта , входящего в диету.
2. Составим целевую функцию – стоимость диеты:

    (1)

Таблица 1 − Данные к задаче о диете

Питательные
вещества
Мин. суточная потребность, г
Содержание питательных веществ в 100 г продукта
Хлеб ржаной
Масло
Творог жирный
Крупа гречневая
Мясо свиное
Колбаса вареная
Яблоки
Морковь
Белки 90
6.6
0.5
14
12.6
14.3
12.1
0.4
1.3
Жиры 95
1.2
82.5
18
3.3
33.3
13.5
0.4
0.1
Углеводы 330
34.2
0.8
2.8
62.1
0
0
9.8
7.2
Ретинол 
(витамин А)
0.00017
0
0.54
0.1
0
0
0
0
0
Каротин (витамин А) 0.0059
0
0.38
0.06
0.01
0
0
0.03
9
Витамин  0.0013
0.18
0
0.05
0.43
0.4
0.06
0.03
0.06
Витамин  0.0017
0.08
0.1
0.3
0.2
0.1
0.13
0.02
0.07
Витамин РР 0.018
0.67
0.05
0.3
4.19
2.2
0
0.3
1
Витамин С 0.08
0
0
0.3
0
0
0
165
5
Стоимость 100 г продукта (руб.)
1.6
10
7
2.6
13
11
3
2.5
Энергетическая ценность 100 г продукта (Ккал.)
181
748
239
335
491
170
45
34

3. Сформулируем ограничения рассматриваемой задачи.
3.1.По минимальным потребностям организма. Это ограничение можно записать в виде:

    (2)

В левой части каждого неравенства записано фактическое суточное потребление питательных веществ и незаменимых компонент.
3.2.Условие неотрицательности:

 .    (3)

4. После нахождения оптимального решения рассчитаем калорийность полученной диеты:

     (4)

Таким образом, целевая функция (1) и ограничения (2−3) и формула (4) образуют математическую модель задачи о диете.
Для решения задачи в пакете Mathcad Prime необходимо (см. рис.3):
1.Задать исходные данные, т.е. определить матрицу A и вектора B, C и E.
2.На вкладке «Математика» выбрать «Блок решения».
3.В области «Начальные приближения» присвоить переменным, т.е. вектору X начальные (любые, например, нулевые) значения и определить целевую функцию – стоимость разрабатываемой диеты.
4.В области «Ограничения» ввести все необходимые ограничения.
5.В области «Решатель» найти оптимальное решение с помощью функции minimize, вычислить минимальное значение стоимости полученной диеты и ее энергетическую ценность.



Рисунок 3. Решение задачи о диете

Анализ полученного решения показывает, что для обеспечения минимальных суточных потребностей организма в питательных веществах и незаменимых компонентах диета состоит из трех продуктов: масла, гречневой каши и яблок в количествах 86.72, 710.84 и 0.05 грамм соответственно. При этом стоимость диеты составила 27.16 рублей, а питательная ценность – 3030 Ккал.
Для сравнения приведем решение данной задачи в математическом пакете Maple.
1.Подключаем пакет simplex:
>with(simplex):
2. Задаем целевую функцию:
>Z:=1/100*(1.6*x[1]+10*x[2]+7*x[3]+2.6*x[4]+13*x[5]+11*x[6]+3*x[7]+2.5*x[8]):
3. Задаем систему ограничений:
>C:={1/100*(6.6*x[1]+0.5*x[2]+14*x[3]+12.6*x[4]+14.3*x[5]+12.1*x[6]+0.4*x[7]+13*x[8])>=90, 1/100*(1.2*x[1]+82.5*x[2]+18*x[3]+3.3*x[4]+33.3*x[5]+13.5*x[6]+0.4*x[7]+0.1*x[8])>=95, 1/100*(34.2*x[1]+0.8*x[2]+2.8*x[3]+62.1*x[4]+0*x[5]+0*x[6]+9.8*x[7]+7.2*x[8])>=330, 1/100*(0*x[1]+0.54*x[2]+0.1*x[3]+0*x[4]+0*x[5]+0*x[6]+0*x[7]+0*x[8])>=0.00017, 1/100*(0*x[1]+0.38*x[2]+0.06*x[3]+0.01*x[4]+0*x[5]+0*x[6]+0.03*x[7]+9*x[8])>=0.0059, 1/100*(0.18*x[1]+0*x[2]+0.05*x[3]+0.43*x[4]+0.4*x[5]+0.06*x[6]+0.03*x[7]+0.006*x[8])>=0.0013, 1/100*(0.08*x[1]+0.1*x[2]+0.3*x[3]+0.2*x[4]+0.1*x[5]+0.13*x[6]+0.02*x[7]+0.07*x[8])>=0.0017,1/100*(0.67*x[1]+0.05*x[2]+0.3*x[3]+4.19*x[4]+2.2*x[5]+0*x[6]+0.3*x[7]+1*x[8])>=0.018, 1/100*(0*x[1]+0*x[2]+0.3*x[3]+0*x[4]+0*x[5]+0*x[6]+165*x[7]+5*x[8])>=0.08}:
4.Находим оптимальное решение задачи:
>X:=minimize(Z,C,NONNEGATIVE);

5.Находим минимальное значение функции Z в найденных точках (минимальную стоимость):
>Z[min]:=subs(X,Z);

6.Задаем энергетическую ценность 100 г продукта (Ккал.):
>E:=array([181,748,239,335,491,170,45,34]);

7.Записываем, найденное оптимальное решение в виде вектора:
>xopt:=array([0,86.71755999,0,710.8430021,0,0,0.04848487988,0]);

8. Находим энергетическую ценность диеты:
>K:=sum(xopt[i]*E[i],i=1..8)/100;

«Основное отличие Mathcad от аналогичных программ — это графический, а не текстовый режим ввода выражений. Как мы видим, формулы имеют привычный вид. То есть особой подготовки для набора формул не нужно. Вычисления с введенными формулами осуществляются по желанию пользователя: или мгновенно, одновременно с набором, либо по команде. Обычные формулы вычисляются слева направо и сверху вниз (подобно чтению текста). Любые переменные, формулы, параметры можно изменять, наблюдая воочию соответствующие изменения результата. Это дает возможность организации действительности интерактивных вычислительных документов» [8].
«В Maple вычисления осуществляются в режиме программного интерпретатора, который трансформирует в формулы введенные в виде текста команды. Maple своим интерфейсом ориентирован на тех пользователей, кто уже имеет навыки программирования в среде традиционных языков с введением сложных формул в текстовом режиме. Для пользования Mathcad можно вообще не быть знакомым с программированием в том или ином виде. Mathcad, в отличие от Maple, изначально создавался для численного решения математических задач, он ориентирован на решение задач именно прикладной, а не теоретической математики, когда нужно получить результат без углубления в математическую суть задачи» [8].
Пример 2 (Транспортная задача). На складах  хранится   единиц одного и того же груза, соответственно. Требуется доставить его трем потребителям , заказы которых составляют  единиц груза, соответственно. Стоимости перевозки  единицы груза с i-го склада j-му потребителю указаны в транспортной таблице 2. Установить является ли модель транспортной задачи, заданная таблицей, открытой или закрытой. Если модель является открытой, то ее необходимо закрыть. Составить план перевозок, обеспечивающий минимальную стоимость перевозок. Найти минимальную стоимость перевозок [1].

Таблица 2 − Данные к транспортной задачи

4
2
6
7
5
3
1
7
6

Решение. Суммарные запасы груза 100+200+120=420, а суммарные потребности 190+120+60=370. Следовательно, задача является задачей открытого типа и ее необходимо закрыть, вводя фиктивного потребителя с потребностями 420-370=50 единиц груза, при нулевых стоимостях перевозок. 

Таблица 3 − Данные к транспортной задачи с фиктивным потребителем

4
2
6
0
7
5
3
0
1
7
6
0

Для решения задачи составим ее математическую модель:
1. Введем обозначения:  – количество единиц груза, которое планируется доставить от i-ого склада к j-му потребителю.
2. Составим целевую функцию – минимальную стоимость перевозок:

     (5)

3. Сформулируем ограничения рассматриваемой задачи.
3.1. Груз из всех складов должен быть перевезен. Это ограничение можно записать в виде:

     (6)

3.2. Необходимо удовлетворить потребности всех потребителей в грузе. Это ограничение можно записать так:

    (7)

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

    (8)

Таким образом, целевая функция (5) и ограничения (6−8) образуют математическую модель транспортной задачи.

Для решения задачи в пакете Mathcad Prime необходимо:
1.Задать исходные данные, т.е. определить матрицу С и вектора A и B.
2.На вкладке «Математика» выбрать «Блок решения».
3.В области «Начальные приближения» присвоить переменным, т.е. матрице X начальные (любые, например, единичные) значения и задать целевую функцию – минимальную стоимость перевозок.
4.В области «Ограничения» ввести все необходимые ограничения.
5.В области «Решатель» найти оптимальное решение с помощью функции minimize и вычислить минимальную стоимость перевозок.


Рисунок 4. Решение транспортной задачи

Анализ полученного решения показывает, что минимальная стоимость перевозок составляет 1090 при оптимальных перевозках:

Заключение. Применение Mathcad Prime при решении задач линейного программирования может представлять интерес не только для студентов и аспирантов, но и для преподавателей.
Использование Matcad Prime в учебном процессе 
гарантирует решение профильных задач в кратчайшие сроки, что позволит в течение одного практического занятия проводить глубокий многовариантный анализ рассматриваемой задачи;
существенно повышает интенсивность и информативность практических занятий;
упрощает создание пояснительных записок, отчетов, статей и прочие на основе использования текстовых редакторов и фрагментов mcdx-файлов;
резко расширит спектр возможностей преподавателя (исследователя), высвобождает его время для новых разработок, позволяя включать в круг обсуждаемых задач новые, практически значимые профессиональные задачи.


Библиографический список
  1. Сдвижков О.А. Математика на компьютере: Maple 8. – М.: СОЛОН-Пресс, 2003. – 176с.
  2. Шевченко А.С. Использование математического пакета Maple при изучении раздела «Теория игр» // Современные научные исследования и инновации. 2015. № 11. URL:http://web.snauka.ru/issues/2015/11/60003.
  3. Шевченко А.С. Использование математического пакета Maple при проведении лабораторных работ по курсы «Численные методы» // Молодой ученый. −2015. −№ 9. − С. 1222-1225.
  4. Шевченко А.С. Использование математического пакета Maple при решении задач классической оптимизации // Инженерный вестник, №1, январь 2016. URL: http://engbul.bmstu.ru/doc/832629.html
  5. Шевченко А.С. Применение математического пакета Maple к решению вариационных задач // Молодой ученый. − 2015. − №22. − С. 33-37.
  6. Шевченко А.С. Применение математического пакета Maple к решению вариационных задач с подвижными границами.// Электронное научное издание «Ученые заметки ТОГУ» 2016, Том 7, № 1, С. 313 – 323. URL: http://pnu.edu.ru/media/ejournal/articles-2016/TGU_7_52.pdf
  7. Кирьянов Д. В. Mathcad 15/Mathcad Prime 1.0. − СПб.: БХВ-Петербург, 2012. − 432 с.
  8. Mathcad. URL: https://ru.wikipedia.org/wiki/Mathcad.


Все статьи автора «ibragimova»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться:
  • Регистрация