Новость из категории: Информация

Открытая символьная математика: менее известные свободные CAS

Содержание:
1. Axiom (Вы читаете данный раздел);
2. Yacas;
3. MathPiper;
4. SymPy.
Открытая символьная математика: менее известные свободные CAS

Maxima и Sage, рассмотренные в предыдущих статях, по праву считаются самыми популярными и мощными открытыми CAS. Однако кроме них существуют десятки других открытых систем компьютерной алгебры (подробное сравнение различных свободных и коммерческих CAS по разным параметрам можно найти на http://en.wikipedia.org/wiki/Comparison of computer algebra systems). Все альтернативные свободные CAS значительно уступают Maxima и Sage в удобстве использования, а часто и в функциональности. Однако они, как правило, нетребовательны к ресурсам, что открывает для них нишу устаревших компьютеров, нетбуков и различных мобильных устройств. В этой части статьи рассмотрены некоторые из таких малоизвестных свободных CAS.

Axiom

Axiom (http://www.axiom-developer.org) - это свободная система компьютерной алгебры общего назначения, которая появилась в далеком 1971 году в исследовательских лабораториях IBM. В 2001 году программа стала распространятся свободно по лицензии, сходной с BSD License. Axiom претендует на звание универсальной системы математического программирования, в которой естественные математические понятия, такие как полиномы и дроби, являются строго определенными типами данных.

В Axiom входит полноценный компилятор для специфического внутреннего языка SPAD. Интерпретатор, с которым имеет дело конечный пользователь, работает с синтаксисом, схожим с этим языком. Axiom функционирует в любых UNIX-подобных системах и присутствует в репозиториях всех основных дистрибутивов GNU/Linux, но его жесткая зависимость от X-сервера затрудняет перенос на другие системы (в частности, в Windows программу можно запустить, но приходится использовать специальный X-сервер для Windows).

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

В результате в 2007 году от Axiom откололись два самостоятельных проекта:
- OpenAxiom (http://www.open-axiom.org);
- FriCAS (http://fricas.sourceforge.net).

С точки зрения пользователя отличий между этими проектами на сегодняшний день практически нет. Особой активности в дочерних проектах не заметно, поэтому будущее Axiom на фоне бурного развития более молодых CAS выглядит достаточно туманно. Графического интерфейса у Axiom нет. Имеется команднострочный интерпретатор, система отображения документации HyperDoc и система отображения графиков. Две последние базируются непосредственно на Х-сервере и выглядят крайне архаично, но ресурсов потребляют очень мало, так что могут работать буквально где угодно. Кроме этого, Axiom можно использовать в научном редакторе TeXmacs и как аналитическое ядро в Sage.

Базовый синтаксис Axiom очень схож с синтаксисом Maxima:
(1) -> expand((x+y)^6)
(1) y6 + 6x y5 + 15x2 y4 + 20x3 y3 + 15x4 y3 + 6x5 y + x6
Type: Polynomial Integer
(2) -> factor(%)
(2) (y + x) 6
Type: Factored Polynomial Integer

Используется уже знакомая «магическая» переменная %, содержащая последний вычисленный результат и та же последовательная нумерация строк ввода и вывода. Интегрирование и дифференцирование также выглядят очень схоже:
(1) -> D(cos(x),x)
(1) - sin(x)
Type: Expression Integer
(2) -> integrate(%,x) (2) cos(x)
Type: Union(Expression Integer,...)

Переменные вводятся оператором «:=»:
(1) -> a:=cos(x^2)
(1) cos(x2)
Type: Expression Integer
(2) -> D(a,x) (2) - 2x sin(x2)
Type: Expression Integer

Как и в других CAS, в Axiom не отслеживаются зависимости между выражениями, однако отсутствие интерфейса документа делает эту проблему гораздо более неприятной. Если меняется значение переменной, то приходится заново интерпретировать все выражения, куда она входит. Чтобы организовать подобие работы с целостными документами, в Axiom проще всего записывать последовательность выражений в текстовый файл и затем интерпретировать его целиком.

За построение двумерных и трехмерных графиков в Axiom ответственна единая команда draw. Если передается функция одной переменной, то строится двумерный график:
(1) -> draw(cos(x),x=-3..3)

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

Открытая символьная математика: менее известные свободные CAS
Двумерный график функции одной переменной

В случае, когда строится график функции двух переменных, например:
(1) -> draw(log(cos(y)/cos(x)),x=-1.5..1.5,y=-1.5..1.5)

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

Открытая символьная математика: менее известные свободные CAS
Трехмерный график функции двух переменных

Качество графики в Axiom - невысокое: нет сглаживания линий и шрифтов, отсутствует гладкая градиентная заливка поверхностей.

При использовании Axiom в Ubuntu (и, видимо, во всех других производных Debian) необходимо запускать интерпретатор с явным указанием архитектуры:
setarch i386 -R axiom

иначе он не находит необходимых библиотек.

В целом Axiom демонстрирует, как выглядели CAS два десятилетия назад. При наличии прекрасной математической функциональности архаичный интерфейс делает эту программу не очень привлекательной. Однако нетребовательность к ресурсам позволяет использовать Axiom даже на самой устаревшей машине.

Рейтинг статьи

Оценка
5/5
голосов: 1
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх