SymPy

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
SymPy
Sympy logo.
Тип Система компьютерной алгебры
Разработчик SymPy Development Team
Написана на Python
Операционная система Cross-platform
Первый выпуск 2007; 15 лет назад (2007)
Последняя версия 1.10.1[1] (20 марта 2022; 3 месяца назад (2022-03-20))
Лицензия 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.
  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) из оригинала 2019-04-30. Дата обращения 2021-07-03. Используется устаревший параметр |deadlink= (справка)
  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 на Wayback Machine
  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 года.