SymPy

SymPy
Sympy logo.
Тип Система компьютерной алгебры
Разработчик SymPy Development Team
Написана на Python
Операционная система Cross-platform
Первый выпуск 2007; 17 лет назад (2007)
Последняя версия 1.10.1[1] (20 марта 2022; 2 года назад (2022-03-20))
Репозиторий github.com/sympy/sympy
Лицензия BSD License
Сайт sympy.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе

SymPy — это библиотека Python с открытым исходным кодом, используемая для символьных вычислений. Она предоставляет возможности компьютерной алгебры в виде отдельного приложения, как библиотека для других приложений или в Интернете как SymPy Live или SymPy Gamma. SymPy, аналогично другим библиотекам имеет стандартную установку и проверку, поскольку он полностью написан на Python с небольшими подпрограммами на других языках[2][3][4]. Такая унификация доступа в сочетании с простой и расширяемой кодовой базой на широко распространённом языке делает SymPy системой компьютерной алгебры с относительно низким барьером для входа.

SymPy включает в себя функции базовой символьной арифметики, математический анализ, алгебру и дискретную математику, элементы квантовой физики. Она может форматировать результат вычислений в виде кода LaTeX[2][3].

SymPy — это бесплатное программное обеспечение, работающее под новой лицензией BSD. Ведущие разработчики — Ондржей Чертик и Аарон Мерер. Её код начал писать в 2005 году Ондржей Чертик[5].

Библиотека SymPy разделена на ядро с множеством дополнительных модулей.

В настоящее время ядро SymPy содержит около 260 000 строк кода[6] (также включает исчерпывающий набор самотестирования: более 100 000 строк в 350 файлах с версии 0.7.5), а его возможности включают[2][3][7][8][9]:

Основные возможности

[править | править код]

Исчисление

[править | править код]

Решение уравнений

[править | править код]

Дискретная математика

[править | править код]

Обратите внимание: для построения графика требуется внешний модуль matplotlib или Pyglet.

  • Координатные модели
  • Построение геометрических объектов
  • 2D и 3D
  • Интерактивный интерфейс
  • Цвета
  • Анимации

Статистика

[править | править код]

Комбинаторика

[править | править код]
  • Структурная распечатка: красивая печать в ASCII / Unicode, LaTeX
  • Генерация кода: C, Fortran, Python

Зависимости

[править | править код]

Начиная с версии 1.0, SymPy имеет пакет mpmath в качестве необходимого.

Есть несколько дополнительных зависимостей, которые могут расширить его возможности:

  • gmpy: Если установлен gmpy, полиномиальный модуль SymPy будет автоматически использовать его для более быстрых вычислений. Это может повысить производительность некоторых операций в несколько раз.
  • matplotlib: если установлен matplotlib, SymPy может использовать его для построения графиков.
  • Pyglet: альтернативный пакет для построения графиков.

Примечания

[править | править код]
  1. SymPy 1.10.1. Дата обращения: 24 июня 2022. Архивировано 24 июня 2022 года.
  2. 1 2 3 SymPy homepage. Дата обращения: 13 октября 2014. Архивировано 20 ноября 2019 года.
  3. 1 2 3 Joyner, David (2012). "Open source computer algebra systems: SymPy". ACM Communications in Computer Algebra. 45 (3/4): 225—234. doi:10.1145/2110170.2110185.
  4. Meurer, Aaron (2017-01-02). "SymPy: symbolic computing in Python" (PDF). PeerJ Computer Science (англ.). 3: e103. doi:10.7717/peerj-cs.103. ISSN 2376-5992. Архивировано (PDF) 30 апреля 2019. Дата обращения: 3 июля 2021.{{cite journal}}: Википедия:Обслуживание CS1 (не помеченный открытым DOI) (ссылка)
  5. https://github.com/sympy/sympy/wiki/SymPy-vs. Дата обращения: 3 июля 2021. Архивировано 17 сентября 2021 года.
  6. Sympy project statistics on Open HUB. Дата обращения: 13 октября 2014. Архивировано 17 октября 2014 года.
  7. Constrained multibody dynamics with Python: From symbolic equation generation to publication. Архивировано 3 июня 2018. Дата обращения: 3 июля 2021. Источник. Дата обращения: 3 июля 2021. Архивировано 3 июня 2018 года.
  8. Rocklin, Matthew (2012). "Symbolic Statistics with SymPy". Computing in Science & Engineering. 14 (3): 88—93. doi:10.1109/MCSE.2012.56.
  9. Asif, Mushtaq (2014). "Automatic code generator for higher order integrators". Computer Physics Communications. 185 (5): 1461—1472. arXiv:1310.2111. Bibcode:2014CoPhC.185.1461M. doi:10.1016/j.cpc.2014.01.012.
  10. Assumptions Module — SymPy 1.4 documentation. docs.sympy.org. Дата обращения: 5 июля 2019. Архивировано 5 июля 2019 года.
  11. Continuum Mechanics — SymPy 1.4 documentation. docs.sympy.org. Дата обращения: 5 июля 2019. Архивировано 5 июля 2019 года.