Системы Компьютерной Алгебры Линукс

Posted on -
Системы Компьютерной Алгебры Линукс Average ratng: 6,0/10 2860 votes

Записки дебианщика: Maxima: компьютерная алгебра и символьные вычисления в Linux блог о Дебиан Линукс, настройке Debian Linux.. Делать это от руки, хотя и можно, но лениво - вот тут нам и пригодится система компьютерной алгебры Maxima, которая есть в любом уважающем себя дистрибутиве. Установка Maxima Скачивать Maxima с варёзных сайтов, в отличие от Maple, не надо (а если всё-таки надо, скачать Maxima бесплатно можно на официальном сайте). Другой системой компьютерной алгебры, рассматриваемой в этом курсе, является Maxima. Эта программа распространяется под лицензией GNU, что позволяет рекомендовать ее широкому кругу пользователей. У каждой из этих двух программ есть свои сильные и слабые стороны.. Этот раздел посвящен описанию системы компьютерной алгебры Mathematica. Многие считают ее мировым лидером среди систем подобного класса. Разработкой этой программы занимается компьютерная фирма Wolfram Research, Inc. Число легальных пользователей программы Mathematica во всем мире превысило миллион человек. Итак, есть ли какие-нибудь хорошие бесплатные или даже лучшие системы компьютерной алгебры с открытым исходным кодом для Linux, приближающиеся к коммерческим продуктам, таким как математика или клен? SSH не приземляется в домашнем каталоге. Перемещенный ящик и другие папки! Как их вернуть? Как настроить группы для правильного обмена ресурсами между пользователями? Почему xargs вырезает цитаты из ввода? Как построить таблицу разделов только для GPT в Linux? Статья посвящается применению свободно распространяемой системы компьютерной алгебры.

Linux в научном сообществе Тот факт, что операционная система Linux прочно обосновалась в научном сообществе, не должен вызывать удивления. Решения варьируют от высокопроизводительных вычислительных кластеров и до программного обеспечения для визуализации. Существует даже отдельный дистрибутив Linux на основе Red Hat Enterprise Linux, предназначенный для научных вычислений – Scientific Linux. Sage и Enthought Python Distribution В этой статье рассматриваются два варианта использования Linux в качестве платформы для научных вычислений. Первый – это математическая Open Source-система Sage, второй – среда разработки Enthought Python Distribution (EPD).

В обоих случаях используется ряд базовых Open Source-инструментов Python, выполняющих за кадром все сложные задачи. Если вы хотите попробовать поработать с этими решениями, то установите требуемые компоненты с помощью менеджера приложений Ubuntu. Система Sage является более исчерпывающей в том плане, что она является в большей степени оболочкой над различными механизмами вычислений. Командная строка Sage позволяет взаимодействовать даже с такими коммерческими продуктами, как MATLAB или Mathematica. Работая в командной строке Sage вы, по существу взаимодействуете с оболочкой IPython, получая доступ ко всем ее функциональным возможностям. Когда вы начнете изучать Sage, вам также придется мыслить в терминах объектов и методов.

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

Системы Компьютерной Алгебры Линукс

Если может привести к некоторой путанице, если смотреть на простые интерактивные команды Sage. Причина состоит в желании сделать набор команд в Sage как можно более интуитивным с математической точки зрения. Хорошим примером является символ возведения в степень. В чистом Python для возведения двойки в четвертую степень необходимо набрать команду 2.4. В Sage для этого используется знак верхней стрелки (^), т. Выражение имеет вид 2^4. Кроме того Sage обрабатывает некоторые операторы (например, целочисленное деление) иначе, чем базовый Python.

NumPy и SciPy Два наиболее известных расширения, лежащих в основе Sage и EDP – это NumPy и SciPy. Оба проекта существуют примерно с середины-конца 1990-х и изначально были разработаны Трэвисом Олифантом (Travis Oliphant), который сейчас работает в компании Enthought. NumPy содержит основные численные методы для работы с массивами и матрицами.

SciPy базируется на пакете NumPy в части структуры базовых массивов данных и содержит множество модулей, позволяющих выполнять самые разнообразные задачи – начиная от линейной алгебры и заканчивая обработкой сигналов. Компания Enthought является спонсором обоих проектов и продолжает активно развивать и создавать их новые версии. Инсталляция Sage Установку Sage можно выполнить различными способами. Чтобы познакомиться с системой Sage, не устанавливая ее, можно использовать версию в виде Live-CD. Можно запустить Live-CD в виртуальной машине, например в VM VirtualBox или VMware Player. В этой статье мы рассмотрим установку Sage как на физическую, так и на виртуальную машину, работающие под управлением последней версии операционной системы Ubuntu (12.04). Инсталляция на физический компьютер Поскольку операционная система Ubuntu 12.04 была выпущена лишь недавно, то самый надежный способ установить Sage заключается в установке из исходного кода.

Загрузите tarball-файл с исходным кодом и распакуйте его в какую-нибудь директорию. Прежде чем приступить к сборке Sage, необходимо установить несколько зависимостей с помощью следующих команд: sudo apt-get install build-essential gfortran sudo apt-get install texlive xpdf evince sudo apt-get install tk8.5-dev После того как все зависимости будут установлены, можно приступить к сборке Sage. Для этого выполните следующую команду: make Теперь можно пойти посмотреть какой-нибудь фильм или вздремнуть.

На физическом компьютере процесс сборки может занять несколько часов. Если процесс завершится успешно, то вы должны будете увидеть экран, изображенный на рисунке 1. Экран сборки Sage. Инсталляция на виртуальную машину Установка на виртуальную машину удобна, если вы не хотите выполнять лишние действия, а хотите просто приступить к работе с Sage. На Web-сайте Sage вы можете загрузить пакет Open Virtualization Archive (OVA), а также двоичные пакеты для Fedora 16 и Ubuntu 10.04.3.

OVA представляет собой единый пакет (по существу, это tar-файл), содержащий все файлы, необходимые для запуска виртуальной машины в формате Open Virtualization Format (OVF). Использование Sage После установки Sage можно начинать двигаться к новым математическим достижениям.

Работать с Sage можно как из командной строки, так и с использованием графического интерфейса. Интерфейс командной строки Для запуска текстовой версии Sage перейдите в директорию установки и наберите в командной строке следующую команду:./sage На рисунке 2 показан пример интерпретатора Sage и нескольких математических выражений, уже упомянутых ранее. Интерфейс командной строки и математические выражения Sage. Отличие в целочисленном делении связано с тем, как Python обрабатывает различные типы операций (целочисленные, с плавающей точкой и т. В языке Python результатом выражения 2/3 является целочисленное значение, округляемое в меньшую сторону до нуля.

Системы Компьютерной Алгебры Линукс

Sage воспринимает оператор деления в качестве конструктора, работающего с рациональными числами; это означает, что вы можете выполнять операции над дробями так же, как на бумаге. Например, если вы наберете в командной строке Sage выражение 2/3 + 2/3, то получите результат 4/3. Если же вы наберете то же самое выражение в Python, то результатом будет 0. Вы можете неявно задавать тип литералов с помощью конструкций float или int, как показано на рисунке 2. Web-интерфейс Для использования инструмента Notebook можно либо набрать notebook после запуска Sage, либо выполнить следующую команду:./sage -notebook В результате запустится сервер Sage и в Web-браузере по умолчанию откроется домашняя страница Sage Notebook. В этом приложении вы найдете много полезных функций, упрощающих работу, таких как сохранение и загрузка рабочих листов из файла, а также обычные функции копирования, удаления и переименования.

Sage упрощает совместную работу благодаря функциям Share и Publish, показанным на рисунке 3. Возможности Sage Notebook. Пакеты компьютерной алгебры Базовый дистрибутив Sage содержит ряд пакетов компьютерной алгебры, включая GAP, Maxima, PARI и Singular. Каждый пакет поддерживается своим отдельным сообществом и обладает слегка отличной от других функциональностью.

Главное, что все эти пакеты входят в состав базового дистрибутива Sage, поэтому их не нужно загружать и устанавливать отдельно. На рисунке 4 показан пример использования пакета Maxima для выполнения различных матричных операций.

Все это делается в Sage Notebook, при этом вводимые пользователем данные отображаются черным цветом, а получаемые результаты – синим. В первых двух строках создается матрица с элементами, равными i/j, где переменные i и j принимают значения от 1 до 4. Заметьте, что это рациональные числа (дроби). Матричные операции в Maxima.

Публикация научных трудов Публикация научных трудов является обязательным требованием для многих научных сообществ. Каждый объект в Sage должен соответствовать формату разметки LaTeX. Это требование напрямую связано с необходимостью создания текстовых и графических материалов для публикаций, соответствующих всем необходимым требованиям, с помощью языка TeX. Учтите, что для использования всех имеющихся возможностей Sage необходимо выполнить полную инсталляцию TeX.

Инсталляция EPD Научные вычисления в Python – это то, чем, по сути, занимается компания Enthought. Enthought зарабатывает на продаже и поддержке коммерческих продуктов, однако при этом она вносит существенный вклад в Open Source-сообщество, непосредственно работая с базовым кодом проектов NumPy и SciPy, выступая на ежегодных конференциях PyCon и являясь организатором конференций SciPy.

Для инсталляции различных компонентов, необходимых для работы с IPython, NumPy и SciPy, можно просто загрузить и инсталлировать бесплатную версию EPD, которая называется EPD Free. Компания Enthought предлагает 32- и 64-разрядные версии EPD Free, протестированные в Red Hat, Ubuntu и openSUSE. Компания предупреждает, что некоторые 64-разрядные операционные системы Linux не содержат 32-разрядных библиотек, что приводит к необходимости инсталляции 64-разрядной версии пакета. Для инсталляции EPD Free загрузите установочный сценарий и запустите его при помощи следующей команды: bash epdfree-7-2-2-rh5-x86.sh Чтобы упростить запуск EPD в будущем, необходимо добавить несколько строк в файл запуска командной оболочки (в файл either.cshrc либо.bashprofile). В Ubuntu по умолчанию используется командная оболочка bash, поэтому ниже приведен пример именно для bash.

В данном случае я добавил следующую строку: export PATH=/home/paul/Downloads/epdfree-7.2-2-rh5-x8664/bin:$PATH Использование EPD IPython – это еще один общий знаменатель EPD и Sage, служащий главным инструментом пользовательского интерфейса. Так же, как и в случае с Sage, с EPD можно работать как в командной строке, так и в графической оболочке Notebook.

Интерфейс командной строки Функциональность консоли на основе Qt немного расширена и помимо прочего включает полную подсветку синтаксиса (для этого используется библиотека Pygments), а также позволяет создавать встроенные графики. Чтобы воспользоваться этими возможностями, запустите IPython с помощью следующей команды: ipython -pylab На рисунке 5 изображена консоль Qt и встроенный график.

Создание нового проекта PyDev. Web-интерфейс Последняя версия IPython (0.12) содержит Web-интерфейс Notebook, похожий на Web-интерфейс Sage. Для использования функциональности Notebook необходимо инсталлировать несколько зависимостей, включая ZeroMQ и Web-сервер Tornado. Для запуска Notebook из командной строки наберите в окне терминала следующую команду: ipython notebook В результате запустится Web-механизм Tornado и в Web-браузере по умолчанию откроется страница с инструментальной панелью. Если вы выберете блокнот по умолчанию, то увидите новое окно, изображенное на рисунке 6. Интерфейс iPython Notebook. В Web-версии блокнота есть одна особенность, заключающаяся в том, что если вам нужно выполнить код, то необходимо нажать Control-Enter.

Благодаря этому можно вводить несколько строк кода, как на рисунке 6, а затем последовательно выполнять все набранные команды. Таким образом, можно легко разбивать функции на обозримые блоки. Можно добавлять к своим заметками комментарии, используя для этого синтаксис Markdown. Если вы не знакомы с Markdown, то, по существу, это способ создания форматированного HTML-содержимого с помощью обычного текста. Например, одинарный символ решетки (#), за которым следует пробел, означает тег H1 в языке HTML, два символа решетки означают тег H2 и т. Это позволяет добавлять комментарии к графикам и коду. Pandas Библиотека Python Data Analysis Library (pandas) – это еще один связанный с SciPy и NumPy инструмент, созданный специально для выполнения анализа данных.

Pandas содержит большое количество библиотек, а также ряд стандартных моделей данных, позволяющих эффективно работать с большими наборами данных. Одним из самых распространенных способов передачи данных между участниками совместного проекта являются CSV-файлы (значения, разделенные запятыми). Pandas содержит оптимизированную библиотечную функцию для чтения и сохранения данных в различных файловых форматах, включая форматы CSV и HDF5. Модуль readcsv умеет анализировать типовые CSV-файлы, содержащие в первой строке заголовочную информацию. Встроенный синтаксический анализатор позволяет также работать с файлами, содержащими значения даты и времени. В состав Pandas включен модуль datetools, содержащий большой набор процедур для выполнения различных вычислений, связанных с датами. В листинге 1 показан фрагмент кода из документации pandas, объясняющий, как находить дату, отличающуюся на 4 месяца и 5 дней от указанной.

Пример вычисления даты в Pandas d = datetime(2012, 4, 20) d + pandas.DateOffset(months=4, days=5) datetime.datetime(2012, 8, 25, 0, 0) Pandas блестяще справляется с разделением больших объемов данных на части. После того как вы импортируете ваши данные в поддерживаемую структуру, в вашем распоряжении окажется большой набор инструментов для выполнения буквально всех типов операций. Вы сможете разделять данные с помощью стандартного синтаксиса Python, выполнять операции над всеми данными или над их частью и строить на их основе графики с помощью библиотеки matplotlib. Если вам необходимо выполнять какие-либо действия с данными, то pandas наверняка поможет вам сделать это быстрее и эффективнее. Заключение Linux несомненно является отличной платформой для любых научных вычислений. Linux широко поддерживается научной общественностью и стремительно набирает популярность у новых пользователей, желающих снизить затраты на программное обеспечение. Инструменты Linux вполне позволяют заменить коммерческие продукты, при этом являясь абсолютно бесплатными.

Алгебры

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

Система компьютерной алгебры GAP Система компьютерной алгебры GAP ( ), название которой расшифровывается как 'Groups, Algorithms and Programming', была задумана около 15 лет назад как инструмент комбинаторной теории групп - раздела алгебры, изучающего группы, заданные порождающими элементами и определяющими соотношениями. Однако с выходом каждой новой версии программы сфера ее применения охватывала все новые и новые разделы алгебры, и сейчас это довольно масштабная по своему охвату система. Каждая из систем такого рода, будь то MathCAD, Maple, Mathematica или Statistica, имеет свои преимущества для представителей той или иной области математики, и GAP наиболее привлекателен для исследований в области абстрактной алгебры.

Разработка системы была начата в 1986 г. В г.Аахен, Германия ( ). Центр, который осуществляет координацию разработки и техническую поддержку пользователей, переместился в Университет г.Сент-Эндрюс (Шотландия). Текущая версия системы - GAP 4.2 - вышла в свет в феврале 2000 г. Изначально система GAP разрабатывалась под Unix, а затем была портирована для работы в других операционных системах. В настоящее время она работает под разнообразными версиями Unix/Linux, а также под Windows 9x, Windows NT, MacOS.

Заметим, что производительность системы под Unix/Linux возрастает на 20-40% по сравнению с Windows. GAP является свободно распространяемой, открытой и расширяемой системой. Она распространяется бесплатно (исключение могут составлять только накладные расходы), и пользователи могут свободно передавать ее другим пользователям (с некоторыми ограничениями, касающимися модификации системы или ее частей).

Далее, система поставляется вместе с исходными текстами, которые написаны на двух языках: ядро системы написано на Си, а библиотека функций - на специальном языке, также называемом GAP, который напоминает Pascal. Пользователи могут создавать свои собственные программы на этом языке, и здесь исходные тексты являются незаменимым наглядным пособием. Наконец, разработчики программ для GAP могут оформить свои разработки в стандарте share package и представить их на рассмотрение в совет GAP. После прохождения процедуры рецензирования и одобрения советом GAP эта разработка включается в приложение к дистрибутиву GAP для распространения вместе с ним, и приравнивается к научной публикации.