Статья опубликована в рамках: Научного журнала «Студенческий» № 2(130)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4
СВОБОДНО РАСПРОСТРАНЯЕМЫЕ МАТЕМАТИЧЕСКИЕ ПРОГРАММЫ В НАУЧНЫХ И ИНЖЕНЕРНЫХ ИССЛЕДОВАНИЯХ
OPEN SOURCE MATHEMATICAL PROGRAMS IN SCIENTIFIC AND ENGINEERING RESEARCHES
Ilya Trefilov
3rd year student, Faculty of Mathematics and Information Technologies, Bashkir State University,
Russia, Sterlitamak
Marina Belyaeva
Ph.D., Associate Professor, Candidate of Physical and Mathematical Sciences, Bashkir State University,
Russia, Sterlitamak
АННОТАЦИЯ
В статье рассматриваются популярные свободно распространяемое программное обеспечение с открытым исходным кодом для проведения расчетов в научных и инженерных исследованиях.
ABSTRACT
The article discusses popular freely distributed open source software for performing calculations in scientific and engineering research.
Ключевые слова: свободно распространяемое ПО, математическое ПО, инженерное ПО, ПО для расчётов, ПО с открытым исходным кодом.
Keywords: freely distributed software, open source, scientific software, engineering software.
Широкое распространение компьютеров во все отрасли жизни и науки привело к тому, что перед научным сотрудником возникает проблема выбора программного обеспечения (ПО) для проведения исследований и расчетов. Проприетарные пакеты из-за их высокой стоимости недоступны для большинства ученых и инженеров, работающих в университетах и исследовательских организациях. Поэтому значительный интерес представляют свободно распространяемые пакеты. В таких отраслях, как интернет-технологии, проектирование ПО именно свободное ПО лучше распространено, чем проприетарное ПО.
Очень часто используются такие проприетарные программы, как MathCad, Matlab, Maple, Mathematica. Однако стоимость их такова, что очень немногие образовательные и научные учреждения могут позволить себе закупать данное ПО.
В рамках данной статьи рассматриваются свободно распространяемые ПО с открытым исходным кодом для решения математических задач, обработки, моделирования и визуализации данных. К свободно распространяемым, относятся программы, которые выходят под лицензией GNU GPL (GNU General Public License - Универсальная общедоступная лицензия GNU) и её различными модификациями. Данное открытое лицензионное соглашение разрешает запуск программы, её модификацию, свободное распространение копий исходного и исполняемого кода.
GNU General Public License или открытое лицензионное соглашение GNU — это лицензия, первый вариант которой датируется 1 февраля 1989 года (Википедия сообщает о 1988 г, но будем считать дату, которая стоит на оригинале). На сегодняшний день существует четыре варианта лицензии, которые нумеруются в порядке появления.
GNU GPL v1.0. Основными позициями GNU GPL v1.0 стали следующие требования:
- предоставление исходных кодов, доступных для изучения, к бинарным кодам, публикуемым с данной лицензией;
- наследование лицензии в случае модификации исходного кода, то есть модифицированный или объединенный с другим код в результате так же должен быть выпущен под лицензией GNU GPL, следовательно, быть доступным для модификации любым желающим.
Данные требования необходим для того, чтобы предотвратить действие закона об авторском праве на распространяемое открытое программное обеспечение, который запрещает модифицировать и использовать чужой код.
GNU GPL v2.0. Вторая версия лицензии датируется 1991 годом. Основным мотивом служит принцип: программа не должна распространяться, если конечный пользователь не может в полной мере использовать свое право на модификацию и распространение под той же самой лицензией.
GNU Lesser GPL v2.1. Данная версия лицензии датируется 1999 годом и содержит одно огромное отличие от обычной лицензии GNU GPL: данная лицензия предназначена для библиотек и позволяет использовать их в проприетарном программном обеспечении.
GNU GPL v3.0. Последняя на сегодняшний день версия GPL, которая вышла в 2007 году. Изменения, внесенные в лицензию, были призваны оградить пользователей лицензии от судебных исков, связанных с патентами, теперь создатели программы не могу подать в суд на пользователя. GPL 3.0 запрещает применять лицензию к программному обеспечению, которое запрещено «обходить» некоторыми законами и директивами (Digital Millennium Copyright Act и the European Union Copyright Directive). То есть, нельзя выпустить под лицензией любое ПО, попадающее под действие этих директив. Таким образом, GPL 3.0 заботится о том, чтобы любое ПО, выпущенное под ее лицензией, можно было свободно модифицировать, обходить или изменять.
Кроме того, GPL 3.0 борется с таким явлением как «тивоизация», когда устройство, на котором установлено программное обеспечение под лицензией GPL, не позволяет вам в силу различных причин модифицировать его. GPL v3.0 запрещает тивоизацию для товаров народного потребления (оставляя возможность тивоизации для медицинских и других важных устройств).
Вместе с GPL 3.0 вышла так же обновленная версия GNU Lesser GPL 3.0, которая продолжает отличаться тем, что позволяет использовать свободные библиотеки в закрытом ПО.
GNU Octave. Обзор свободного ПО для математических расчетов начнем с GNU Octave. Проект был задуман примерно в 1988 году. Настоящая разработка была начата Джоном У. Итоном в 1992 году. Данное ПО названо в честь профессора химии Октава Левеншпиля, который был преподавателем у автора данного математического пакета. GNU Octave изначально задумывалась как программное пособие для проектирования химического реактора.
GNU Octave распространяется под лицензией GNU General Public License (GPL). Благодаря открытой лицензии в разработке данного ПО участвует большое количество разработчиков со всего мира.
В настоящее время и в обозримом будущем основной миссией Octave является быть функциональной альтернативой MATLAB. Собственно, для этого Octave имеет совместимый с MATLAB синтаксис и набор функций. Более того, несовместимость с MATLAB считается ошибкой.
Octave написан на C++, используя стандартную библиотеку шаблонов, имеет интерактивный командный интерфейс, поддерживает расширения — динамически загружаемые модули на родном языке или на C, C++, Fortran и др. Так же, как и MATLAB, в алгебраических вычислениях Octave использует библиотеки Basic Linear Algebra Subroutines (BLAS) и Linear Algebra Package (LAPACK).
Octave содержит большое количество функций, предназначенных для решения задач линейной алгебры, такие, как: вычисление определителя квадратной матрицы, нахождение норм матрицы, нахождение обратной матрицы и многое другое.
Octave позволяет создавать графики и поверхности различной сложности. Есть функции для построения двумерных графиков (plot и fplot), полярных графиков (polar). Функции mesh(x,y,z), surf(x,y,z) позволяют строить поверхности различного вида. По умолчанию для построения графиков и поверхностей в Octave используется пакет gnuplot (http://www.gnuplot.info), который может использоваться и как самостоятельная программа для построения графиков.
Рисунок 1. Графики нескольких функций в GNU Octave
Мощная графическая и математическая база Octave позволяет решать задачи векторной алгебры и аналитической геометрии.
Octave содержит функции для численного и аналитического решения нелинейных уравнений и систем, а также для интегрирования и дифференцирования.
Есть возможности для решения оптимизационных задач. Так, для решения линейных и нелинейных оптимизационных задач с ограничениями можно использовать функцию sqp, а для решения любых задач линейного программирования есть функция glpk. Сложные оптимизационные задачи в Octave решают с помощью пакета пакета расширений Minimization для GNU Octave.
В инженерной практике часто приходится сталкиваться с решением обыкновенных дифференциальных уравнений и систем. В Octave существует достаточно много функций для решения обыкновенных уравнений и систем (в том числе и жёстких). Наиболее часто используемые среди них:
- функции решений обыкновенных нежёстких дифференциальных уравнений (или систем) методом Рунге-Кутта 2-3-го и 4-5-го порядка точности соответственно;
- функции решений обыкновенных жёстких дифференциальных уравнений (или систем).
Скачать данное ПО можно по ссылке: https://www.gnu.org/software/octave/download
Scilab — пакет прикладных математических программ, предоставляющий открытое окружение для инженерных (технических) и научных расчётов. Это самая полная общедоступная альтернатива MATLAB.
Scilab распространяется под лицензией GNU General Public License (GPL). Благодаря открытой лицензии в разработке данного ПО участвует большое количество разработчиков со всего мира.
Scilab является некоммерческим аналогом инженерного ПО Matlab. Scilab имеет схожий с ним интерфейс, принципы взаимодействия с пользователем (через командную строку), то есть является облегченным вариантом вышеупомянутого коммерческого приложения с сохранением основных возможностей.
В Scilab реализованы численные методы решения задач вычислительной математики, среди которых можно выделить следующие:
- задачи линейной алгебры;
- нелинейные уравнения и системы уравнений;
- задачи оптимизации;
- дифференцирование и интегрирование;
- обработка экспериментальных данных;
- обыкновенные и дифференциальные уравнения и системы.
Рисунок 2. Решение некоторых задач линейной алгебры в Scilab
В Scilab есть встроенные функции для численного решения большинства стандартных математических задач. Для решения используется довольно мощный объектно-ориентированный язык программирования, с помощью которого пользователь может создавать свои приложения, которые могут выполняться как отдельные программы в среде Scilab.
Графические возможности Scilab не уступают проприетарным математическим пакетам.
О поддерживает взаимодействие с кодом на языках С и Fоrtran, а также имеет возможность отладки процесса моделирования, что дает возможность получать информацию о переменных по ходу выполнения процедуры.
Среди недостатков, присущих пакету, можно отметить следующие: слабая поддержка аналитических операций, ограничение количества символьно-аналитических операций, неинтерактивность отладчика.
Скачать данное ПО можно по ссылке: https://www.scilab.org/download/6.1.0
Maxima – математическая система символьных и численных вычислений.
Maxima распространяется под лицензией GNU General Public License (GPL).
Программа работает в консольном режиме и в виде оконного приложения. При проведении вычислений Maxima использует точные дроби, целые числа и числа с плавающей точкой произвольной точности, что позволяет проводить вычисления с очень высокой точностью.
Maxima может заменить при решении некоторых задач Maple и Mathematica. С её помощью можно проводить операции:
- с векторами, матрицами и тензорами;
- дифференцирования, интегрирования, вычисления пределов;
- разложения в ряд, преобразования Лапласа;
решать:
- обыкновенные дифференциальные уравнения;
- задачи обработки экспериментальных данных;
- нелинейные уравнения и системы уравнений.
Maxima может быть использована при проведении аналитических расчетов и построении двух- и трехмерных графиков.
Рисунок 3. Графическое окно Maxima
Стоит обратить внимание, что в Maxima присутствует встроенный макроязык, благодаря чему программа становится практически неограниченно расширяемым инструментом для проведения вычислений.
Скачать данное ПО можно по ссылке: https://maxima.sourceforge.io/download.html
Рассмотренные выше свободные программы можно рекомендовать для использования в научных и инженерных исследованиях. Это полноценные и качественные продукты, не уступающие своим проприетарным аналогам.
Переход на свободное ПО позволит использовать в научных исследованиях качественные и легальные программы, не затрачивая огромные средства на покупку проприетарных программ.
Список литературы:
- GNU General Public License – Википедия. URL: https://ru.wikipedia.org/wiki/GNU_General_Public_License
- GNU Octave – Википедия. URL: https://ru.wikipedia.org/wiki/GNU_Octave
- GNU Octave – Официальный сайт. URL: https://www.gnu.org/software/octave/index
- Salome – Официальный сайт. URL: https://www.salome-platform.org/
- Scilab – Википедия. URL: https://ru.wikipedia.org/wiki/Scilab
- Scilab – Официальный сайт. URL: https://www.scilab.org
- Губина Т.Л. – Цикл уроков по системе аналитических вычислений Maxima. URL: http://esyr.org/uneex_disc/mounted/FreeCode/048/index.html
- Моделирование в CAE Salome. URL: https://www.ibm.com/developerworks/ru/library/l-salome_01/
- Руководство по работе с SCILAB. URL: http://scilab.psati.ru/rukovodstvo/index.html
- Список бесплатного программного обеспечения, которое может заменить лицензионные коммерческие пакеты – Справочники – Каталог файлов – Информационный ресурс г. Рубежное
- Чичкарев Е.А. – Компьютерная математика Maxima. Руководство для школьников и студентов. URL: https://www.altlinux.org/Images/0/0b/MaximaBook.pdf
Оставить комментарий