SageMath: Занимаемся математикой на Python

Вы, наверное, слышали о Wolfram Mathematica, GNU Octave и Mathworks Matlab. Эти три — помимо R Programming и Maple — представляют собой триаду математических инструментов для ученых и инженеров из разных областей. Но держу пари, вы еще не слышали о SageMath.
Что такое SageMath?
SageMath — это бесплатная математическая библиотека с открытым исходным кодом для Python. Она базируется на других уже известных вам пакетах Python, таких как NumPy, SciPy, Matplotlib, Maxima и многих других.
Доступна для Windows, macOS и Linux. Скачать её можно здесь, с официальной страницы.
Как её запускать?
Как в Windows, так и в macOS вы можете просто нажать кнопку прямого доступа к блокноту (который будет работать на Jupyter). Вы также можете использовать командную строку, но я не рекомендую это делать. Из Linux вы можете использовать как терминал, так и прямой доступ для запуска SageMath.
Это откроет в вашем браузере локальный блокнот на основе Python, который будет выглядеть следующим образом:

Затем мы можем либо создать новый файл, либо открыть уже существующий. Обратите внимание, что файлы Jupyter Notebook имеют расширение «.ipynb». Как только мы это сделаем, откроется классический интерфейс Jupyter.

Начало работы с SageMath
Вы должны думать о SageMath, как о Python с дополнительными функциями. Так что не бойтесь пробовать то, что, по вашему мнению, может сработать. Вот краткий пример того, как создать матрицу:
l=[[1,2,3],[4,5,6],[7,8,9]] #declaring a 2D array
M = matrix(l) #converting that array to a matrix
M #printing M, equivalent to print(M)
#output:
[1 2 3]
[4 5 6]
[7 8 9]
Более элегантным способом графического представления M будет show(M), в котором используется текст markdown, подобный LaTeX.
Как вы можете видеть, функция matrix(), относящаяся к библиотеке SageMath, принимает обычные массивы Python в качестве аргументов. Другим примером может быть следующее:
v1=vector([1,-2,4])
v2=vector([-1,0,1])
v3=v2.cross_product(v1)
v3
#output:
(2, 5, 2)
Опять же, для более «красивого» вывода мы можем использовать функцию show() .
Что вы можете сделать с Sage?
SageMath отлично работает при решении задач по алгебре, например, при поиске ядер или собственных пространств матриц. Однако это также очень хороший инструмент для анализа данных, построения 2D- и 3D-графиков и обработки символьных выражений.
Не стесняйтесь просматривать документацию, где вы найдете практически всё, что вам нужно.
Одна единственная проблема с SageMath
SageMath не так популярен, как другие приложения, как я уже говорил в начале статьи. Проблема в том, что не так много видеоуроков или обсуждений на форумах, связанных с этой библиотекой, что может замедлить процесс обучения. Но для опытного программиста или инженера это не должно быть проблемой.
Но это еще не всё
В SageMath есть гораздо больше функций, чем я могу охватить в одной статье. Не стесняйтесь комментировать ниже, что вы думаете об этой библиотеке Python!