УДК 51-37:004 DOI: 10.12737/18305
Л.А. Потапов, М.Л. Потапов
ВЫПОЛНЕНИЕ НАУЧНО-ТЕХНИЧЕСКИХ РАСЧЕТОВ С ПОМОЩЬЮ СВОБОДНО РАСПРОСТРАНЯЕМЫХ ПРОГРАММ
Показана возможность выполнения научно-технических расчетов с помощью свободно распространяемых программ Math Studio, SMath Studio, Scilab. Проведено сравнение этих программ с программами Mathcad и Matlab. Отмечена эффективность использования программы Math Studio в учебном процессе. Приведены примеры решения
систем уравнений, дифференциальных и нелинейных уравнений пятой степени, а также построения и исследования 2D-графиков.
Ключевые слова: свободно распространяемые программы, Math Studio, SMath Studio, Scilab, научно-технические расчеты, нелинейные уравнения, дифференциальные уравнения.
L.A. Potapov, M.L. Potapov
FULFILMENT OF SCIENTIFIC TECHNICAL COMPUTATIONS USING FREE-SPREAD PROGRAMS
The possibility to carry out scientific technical computations with the aid of free-spread programs Math Studio, SMath Studio, Scilab is shown. A comparison of these programs with programs Mathcad and Matlab is carried out. The effectiveness of using program Math Studio is emphasized in a training process.
The examples of the solution of the equations set, differential and nonlinear quintic equations, and also constructions and researches of 2D-graphes are shown.
Key words: free-spread programs, Math Studio, SMath Studio, Scilab, scientific technical computations, nonlinear equations, differential equations.
Применение лицензионных программ Mathcad и Matlab для выполнения научно-технических расчетов в некоторых случаях оказывается нецелесообразным или невозможным. Сказывается их высокая стоимость, сложность установки и использования. Применение пиратских копий этих программ считается недопустимым. Альтернативным решением является применение свободно распространяемых программ.
В последнее время появились и стали быстро совершенствоваться компактные свободно распространяемые программы Math Studio, SMath Studio, Scilab, весьма похожие на программы Mathcad и Matlab, но не требующие лицензионной операционной системы Windows. Современная микроэлектроника позволила разместить эти программы в мобильных устройствах: смартфонах, КПК, планшетах, ноутбуках. Учебной литературы по этим программам практически нет, однако интерес к ним возрастает. В рамках проекта «Пакет свободного программного обеспечения для образовательных учреждений России»
сравнительно недавно подготовлено пособие по основам работы в программе Scilab, размещенное на сайте информационной поддержки проекта [1]. Возможности системы излагаются на примере решения школьных задач по математике и физике для 9-11 классов.
Весьма удобна в работе программа Math Studio, устанавливаемая на смартфонах и обеспечивающая почти все операции, выполняемые программой Mathcad. Часто более важным является удобство и быстрота использования программ, а не гигантские вычислительные возможности. Для регулярных расчетов, а не глобальных задач более удобен быстрый расчет с одновременным оформлением результатов. В программе Math Studio многие операции выполняются проще, чем в Mathcad, например решение дифференциальных и нелинейных уравнений высоких степеней в численном и символьном виде и др. (рис. 1а). Хорошо продуманная система ввода заданий и вывода результатов вычислений значительно упрощает освоение программы и ее использование. Так, чтобы решить
систему из пяти-шести алгебраических уравнений в комплексной форме, необхо-
Main | Catalog Options Search | Main Catalog Options 1 Search
xl = 10+5i x2 = 20-10r x3 = 5+4i x4=5-3i x5= 10 x6=3 + 3i
Solve(y 1-y 2-y3 = 0,y3-y4-y 5=0,xl* у l+x2*y2 = 200-40i,x5*y5-x4* y4=100,x3*y3 + x4*y4-x2*y2+x6* уб=0,у2+у6-у 1 =0)|_
yl = 9.64669-6.11729i , у2 = 3.45908 + (
1 <J Plot Solve 4-
1 Ы wleIir 1 0 0. 001 0
I a s d f 0 3 kj' 0 0
1 SL* с V b 0 m Hi 0 [i
б)
Рис. 1. Примеры решения уравнений: а - дифференциальных и нелинейных; б - систем уравнений
димо записать эти уравнения в строчку через запятую, как в тетради (рис. 1б). При этом не требуется использовать специальные приемы, как в Mathcad, которые осваиваются только после соответствующего обучения (жирный знак равенства, стрелка для вывода решения, слова Given и Find, формирование матриц и др.).
Много возможностей открывает конструктивное исполнение программы. Программа Math Studio предоставляет пользователю 6 перемещаемых клавиатур: основную (рис.1а) и 5 дополнительных (рис.1 б, 2а), расположенных справа, слева, выше, ниже основной клавиатуры. Над клавиатурой расположена перемещаемая вправо-влево линейка команд (Copy, Paste, Plot, Solve, Delete и др.). На ней же имеются две стрелки: правая обеспечивает удаление последнего символа, левая - перемещение курсора на один символ вправо или перевод строки внутри программы.
Наборное поле содержит много специальных строк, куда записывают задания на расчет
(чаще всего название подпрограммы и ее параметры). Под каждой такой строкой предусмотрена строка вывода результатов вычислений.
Набранные задания и результаты вычислений сохраняются. Это позволяет их просматривать, корректировать и проводить исследования влияния параметров на результат расчета.
Очень убедительно и эффектно применение программ на практических занятиях и в лаборатории. Достает студент смартфон, записывает дифференциальное уравнение второго порядка в привычном виде, как в тетради.
Нажимает клавишу и получает на экране решение в виде формулы (рис. 2а), в которой фигурируют синусоида и экспонента, а не постоянное напряжение (цепь была включена под постоянное напряжение). Переписал эту формулу в новую строку, нажал клавишу Plot - на экране появился график затухающих колебаний. Подобрал подходящие масштабы, щелкнул дважды по картинке - она развернулась на весь экран. Нажал клавишу
О
Main Catalog Options Search
1 R=10
2 L=0.2
3 С=10Л-4 DSolve(L*C*u"(t)+R*C*u'{t)+u t) = 100,u(t ,[0,0]) __________
- 11.25088 e "25' sin( 222.20486 t)
-100cos(222.2x)exp(-25x)-11.25sin( 222.2x)(exp(-25x))+100)
x-min = -0.0049 x-max=0.15 y-min=-10 y-max= 185.63
Cut Copy Paste Clear
cos
tan
!L -
а)
Рис. 2. Примеры расчета переходных процессов (а) и построение 2Б-графика (б) в программе Math Studio
Trace, пальцем прикоснулся в любой точке графика - сразу появились координаты этой точки. Захотел определить максимальное значение напряжения во время переходного процесса - подвел палец к этой точке (рис. 2б). Напряжение оказалось больше напряжения источника питания. Цепь подключали под напряжение 100 В, а тут 169 В. Почти в 2 раза превысили напряжение источника питания, и произошло это через 0,0169 с. Это несколько непривычно. А если изменить параметры цепи? Изменил емкость - увеличилась частота затухающих колебаний, увеличил сопротивление - пропали колебания, остались одни экспоненты. В цепи возник апериодический процесс. Такие эксперименты проводят в лаборатории на специальных стендах, а у студента - своя «лаборатория», которую он носит в кармане.
Столь же наглядно исследуются другие явления. Записал в комплексном виде уравнение цепи RLC , подключенной к переменному напряжению 220 В, определив напряжение на конденсаторе. Нажал кнопку Solve и удивился: напряжение на конденсаторе - 6396 В (шесть с лишним киловольт)! Напряжение на участке цепи больше, чем на входе цепи. Слагаемое больше суммы в 29 раз! Оказывается, такое возможно при резонансе напряжений.
Программа Math Studio выполняет много операций в символьной форме: решает дифференциальные уравнения (рис. 1 а, первая строка), находит производные (рис. 1 а, третья строка), интегралы и многое другое. Забыл студент или заводской конструктор, как найти производную от произведения функций, - набрал D(f(x)*g(x)), нажал Solve и получил необходимую формулу (рис. 1 а, третья строка).
В Math Studio используется система компьютерной алгебры, позволяющая существенно расширить возможности вычисления при сравнительно низких вычислительных мощностях. При этом используются следующие разделы математики: символьное интегрирование по алгоритму Риша, математика пределов, факторизация полиномов, решение системы линейных уравнений по методу Гаусса, приближение
функций по методу Паде и др. Данные могут быть представлены в виде полей, гистограмм, фреймов и прочих схем. Math Studio содержит продвинутый пакет регрессионного анализа, позволяющий выбирать из существующих регрессионных функций, а также создавать свои функции. Math Studio позволяет создавать полноценные программные скрипты на собственном программном языке с поддержкой переменных, циклов и равномерной рекурсии. Программа Math Studio содержит 200 встроенных подпрограмм, которые имеют простой и понятный интерфейс. С помощью программы Math Studio просто выполнять дифференцирование и интегрирование сложных функций, обратное преобразование Лапласа, строить 2D- и SD-графики, решать системы нелинейных уравнений и др.
Размещение программы Math Studio в корпусе смартфона позволяет всегда иметь под рукой сравнительно мощную электронно-вычислительную машину, система общения с которой максимально упрощена (почти как с калькулятором). Применение программы в учебном процессе повысит его уровень и переключит внимание обучаемых с трудоемких вычислений (комплексных чисел, дифференциальных уравнений и др.) на суть исследуемых процессов.
Другая программа, SMath Studio , в общих чертах повторяет интерфейс Mathcad, т. е. у программы есть основное рабочее поле (рис. 3), в котором и выполняются все вычисления в форме, максимально приближенной к нормальным математическим обозначениям. Почти все операции, осуществляемые в Mathcad, можно выполнить в SMath Studio. SMath Studio может читать Ma^ad^^^ файлы (*.xmcd) и сохранять листы в таком формате, помимо собственного формата. Есть весьма полезная опция - генерация отчета в html. Для этого достаточно при сохранении файла выбрать соответствующее расширение. Отчет будет представлять собой html-страницу и папку с рисунками в формате png. Такой отчет можно просмотреть в браузере или открыть в текстовом редакторе, поддерживающем html. Рисунки
можно вставить из файла в формате bmp или нарисовать самостоятельно.
SMath Studio имеет версии для нескольких платформ: КПК, коммуникаторов, планшетов и персональных компьютеров, которые используют операционные системы Linux и Windows. Имеются две разновидности программы - Handheld (карманная) и Desktop (настольная), которые соответствуют типу поддерживаемых платформ.
Для удобства пользования в программе SMath Studio используется боковая панель (рис .3), которая состоит из отдельных панелей, содержащих наборы команд в виде кнопок. Каждая такая панель может быть свернута с помощью кнопки, расположенной в правом углу заголовка панели.
Панель «Арифметика» содержит цифры 0...9, знаки арифметических действий, как на калькуляторе, и, кроме того, число п, знак факториала «!», операции возведения в степень «Л», взятия квадратного корня или корня n-й степени.
Панель «Матрицы» позволяет задать матрицу, вычислить ее определитель, транспонировать матрицу, получить алгебраическое дополнение, минор, вычислить векторное произведение (вектор задается как вектор-столбец, т. е. матрица с размером в 3 элемента, по одному на каждой строке).
На панели «Функции» собрана подборка основных тригонометрических функций, имеются определенный интеграл, взятие производной в точке или по переменной, сумма элементов и их произведение. Еще есть кнопки «2D» и «3D» для вставки двухмерных или трехмерных графиков, натуральный логарифм, проценты, выбор элемента по индексу («el» или квадратные скобки на клавиатуре), знак системы.
Следует подробнее остановиться на функции дифференцирования. Результат работы этой функции зависит от того, выбрано ли вычисление значения производной в точке при помощи «=» (переменная должна быть определена) или использова-
но символьное вычисление Если ис-
пользовано символьное вычисление, то результат зависит от того, была ли определена переменная заранее. Если нет, то будет выдано выражение для производной по данной переменной. Если же переменная была определена, то будет выполнена подстановка в результат ее значения.
Панель «График» позволяет вращать, масштабировать и сдвигать графики, задавать отображение точками или линиями, перерисовывать графики заново в случае необходимости. Графики рисуются в декартовой системе координат.
Рис. 3. Пример оформления рабочего поля в программе SMath Studio
К сожалению, автомасштабирование графиков не выполняется. Это может доставить определенные неудобства, например когда необходимо получить график частотной характеристики.
Графики строятся для функций от переменных x (2D) или x и y (3D).
Панель «Программирование» содержит средства, позволяющие организовать циклические вычисления (циклы «for» и «while») или задать условную функцию
«if». Вместо операторных скобок используется линия (line).
Панель «Символы» обеспечивает вставку букв греческого алфавита. Историческая традиция использования для имен функций и параметров греческих букв требует, чтобы такая возможность была.
В пункте «Примеры» показано, как можно, используя программирование, делать некоторые программы, для которых нет встроенных функций. Это касается и нелинейных алгебраических уравнений, их систем, разложения функции в ряды, решения обыкновенных дифференциальных уравнений методом Рунге-Кутта и прочего.
Пользователь программы имеет возможность быстрой вставки единиц измерения, может отменять и повторять действия, экспортировать созданные проекты в форматы html и MathCad или сохранять их в виде изображений bmp, gif, jpg и png. В SMath Studio есть встроенный справочник, посвященный тригонометрии, логарифмам, производным, пределам и прочим математическим понятиям. Также в программе имеется коллекция примеров по решению математических задач (начиная от алгоритма Евклида и заканчивая матрицей Якоби).
Еще одна достаточно сложная программа Scilab предназначена для выполнения инженерных и научных вычислений, а также для моделирования различных устройств и процессов. По своим возможностям программа Scilab сопоставима с программой Mathcad, а по интерфейсу похожа на Matlab. Это самая полная общедоступная альтернатива Matlab. Однако при этом Scilab - свободно распространяемая программа, а значит, бесплатная для конечного пользователя. К тому же она занимает на диске небольшой объем памяти: 120 - 130 МБ против более чем двухгигабайтного пакета Matlab.
Существуют версии Scilab для различных операционных систем: ОС Linux, ОС семейства Windows (в том числе и для MS Windows Vista) и даже MacOS.
Scilab содержит сотни математических функций, и есть возможность добавления новых, написанных на различных
языках (C, C++, Fortran и т. д.). Также имеется достаточно большое число пакетов расширений [3]. В Scilab используются разнообразные структуры данных (списки, полиномы, рациональные функции, линейные системы), интерпретатор и язык высокого уровня.
Scilab имеет схожий с Matlab язык программирования. В состав пакета входит утилита, позволяющая конвертировать документы Matlab в Scilab, а также инструмент для редактирования блочных диаграмм и симуляции - Scicos (аналог Simulink в пакете Matlab). Имеется возможность совместной работы Scilab с программой LabVIEW.
Scilab позволяет работать с элементарными и большим числом специальных функций (Бесселя, Неймана, интегральные функции), имеет мощные средства работы с матрицами, полиномами (в том числе и в символьной форме), может выполнять численные вычисления (например, численное интегрирование) и решать задачи линейной алгебры, оптимизации и симуляции, имеет мощные статистические функции, а также средство для построения и работы с графиками. Для численных расчётов используются библиотеки Lapack, LINPACK, ODEPACK, Atlas и
др. .
Scilab позволяет решать обыкновенные дифференциальные уравнения и системы, а также уравнения в частных производных. Кроме того, она обладает развитыми средствами программирования (включая отладчик скриптов), так что ее в какой-то мере можно рассматривать как систему разработки высокотехнологичных приложений.
Решение систем алгебраических уравнений в Scilab более громоздко [4], чем в программе Math Studio. Необходимо упорядочить систему уравнений, записать их в матричной форме, записать по определенным правилам матрицу коэффициентов и матрицу-столбец правых частей уравнений, инвертировать матрицу коэффициентов и умножить ее на матрицу-столбец правых частей уравнений. Решение получится тоже в матричной форме.
Для различных задач целесообразно
применять соответствующие программы. Для часто используемых задач - программу Math Studio. К таким задачам относятся различные вычисления с комплексными, тригонометрическими и гиперболическими функциями, решение систем алгебраических уравнений, определение корней квадратных уравнений и уравнений более высоких степеней (третьей - пятой), дифференцирование и интегрирование функций, решение дифференциальных уравнений и др.
Для выполнения небольших проектов (включая курсовые), требующих текстовых пояснений и последующего документирования, больше подходит программа SMath Studio.
Программу Scilab [2] целесообразно применять для моделирования, динамических и полевых исследований, решения
СПИСОК ЛИТЕРАТУРЫ
1. http://linux.armd.ru" target="_blank">linux.armd.ru.
2. http://scilab.land.ru, http://teacher.dn-ua.com.
3. http://www.scilab.org/publications/index_publicatio ns.php? page=books.html.
1. http://linux.armd.ru" target="_blank">linux.armd.ru.
2. http://scilab.land.ru, http://teacher.dn-ua.com.
3. http://www.scilab.org/publications/index_publicatio ns.php? page=books.html.
Сведения об авторах:
Потапов Леонид Алексеевич, д.т.н., профессор кафедры «Промышленная электроника и электротехника» Брянского государственного технического университета, e-mail: [email protected].
Potapov Leonid Alexeyevich, D.Eng., Prof. of the Dep. "Industrial Electronics and Electrical Engineering" Bryansk State Technical University, e-mail: [email protected].
систем обыкновенных дифференциальных уравнений и систем дифференциальных уравнений в частных производных, решения задач оптимизации, обработки экспериментальных данных, создания графических приложений. При этом следует иметь в виду, что для освоения программы Scilab, как и Matlab, требуются учебник и какие-то виды учебных занятий, а для освоения программы Math Studio достаточно небольших методических указаний.
Совокупность трех рассмотренных программ обеспечивает все варианты научно-технических расчетов и моделирования различных устройств и процессов. Эти программы целесообразно иметь в арсенале каждого студента технического вуза и в дальнейшем инженерно-технического работника промышленного предприятия.
4. Алексеев, Е.Р. Scilab: Решение инженерных и математических задач/ Е.Р. Алексеев, Е.А. Чес-нокова, Е.А. Рудченко. - М.: ALT Linux; БИНОМ, 2008. - 268 с.
4. Alexeyev, E.R., Scilab: Solution of Engineering and Mathematical Problems/ E.R. Alexeyev, E.A. Chesnokova, E.A. Rudchenko.- M.: ALT Linux; BINOM, 2008. - pp. 268.
Статья поступила в редколлегию 27.10.2015. Рецензент: д.т.н., профессор Брянского государственного технического университета
Федяева Г.А.
Потапов Максим Леонидович, к.т.н., доцент кафедры «Инженерная педагогика и психология» Брянского государственного технического университета, e-mail: [email protected].
Potapov Maxim Leonidovich, Can.Eng., Assistant Prof. of the Dep. "Engineering Pedagogics and Psychology" Bryansk State Technical University, e-mail: [email protected].