Сравнительный анализ универсальных математических пакетов: Matlab, Maple, Mathematica, - и высокоуро

Сравнительный анализ универсальных математических пакетов: Matlab, Maple, Mathematica, - и высокоуро

Наиболее известными и приспособленными для математических символьных вычислений считаются Maple, Mathematica, MatLab и Python.

Проведём обзор и краткий анализ этих программных продуктов.

MatLab

Продукт компании MathWorks, Inc., представляющий собой язык высокого уровня для научно-технических вычислений. Среди основных областей его применения — математические расчеты, разработка алгоритмов, моделирование, анализ данных и визуализация, научная и инженерная графика, разработка приложений, включая графический интерфейс пользователя. MatLab решает множество компьютерных задач — от сбора и анализа данных до разработки готовых приложений. Среда соединяет в себе математические вычисления, визуализацию и мощный технический язык. Встроенные универсальные интерфейсы позволяют легко работать с внешними информационными источниками, а также осуществлять интеграцию с процедурами, написанными на языках высокого уровня (C, C++, Java и др.). Мультиплатформенность MatLab сделала его одним из самых распространенных продуктов, также он имеет широкий спектр применений, в том числе цифровую обработку сигналов и изображений, проектирование систем управления, естественные науки, финансы, экономику, приборостроение и т.п.

Mathematica

Компании Wolfram Research, Inc. имеет чрезвычайно широкий набор средств, переводящих сложные математические алгоритмы в программы. По сути дела, все алгоритмы, содержащиеся в курсе высшей математики технического вуза, заложены в память компьютерной системы Mathematica. Огромное преимущество системы Mathematica состоит в том, что ее операторы и способы записи алгоритмов просты и естественны. Mathematica имеет мощный графический пакет, с помощью которого можно строить графики очень сложных функций одной и двух переменных. Главное преимущество Mathmatica, делающее ее бесспорным лидером среди других систем высокого уровня, состоит в том, что эта система получила сегодня очень широкое распространение во всем мире, охватив огромные области применения в научных и инженерных исследованиях, а также в сфере образования.

Maple

Продукт компании Waterloo Maple Software, Inc., который часто называют системой символьных вычислений или системой компьютерной алгебры. Maple позволяет выполнять как численные, так и аналитические расчеты с возможностью редактирования текста и формул на рабочем листе. Благодаря представлению формул в полиграфическом формате, великолепной двух- и трехмерной графике и анимации Maple является одновременно и мощным научным графическим редактором. Простой и эффективный язык-интерпретатор, открытая архитектура, возможность преобразования кодов в коды C делает его очень эффективным средством создания новых алгоритмов. Обладает интуитивно понятным интерфейсом, простыми правилами работы и широким функционалом.

Python

высокоуровневый язык программирования общего назначения, который поддерживает структурное, обобщенное, объектно-ориентированное, функциональное и аспектно-ориентированное программирование. Для выполнения научных исследований используются дополнительные пакеты: Numpy, Scipy, Matplotlib и др.

Сравнительный анализ систем компьютерной математики приведём в таблице ниже.

Критерий сравнения

MatLab

Mathematica

Maple

Python

Интерфейс

● содержит три окна: командное окно, все переменные и их типы и окно подсказок;

● есть строка приглашения, обозначается знаком ">>";

● в отличие от Mathcad все функции приходится вводить с клавиатуры.

● строка приглашения в отличие от MatLab разделена на две области: ввода и вывода, которые составляют вместе область всего выражения;

● область ввода можно редактировать;

● имеется палитра с греческими буквами, различными символами и панель мат анализа.

● возможность работы в режиме интерпретатора;

● позволяет вводить электронные таблицы, содержащие как числа, так и символы;

● имеются опции разбиения на параграфы и разделы, а также добавления гиперссылок;

● рабочие листы можно организовать иерархически.

● зависит от среды разработки.

Работа с массивами и матрицами

● аналогично Mathematica матрицы и вектора формируются при помощи списка элементов.

● функции вводятся с клавиатуры.

● многомерный набор данных создается с помощью списка, который вводится с клавиатуры.

● также с клавиатуры вводятся и функции для работы с матрицами и векторами.

● может находить собственные значения и собственные векторы операторов,

● вычислять криволинейные координаты, находить матричные нормы и вычислять множество различных типов разложения матриц.

● Python не имеет встроенного типа данных для матриц.

● для линейной алгебры принято использовать numpy, вектора и матрицы которого типизированы, в отличии от встроенный в язык списков.

Решение уравнений

● решает уравнения и системы уравнений функций с различными параметрами.

● содержит несколько функций для решения уравнений и систем уравнений.

● можно находить корни уравнений с параметром.

● имеется функция для особых решений.

● предлагает различные способы представления, сокращения и преобразования выражений, например такие операции, как упрощение и разложение на множители алгебраических выражений и приведение их к различному виду

● для использования символьных вычислений можно использовать библиотеку sympy. Однако, код, написанный с помощью sympy, уступает в красоте коду, написанному на Mathematica, которая специализирована на символьных вычислениях.

Математические операторы

● в отличие от Mathcad все операторы вводятся с клавиатуры в виде отдельных символов и функций. Дан относительно подробный список операторов.

● как и в MatLab операторы приходится вводить с клавиатуры, но некоторые можно найти и на палитре инструментов.

● способен выполнять арифметические действия в символьном виде.

● для научных вычислений используется библиотека scipy.

Встроенные функции

● в основном используются только функции, которые вводятся с клавиатуры.

● приведено множество функций различного назначения с различным числом параметров.

● включены пакеты для решения задач линейной и тензорной алгебры, евклидовой и аналитической геометрии, теории чисел, теории вероятностей и мат.статистики, комбинаторики, теории групп, интегральных преобразований, численной аппроксимации и линейной оптимизации и др.

● существует очень много арифметических, тригонометрических, гиперболических, логарифмических функций, которые становятся доступные после импортирования библиотеки null>

 

Как видно из сравнительного анализа, все математические пакеты схожи между собой. Но среди них особенно выделяется Python, у которого можно выделить следующие основные преимущества:

1) свободно распространяемый и работает практически на всех известных платформах;

2) прост для изучения и обладает такими важными свойствами, как интерактивность и интерпретируемость;

3) имеет богатый набор функций стандартной библиотеки и широкий набор внешних библиотек, позволяющих решать практически любые задачи;

4) пространства имен: например, Matlab поддерживает пространства имен для функций, которые используются в программе, но ядро Matlab не имеет пространств имен (то есть каждая функция определена в глобальном пространстве имен). Python же работает с модулями, которые нужно импортировать, если они будут использоваться;

5) самоанализ. Поскольку программа имеет четкую структуру, самоанализ очень прост. Закрытые переменные существуют только по соглашению, поэтому можно получить доступ к любой части приложения, включая некоторые внутренние компоненты Python.

6) инструментарий GUI, который позволяет создавать внешний интерфейс.

Таким образом, Python — это, пожалуй, наиболее удачно сбалансированная система и бесспорный лидер по возможностям символьных вычислений для математики.

Полезные ссылки:

Классификации средств компьютерной математики

Read More