Аналоги матлаб для линукс

Случайные заметки

Блог продолжающего linux-оида.

вторник, июня 13, 2006

Linux для математика

Итак, вопрос: есть ли для Linux (*nix) аналоги известных коммерческих математических пакетов? Ответ: есть, более чем.

Небольшая табличка аналогов:

Коммерческий пакет для Windows Аналог для Linux Лицензия Homepage Комментарии
MathCAD Symaxx/2 GPL symaxx.sf.net К сожалению, не очень интуитивный интерфейс. Является графическим front-end-ом к Maxima. Написан на Perl/Tk.
MuPAD Коммерческий www.mupad.de Не видел 😉
Mathematica, Maple maxima GPL maxima.sf.net Прародитель Mathematica и Maple.
axiom GPL axiom-developer.or g До 2001г. — самая дорогая система компьютерной алгебры (по слухам, порядка $200k).
Mathematica Linux Коммерческая wolfram.com Практически полный аналог своей сестры для Windows, только бывают проблемы со шрифтами
Maple Linux Коммерческая maplesoft.com
MatLAB SciLAB Своя, типа GPL scilab.com Почти совместим с MatLAB 5/6 на уровне исходников.
Octave GPL octave.org Нет своего аналога Simulink. Почти совместима с MatLAB.
MatLAB Linux Коммерческая mathworks.com Дороже своей Windows-версии
Statistica R GPL r-project.org Мощный язык для статистических вычислений + куча модулей.
OpenDX GPL opendx.org Одна из мощнейших в мире систем визуализации данных.

И здесь еще не все перечислено… Математического софта под *nix просто море.

Причем интересна его история.

В 50-60-х годах в США на волне интереса к компьютерам начали создавать системы компьютерной алгебры. (в смысле, программы, способные сообразить, что (a+b) 2 = a 2+2ab+b^2, не зная, что такое a и b). И, конечно, такая софтина нужна была одному мирному американскому ведомству. И это ведомство объявило конкурс на лучшую CAS (Computer Algebra System) для своих нужд, пообещав всяческую поддержку. Конкурс этот выиграл мало кому известный тогда проект Macsyma (CAS, написанная на Lisp). И, получив поддержку, очень неплохо развивался как коммерческий проект года так до 1984. А в 1984 году небезызвестный Richard Stollman объявил о создании FSF и опубликовал первую версию GPL. Услыхав про это, один из отцов-основателей проекта Macsyma заявил руководству (и Пентагону) ультиматум: «либо а) мне передают все наработки проекта, и я паралельно развиваю GPL-версию Macsyma, либо б) я ухожу из проекта». Так как второй вариант означал быстрый распад проекта, Пентагон вынужден был согласиться на первый. Так появилась свободная CAS под названием Maxima. Она развивалась паралельно с Macsyma до начала 1990-х. А в 1991 СССР распался, холодная война кончилась, и Пентагон прекратил финансирование проекта. В 1994 Macsyma прекратила свое развитие. Исходники были частично распроданы, и на их основе вскоре появились Mathematica и Maple. А Maxima продолжает развиваться до сих пор.

С axiom вышла тоже интересная история. Этот проект развивался самостоятельно, и развился в очень мощную и очень дорогую CAS. Однако, организаций, способных заплатить несколько сот тысяч баксов за копию программы, не так уж много. Так что к началу XXI века продажи резко упали (рынок был насыщен), и проект стал коммерчески нерентабельным. Тогда авторы axiom выпустили ее под лицензией GPL.

Maxima и Axiom замечательны уровнем абстракции, который они предоставляют пользователю. Они поддерживают так называемые Rule-based преобразования. Например, можно задать, что «f(A and B)» переходит в «f(A) or f(B)», и CAS сделает преобразование, не задумываясь ни о том, что такое A и B, ни о смысле операций and или or. Это позволяет производить преобразования не только над математическими выражениями, но над чем угодно, что может быть записано в виде формулы.

Изюминка Maxima состоит в большой гибкости синтаксиса. Например, объявив «f(x,y):= x 2-y 2», можно объявть f инфиксным оператором и писать далее вместо «f(x,y)» — «x f y».

У Axiom тоже есть свои изюминки. Во-первых, это язык с очень мощной и простой системой типов. Например, можно объявить «A: List Matrix Rational Polynomial Complex» — «пусть А — это список матриц из дробей, числителями и знаменателями которых являются многочлены над комплексными числами». Во-вторых, поддерживаются весьма абстрактные операции из области абстрактной алгебры и теории чисел. «Приведение многочленов над полем Галуа» — слышали про такое? Криптоаналитики слышат каждый день. А в Axiom для этого есть встроенная функция. В-третьих, Axiom имеет очень интересный алгоритм вычисления интегралов. Большинство CAS, встретив слишком сложный для них интеграл, просто оставляют его как есть. Это у них означает «Либо интеграл не берется в элементарных функциях вообще, либо я просто не знаю, как его брать». Axiom выдаст интеграл как был только в том случае, когда может математически доказать, что взять его в элементарных функциях невозможно.

Из CAS под Linux можно упомянуть еще yacas, yorick и GAP. Все это свободный софт.

GAP — совершенно замечательная система. Ее название — аббревиатура, расшифровывается как «Groups, Alghorithms and Programming». Это изначально свободный (GPL) проект создания модульной системы для абстрактной алгебры. На сегодняшний день это мощнейшая из систем такого рода (в том числе и коммерческих). Здесь «поле», «кольцо», «группа» — это типы данных, а «вычисление идеала банаховой алгебры» — стандартная функция.

Ну ладно, CAS обсудили, поехали к «числодробилкам» (системам численных вычислений). Из коммерческих продуктов здесь на ум сразу приходит MatLAB. Это очень дорогая система. В том составе, в котором мы привыкли видеть ее на пиратских дисках, она стоит что-то от $40k «студенческая лицензия» (т.е. с правом установки на один компьютер один раз, без тех.поддержки) до $60k Enterprise Edition.

Проект SciLAB появился как коммерческий, но более дешевый конкурент MatLAB-a. Коммерчески проект себя не оправдал, и исходники открыли. Лицензия — «почти GPL», но с изменениями, направленными на то, чтобы затруднить появление многочисленных мало совместимых версий. Эта программа почти полностью совмекстима с MatLAB на уровне исходных текстов (m-файлов). Здесь есть даже аналог Simulink — средства визуального проектирования математических моделей.

Octave появился как «чисто GNU GPL» конкурент SciLAB-a. На сегодняшний день во многом совместима с MatLAB-ом, но нет аналога Simulink.

Из этой же серии можно отметить Tela — «interactive tensor language». Замечателен pascal-подобным синтаксисом.

Остались только программы для статистиков.

В качестве функциональной замены системы Statistica можно посоветовать язык статистических вычислений R. Это очень мощный язык, плюс к нему написаны десятки модулей для конкретных задач (кластерный анализ, финансовый инженеринг, распределенные вычисления…).

Для визуализации численных данных ученые всего мира используют OpenDX. Изначально это недешевый продукт IBM (dx — data explorer), однако исходники открыли, сейчас это GPL-проект. Считается мощнейшей системой в своем классе.

Материалы собраны по всему Интернету, плюс личный опыт общения с CAS и числодробилками.

Last updated 02-May-2006 21:51:13 YEKST

Источник

Альтернативы Matlab для Linux

Оригинал: Matlab Alternative Softwares For Linux/Ubuntu/Linux Mint
Автор: Umair Riaz
Дата публикации: 8 ноября 2014 года
Перевод: А. Кривошей
Дата перевода: июль 2016 г.

Для численных расчетов и анализа данных часто используется математический пакет Matlab, но это коммерческая программа, и довольно дорогая. Студенты, изучающие машинное обучение, часто интересуются наличием доступных альтернатив Matlab, которые были бы бесплатными, и при этом достаточно мощными. Это позволило бы им не тратить свои деньги на проприетарное программное обеспечение. Ниже я представлю лучшие бесплатные математические пакеты, которые могли бы послужить альтернативой Matlab в Ubuntu/Linux Mint.

1: GNU Octave

GNU Octave — это высокоуровневый интерпретируемый язык, в основном предназначенный для численных вычислений. Он содержит средства для численного решения линейных и нелинейных уравнений, и выполнения других численных экспериментов. Он также имеет продвинутые графические возможности для визуализации данных. Для работы с Octave обычно используется командная строка в интерактивном режиме, хотя можно писать и неинтерактивные программы. Язык Octave очень похож на Matlab, поэтому большинство программ очень легко портируются.
Octave имеет мощные инструменты для решения обычных алгебраических уравнений, нелинейных и дифференциальных уранений, интегрирования, работы с полиномами и т.д. Он легко расширяется и настраивается с помощью пользовательских функций, написанных на собственном языке Octave, или динамически загружаемых модулей, написанных на C++, C, Fortran, или других языках.

Для установки GNU Octave в Ubuntu/Linux Mint откройте терминал и введите следующую команду:

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

2: Genius

Genius — это программа для вычислений, в определенных аспектах похожая на BC, Matlab, Maple или Mathematica. Ее можно использовать как обычный калькулятор, либо для исследований и образовательных целей. Синтаксис очень интуитивный и разработан таким образом, чтобы быть похожим на математическую запись. Для написания расширений имеется специальный язык GEL (Genius Extension Language). По факту многие стандартные функции Genius написаны на GEL.
Возможности Genius: целые числа произвольной точности; числа с плавающей точкой; рациональные числа, которые хранятся в виде числителя и знаменателя; комплексные числа; математические выражения; матричные вычисления и функции линейной алгебры; теория чисел; ограниченные возможности символьной математики; статистические функции; решение алгебраических уравнений, нахождение корней полиномов; комбинаторика; элементарные и тригонометрические функции; модульная арифметика; полнофункциональный язык программирования с динамической типизацией. Фактически большая часть Genius — это стандартная библиотека, написанная на GEL; функции для постронения 2D-графиков с возможностью экспорта в EPS и PNG; параметрические графики; трехмерные графики; трехмерные графики поверхностей.

Для установки Genius в Ubuntu/Linux Mint откройте терминал и введите следующие команды:

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

3: Sagemath

Sage — это бесплатный математический пакет с открытым исходным кодом, лицензированный под GPL. Он объединяет мощь различных пакетов с открытым исходным кодом в едином интерфейсе командной строки на базе Python. Целью разработки Sage было создание свободной альтернативы Magma, Maple, Mathematica и Matlab. В Sage собрано более 100 математических пакетов с открытым исходным кодом. Его можно использовать для элементарных и продвинутых математических расчетов, включая алгебру, теорию чисел, криптографию, чсленные расчеты, коммутативную алгебру, теорию групп и многое другое.

Для установки последней версии Sagemath из PPA в Ubuntu/Linux Mint откройте терминал и введите следующие команды:

Для установки Sagemath в Ubuntu/Linux Mint из репозитория Universe, откройте терминал и введите следующие команды:

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

4: Scilab

Scilab — это научный программный пакет для численных расчетов с использованием матриц. Scilab включает сотни встроенных математических функций, богатые структуры данных и набор специфических тулбоксов для обработки сигналов, моделирования и т.д. Scilab бесплатен и является программой с открытым исходным кодом. В его состав также входит Xcos — графический редактор для проектирования гибридных динамических моделей систем. Модели могут быть разработаны, загружены, сохранены, скомпилированы и запущены. Являясь стабильным и эффективным решением для промышленного и академического применения, Xcos предлагает функциональность для моделирования механических (автомобильная промышленность, авиастроение), гидравлических систем, а также систем управления.

Для установки Scilab в Ubuntu/Linux Mint из репозитория Universe, откройте терминал и введите следующие команды:

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

5: FreeMat

FreeMat — это бесплатное окружение для быстрого инженерного и научного прототипирования и обработки данных, распространяется под лицензией GPL. Пакет похож на MATLAB от Mathworks, и IDL от Research Systems, но имеет открытый исходный код. FreeMat поддерживает около 95% возможностей MATLAB.

Для установки FreeMat в Ubuntu/Linux Mint из репозитория Universe откройте терминал и введите следующие команды:

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

Источник

Читайте также:  Что такое именованный канал linux
Оцените статью