SymPy
SymPy — это библиотека Python с открытым исходным кодом, используемая для символьных вычислений. Она предоставляет возможности компьютерной алгебры в виде отдельного приложения, как библиотека для других приложений или в Интернете как SymPy Live или SymPy Gamma. SymPy, аналогично другим библиотекам имеет стандартную установку и проверку, поскольку он полностью написан на Python с небольшими подпрограммами на других языках[2][3][4]. Такая унификация доступа в сочетании с простой и расширяемой кодовой базой на широко распространённом языке делает SymPy системой компьютерной алгебры с относительно низким барьером для входа.
SymPy | |
---|---|
Тип | Система компьютерной алгебры |
Разработчик | SymPy Development Team |
Написана на | Python |
Операционная система | Cross-platform |
Первый выпуск | 2007 |
Последняя версия | 1.6.2[1] (9 августа 2020 ) |
Лицензия | BSD License |
Сайт | sympy.org (англ.) |
SymPy включает в себя функции базовой символьной арифметики, математический анализ, алгебру и дискретную математику, элементы квантовой физики. Она может форматировать результат вычислений в виде кода LaTeX[2][3].
SymPy — это бесплатное программное обеспечение, работающее под новой лицензией BSD. Ведущие разработчики — Ондржей Чертик и Аарон Мерер. Её код начал писать в 2005 году Ондржей Чертик[5].
Функции
Библиотека SymPy разделена на ядро с множеством дополнительных модулей.
В настоящее время ядро SymPy содержит около 260 000 строк кода[6] (также включает исчерпывающий набор самотестирования: более 100 000 строк в 350 файлах с версии 0.7.5), а его возможности включают[2][3][7][8][9]:
Основные возможности
- Базовая арифметика: *, /, +, -, **
- Упрощение
- Расширение
- Функции: тригонометрические, гиперболические, экспоненциальные, корни, логарифмы, модуль, сферические гармоники, факториалы и гамма-функции, дзета-функции, многочлены, гипергеометрические, специальные функции,. . .
- Замена
- Целые числа произвольной точности, рациональные числа и числа с плавающей запятой
- Некоммутативные символы
- Сопоставление с образцом
Полиномы
- Основы арифметики: деление, НОД,. . .
- Факторизация
- Факторизация без квадратов
- Базы Грёбнера
- Разложение на частичную дробь
- Результант
Исчисление
- Пределы
- Дифференциация
- Интегрирование: реализована эвристика Риша — Нормана.
- Ряды Тейлора (ряды Лорана)
Решение уравнений
Дискретная математика
- Биномиальные коэффициенты
- Итоги
- Произведения
- Теория чисел: генерация простых чисел, проверка простоты, целочисленная факторизация,. . .
- Логические выражения[10]
Матрицы
- Основы арифметики
- Собственные значения и их собственные векторы, когда характеристический многочлен разрешим в радикалах
- Детерминанты
- Инверсия
- Решение
Геометрия
- Точки, линии, лучи, отрезки, эллипсы, круги, многоугольники,. . .
- Пересечения
- Касательные прямые
- подобие
Графика
Обратите внимание: для построения графика требуется внешний модуль matplotlib или Pyglet.
- Координатные модели
- Построение геометрических объектов
- 2D и 3D
- Интерактивный интерфейс
- Цвета
- Анимации
Физика
Комбинаторика
- Перестановки
- Комбинации
- Перегородки
- Подмножества
- Группа перестановок: Полиэдральная, Рубиковая, Симметричная,. . .
- Последовательность Прюфера и коды Грея
Печать
- Структурная распечатка: красивая печать в ASCII / Unicode, LaTeX
- Генерация кода: C, Fortran, Python
Зависимости
Начиная с версии 1.0, SymPy имеет пакет mpmath в качестве необходимого.
Есть несколько дополнительных зависимостей, которые могут расширить его возможности:
- gmpy: Если установлен gmpy, полиномиальный модуль SymPy будет автоматически использовать его для более быстрых вычислений. Это может повысить производительность некоторых операций в несколько раз.
- matplotlib: если установлен matplotlib, SymPy может использовать его для построения графиков.
- Pyglet: альтернативный пакет для построения графиков.
Примечания
- Releases - sympy/sympy . Дата обращения: 10 августа 2020.
- SymPy homepage . Дата обращения: 13 октября 2014.
- Joyner, David (2012). “Open source computer algebra systems: SymPy”. ACM Communications in Computer Algebra. 45 (3/4): 225—234. DOI:10.1145/2110170.2110185.
- 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.
- https://github.com/sympy/sympy/wiki/SymPy-vs.
- Sympy project statistics on Open HUB . Дата обращения: 13 октября 2014.
- «Constrained multibody dynamics with Python: From symbolic equation generation to publication»..
- Rocklin, Matthew (2012). “Symbolic Statistics with SymPy”. Computing in Science & Engineering. 14 (3): 88—93. DOI:10.1109/MCSE.2012.56.
- 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.
- Assumptions Module — SymPy 1.4 documentation . docs.sympy.org. Дата обращения: 5 июля 2019.
- Continuum Mechanics — SymPy 1.4 documentation . docs.sympy.org. Дата обращения: 5 июля 2019.