Одним из курсов в последнем семестре у меня был Mathematical Software, где мы изучали фундаментальные алгоритмы, лежащие в основе почти всех математических операций, проводимых в компьютере (удобные для вычислений виды представления данных, быстрое умножение, трансформации Фурье, алгоритм Карацубы и т.д.). Курс не был похож на другие: к концу семестра в классе осталось только трое человек; не было никаких тестов или экзаменов, финальная оценка состояла из двух домашних заданий и одного проекта; и, наконец, я давно не исписывал сотню с лишним страниц тетради в течение одного курса. Практическая часть — работа с системой Sage.
Sage (анг. ‘Мудрец’) — система компьютерной алгебры покрывающая много областей математики, включая алгебру, комбинаторику, вычислительную математику и матанализ. Первая версия Sage была выпущена 24 февраля 2005 года в виде свободного программного обеспечения с лицензией GNU GPL. Первоначальной целью проекта было «создание открытого программного обеспечения альтернативного системам Magma, Maple, Mathematica, и MATLAB». Разработчиком Sage является Уильям Стейн — математик Университета Вашингтона.
Эти нейросети (РЕАЛЬНО) лучше ChatGPT
Для финального проекта нужно было сделать что-нибудь полезное для сообщества Sage. Учитывая приличную нагрузку из-за других курсов, мы (я и мой друг Темирлан) решили пойти путем наименьшего сопротивления и сделать русскоязычную документацию для Sage. Мы перевели официальный туториал, а я записал четыре скринкаста.
Sage имеет удобный веб-интерфейс, который полностью повторяет функциональность основной программы. Доступ к нему осуществляется посредством сервера, так что если вашей школе/организации/университету нужно математическое программное обеспечение, Sage имеет неоспоримый плюс: его можно поставить на одной машине, запустить веб-сервер Sage Notebook и пользоваться программой смогут все, у кого есть браузер с поддержкой javascript. Туториал описывает работу Sage Notebook и покрывает такие темы, как простые арифметические операции, работа с полиномами, кольцами, интерактивной консолью, с различными интерфейсами (Sage включает в себя некоторые другие мат. пакеты: (GP/PARI, GAP, Singular, Maxima), программирование (Sage использует Python).
Скринкасты
Вводный скринкаст о командной строке, справочной системе, Python’е и графиках.
Второй скринкаст: подробнее о двумерных графиках.
Третий скринкаст: работа с трехмерными графиками.
Четвертый скринкаст: interact.
- sage
- математика
- computer science student
Источник: habr.com
Sage
Sage — очень мощное бесплатное математическое программное обеспечение. Sage затрагивает множество областей математики, включая алгебру, линейную алгебру, матанализ, вычислительную математику, комбинаторику, теорию графов и другие.
Как это ни странно звучит, но Sage работает через web-интерфейс. Данный интерфейс называется notebook. Sage может работать как локально, так и удаленно. В простейшем случае работа с программой происходит следующим образом. Вы вводите последовательно команды (выражения, инструкции), затем нажимаете кнопку Evaluate (Запустить) и получаете результат.
Архитектурно Sage включает в себя множество (около 100) open-source математических пакетов (подпрограмм, библиотек). Полный список можно посмотреть на официальном сайте программы.
Sage вполне может стать бесплатной альтернативой таким математическим программам, как Matlab, Maple, Mathematica и т.д.
Существует специальная онлайн версия Sage — https://sagecell.sagemath.org/, позволяющая использовать Sage через интернет.
Установка
Установка Sage в Ubuntu Linux
Для Ubuntu существует PPA репозиторий, из которого можно легко установить Sage. Обратите внимание, что во время установки будет загружено порядка 700Мб. Итак, для установки Sage в Ubuntu Linux выполните в терминале последовательно следующие команды:
sudo apt-add-repository -y ppa:aims/sagemath sudo apt-get update sudo apt-get install sagemath-upstream-binary
После установки вам нужно будет задать пароль администратора для доступа к Sage. Затем вы можете запустить Sage из меню запуска программ или из командной строки, выполнив:
sage
Sage автоматически откроет браузер и перейдет на страницу http://localhost:8080/ — откроется web-интерфейс.
Установка в Fedora
sudo dnf install sage
Разработка
Open Source (открыт)
Источник: pingvinus.ru
Русские Блоги
Начало работы с SAGE: мастер математических систем с открытым исходным кодом
Недавно изучая Sage, систему математического программного обеспечения с открытым исходным кодом, Baidu обнаружил, что домашнее внимание все еще относительно мало, поэтому напишите введение в Sage.
Sage(http://www.sagemath.org) Является ли математическое программное обеспечение аналогичным Maple, Matlab, Mathematica и т. Д., Согласно лицензии GPL, целями проекта являются:
Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab.
Что может сделать Sage? Во введении есть такое предложение: «Сторонники этого программного обеспечения с открытым исходным кодом утверждают, что Sage может делать что угодно от 12-мерных объектов до расчета осадков в математической модели эффектов глобального потепления». Sage включает в себя все, от линейной алгебры до исчисления Криптография, численный расчет, комбинаторная математика, теория групп, теория графов, теория чисел и другие вычислительные функции элементарной и углубленной математики.
Важной особенностью Sage является интеграция многих превосходных математических программ с открытым исходным кодом, так что пользователи могут легко использовать соответствующие функции в этих библиотеках в Sage. В настоящее время Sage объединяет около ста математических библиотек с открытым исходным кодом, в том числе знаменитые ATLAS, BLAS, LAPACK, Boost, GSL, SciPy и т. Д. Полный список можно просмотретьВот。
Sage основан на Python и использует его. Программы на Python можно запускать непосредственно в Sage или в Sage можно использовать различные библиотеки Python. Похоже на предоставление среды Python, содержащей различные математические функции.
С Sage вы можете:
- Скачайте и установите Sage на локальный (Ссылка на скачивание)
- Используйте онлайн-версию. В настоящее время Sage предоставляет две онлайн-платформы, которые являются раннимиThe Sage NotebookИ недавно запущенSageMathCloud
Вот некоторые особенности Sage.
Sage Notebook
Его также можно открыть в локальной командной строке Sage с помощью notebook (), что эквивалентно рабочему листу Maple. Хотя он выглядит немного грубым, он все же очень мощный. Вы можете вводить команды Sage, отображать формулы, отображать графику и т. Д.
SageMathCloud
SageMathCloud похожа на онлайн-платформу для написания и программирования: после регистрации вы можете создавать проекты и редактировать различные исходные файлы. Здесь создается тестовый проект и создается новый файл рабочей книги .sagews (Sage Worksheet). Интерфейс аналогичен рабочему листу Maple. Вы можете ввести в него код и нажать кнопку запуска, чтобы отобразить результаты.
Хотя он все еще находится в бета-версии, он все еще чувствует себя очень полезным. В дополнение к Worksheet, вы также можете создать новый терминал. Эффект такой же, как у локального терминала Linux. Ввод Sage может вводить командную строку Sage. Использование очень похоже на командную строку Python.
Вы можете использовать help () и tutorial () для просмотра справки и учебных пособий.
Sage Could Terminal
Основной расчет
Как и большинство математических программных систем, он очень прост и удобен в использовании. Например, чтобы найти главный фактор 2013 года:
sage : f = factor ( x )
Или инверсия матрицы
sage : matrix ( [ [ 1 , 2 ] , [ 3 , 4 ] ] ) ^ ( — 1 )
Символьный расчет
Символьные вычисления Sage очень просты в использовании, вы можете использовать x == var (‘var_name’) для объявления символьных переменных. Например, найти интеграл функции
sage : a = var ( ‘a’ )
sage : x = var ( ‘x’ )
sage : f = a * sin ( x ) + 1 / x
sage : f . integrate ( x )
— a* cos ( x ) + log ( x )
Или решить уравнение
sage : solve ( x ^ 2 + a , x )
[ x == — sqrt ( — a ) , x == sqrt ( — a ) ]
Функция рисования
Например, нарисуйте изображение выше, где f == a * sin (x) + x1 + x1, когда a = 1 и x = 1 ~ 10. Размер изображения — это размер изображения
sage : f = f . substitute ( a == 1 )
sage : plot ( f , ( x , 1 , 10 ) , figsize = 2 )
В дополнение к 2D, Sage также поддерживает 3D-рисование, вы можете специально просматривать документ.
Основные числовые поля и кольца
Sage поддерживает вычисления на множествах целочисленных колец (ZZ), полей рациональных чисел (QQ), полей действительных чисел (RR), полей комплексных чисел (CC) и более сложных полиномиальных колец и конечных полей (Finite Field). Здесь мы должны рассмотреть абстрактную алгебру, такую как некоторые простые понятия:
sage: QQ. gens () # Элемент единицы и нулевой элемент поля рациональных чисел
sage: CC. gens () # элементарная ячейка и нулевой элемент в сложном поле
Диапазон расчета отличается, а результаты разные. Например:
sage: ratpoly. = PolynomialRing (QQ) # Определить ratpoly как кольцо полиномов на основе t в поле рациональных чисел
sage: realpoly. = PolynomialRing (RR) # Определить realpoly как кольцо полиномов на основе z в области реализации
sage : factor ( t ^ 2 — 2 )
sage : factor ( z ^ 2 — 2 )
( z — 1.41421356237310 ) * ( z + 1.41421356237310 )
Внешний программный / библиотечный интерфейс
Для встроенной внешней математической библиотеки программного обеспечения с открытым исходным кодом Sage предоставляет удобный интерфейс для вызова. Использование этих интерфейсов в Sage позволяет легко интегрировать библиотеки математических программ разных языков и различных функций в одну и ту же программу, что также позволяет Sage интегрировать сильные стороны многих математических программ с открытым исходным кодом. Конечно, многие из этих внешних математических библиотек являются очень профессиональными, и только практическая их часть должна использоваться только в ограниченном количестве. Вот два официальных сайтаSage TutorialПример.
Используйте GP / PARI, чтобы найти (этот) первообразный корень
GP / PARI — пакет для теории чисел (wiki). Каков первоначальный рут? Если вы были в теории чисел, но забыли, пожалуйста, посмотрите в лицо 🙁
в
Время, определение
Умереть
Индекс
Делать
Наименьшее положительное целое число
, Известный из ранее
Должно быть меньше или равно
Если
, Сказал
Да умереть
Оригинальный корень。
Положительное число
Если a является исходным корнем модуля m, то a являетсяЦелочисленная модульная n мультипликативная группа(То есть дополнение группыZ/mZОбратимый элемент, который все связано с мВзаимный премьерИз целых положительных чиселэквивалентСоставляют мультипликативную группу)Zп × одинГенератор。
Генератор является очень важным понятием в теории чисел: в целой группе умножения по модулю n генератор может умножиться сам (а затем и по модулю n), чтобы сгенерировать все элементы в группе. Мета-корень можно получить с помощью функции znprimroot (n) в PARI.
sage : gp ( ‘znprimroot(7)’ )
sage : pari ( ‘znprimroot(7)’ )
3 является мета-корнем группы умножения по модулю 7.
Использование максимумов для поиска собственного вектора матрицы в рациональной области
Система компьютерной алгебры Maxima, написанная на LISP, ранее известная как Macsyma, на появление таких программ, как Matlab и Mathematica, зависит от Macsyma. Систему алгебры Максима легко назвать в Sage. Например, ниже приведен пример поиска вектора признаков и преобразования его в векторное пространство рационального домена .Код также взят с официального веб-сайта.Sage Tutorial, С некоторыми примечаниями:
мудрец: A = максимумы («матрица ([1, 0, 0], [1, -1, 0], [1, 3, -2])») # матрица генератора
sage: eigA = A. eigenvectors () # вычислительные характеристики громкие
sage: V = VectorSpace (QQ, 3) # V — трехмерное векторное пространство в поле рациональных чисел,
sage: eigA # Выходной формат: [[[eigenvalue], [eigenvalueultiple]], [[eigenvector 0], [eigenvector 1], [eigenvector 2]]]
[ [ [ — 2 , — 1 , 1 ] , [ 1 , 1 , 1 ] ] , [ [ [ 0 , 0 , 1 ] ] , [ [ 0 , 1 , 3 ] ] , [ [ 1 , 1 / 2 , 5 / 6 ] ] ] ]
sage : v1 = V ( sage_eval ( repr ( eigA [ 1 ] [ 0 ] [ 0 ] ) ) ) ; lambda1 = eigA [ 0 ] [ 0 ] [ 0 ]
sage : v2 = V ( sage_eval ( repr ( eigA [ 1 ] [ 1 ] [ 0 ] ) ) ) ; lambda2 = eigA [ 0 ] [ 0 ] [ 1 ]
sage : v3 = V ( sage_eval ( repr ( eigA [ 1 ] [ 2 ] [ 0 ] ) ) ) ; lambda3 = eigA [ 0 ] [ 0 ] [ 2 ]
sage: M = MatrixSpace (QQ, 3, 3) # M — это размерное матричное пространство 3 × 3 в области подходящих чисел
sage : AA = M ( [ [ 1 , 0 , 0 ] , [ 1 , — 1 , 0 ] , [ 1 , 3 , — 2 ] ] )
sage: b1 = v1. base_ring () # b1 == QQ — рациональное поле
sage: AA * v1 == b1 (lambda1) * v1 # Проверьте определение значения признака A * v = lambda1 * v
sage : b2 = v2 . base_ring ( )
sage : AA* v2 == b2 ( lambda2 ) * v2
sage : b3 = v3 . base_ring ( )
sage : AA* v3 == b3 ( lambda3 ) * v3
Обратите внимание, что M (), V (), b1 (), b2 () и b3 () эквивалентны преобразованию типов, и ограниченные операции выполняются в поле рациональных чисел. Кроме того, векторы признаков здесь не объединены, поскольку они находятся в поле рациональных чисел.
Сотрудничать с латексом
Sage может сотрудничать с Latex внутри страны. Для любого объекта Sage foo вы можете получить вывод Latex, вызвав latex (foo). Например:
sage : latex ( z ^ 12 )
sage : latex ( integrate ( z ^ 4 , z ) )
sage : latex ( ‘a string’ )
verb | a | phantom < verb ! x ! > verb | string |
sage : latex ( QQ )
sage : latex ( matrix ( QQ , 2 , 3 , [ [ 2 , 4 , 6 ] , [ — 1 , — 1 , — 1 ] ] ) )
Точно так же использование view (foo) в локальной командной строке Sage
Используя SageTex Package в tex-файле через usepackage , вы можете напрямую вставить команду Sage в tex-файл и вывести результат в pdf с помощью Latex. Для получения подробной информации, пожалуйста, обратитесь к официальномуSage Tutorial。
резюме
Когда я впервые обнаружил Sage, я нашел его очень хорошим и мощным, он основан на Python и может использовать библиотеки Python. В то же время он предоставляет более удобный интерфейс для вызова различных внешних математических систем, что делает функцию очень мощной. Кроме того, благодаря функциям Latex для совместной работы и встраивания такие инструменты, как Sage Notebook и SageMathCloud, также работают достаточно хорошо.
Я сам не профессионал в математике, но я чувствую, что если я хочу создать программное обеспечение уровня Matlab, Mathematica или Maple в проекте с открытым исходным кодом, я должен положиться на него. Sage родился в 2005 году, и до сих пор не уделялось особого внимания, с одной стороны, это объясняется тем, что дао-версия Matlab и другого программного обеспечения слишком удобна, с другой стороны, потому что сама математическая система включает в себя множество очень профессиональных математических знаний, общих программистов Очень мало контактов, профессионалы редко обращают внимание на open source. Я чувствую, что если его можно будет использовать в университетских курсах (таких как абстрактная алгебра, теория чисел и т. Д.), Он будет лучше популяризировать.
Источник: russianblogs.com