SymPy (SymPy)
SymPy | |
---|---|
Тип | Система компьютерной алгебры |
Разработчик | SymPy Development Team |
Написана на | Python |
Операционная система | Cross-platform |
Первый выпуск | 2007 |
Последняя версия | 1.10.1[1] (20 марта 2022 ) |
Репозиторий | 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]:
Основные возможности
[править | править код]- Базовая арифметика: *, /, +, -, **
- Упрощение
- Расширение
- Функции: тригонометрические, гиперболические, экспоненциальные, корни, логарифмы, модуль, сферические гармоники, факториалы и гамма-функции, дзета-функции, многочлены, гипергеометрические, специальные функции,. . .
- Замена
- Целые числа произвольной точности, рациональные числа и числа с плавающей запятой
- Некоммутативные символы
- Сопоставление с образцом
Полиномы
[править | править код]- Основы арифметики: деление, НОД,. . .
- Факторизация
- Факторизация без квадратов
- Базы Грёбнера
- Разложение на частичную дробь
- Результант
Исчисление
[править | править код]- Пределы
- Дифференциация
- Интегрирование: реализована эвристика Риша — Нормана.
- Ряды Тейлора (ряды Лорана)
Решение уравнений
[править | править код]- Системы линейных уравнений
- Системы алгебраических уравнений, разрешимые в радикалах
- Дифференциальные уравнения
- Разностные уравнения
Дискретная математика
[править | править код]- Биномиальные коэффициенты
- Итоги
- Произведения
- Теория чисел: генерация простых чисел, проверка простоты, целочисленная факторизация,. . .
- Логические выражения[10]
Матрицы
[править | править код]- Основы арифметики
- Собственные значения и их собственные векторы, когда характеристический многочлен разрешим в радикалах
- Детерминанты
- Инверсия
- Решение
Геометрия
[править | править код]- Точки, линии, лучи, отрезки, эллипсы, круги, многоугольники,. . .
- Пересечения
- Касательные прямые
- подобие
Графика
[править | править код]Обратите внимание: для построения графика требуется внешний модуль matplotlib или Pyglet.
- Координатные модели
- Построение геометрических объектов
- 2D и 3D
- Интерактивный интерфейс
- Цвета
- Анимации
Физика
[править | править код]- Единицы измерения
- Классическая механика
- Механика сплошной среды[11]
- Квантовая механика
- Гауссова оптика
- Алгебра Паули
Статистика
[править | править код]Комбинаторика
[править | править код]- Перестановки
- Комбинации
- Перегородки
- Подмножества
- Группа перестановок: Полиэдральная, Рубиковая, Симметричная,. . .
- Последовательность Прюфера и коды Грея
Печать
[править | править код]- Структурная распечатка: красивая печать в ASCII / Unicode, LaTeX
- Генерация кода: C, Fortran, Python
Зависимости
[править | править код]Начиная с версии 1.0, SymPy имеет пакет mpmath в качестве необходимого.
Есть несколько дополнительных зависимостей, которые могут расширить его возможности:
- gmpy: Если установлен gmpy, полиномиальный модуль SymPy будет автоматически использовать его для более быстрых вычислений. Это может повысить производительность некоторых операций в несколько раз.
- matplotlib: если установлен matplotlib, SymPy может использовать его для построения графиков.
- Pyglet: альтернативный пакет для построения графиков.
Примечания
[править | править код]- ↑ SymPy 1.10.1 . Дата обращения: 24 июня 2022. Архивировано 24 июня 2022 года.
- ↑ 1 2 3 SymPy homepage . Дата обращения: 13 октября 2014. Архивировано 20 ноября 2019 года.
- ↑ 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.
- ↑ 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) (ссылка) - ↑ https://github.com/sympy/sympy/wiki/SymPy-vs. Дата обращения: 3 июля 2021. Архивировано 17 сентября 2021 года.
- ↑ Sympy project statistics on Open HUB . Дата обращения: 13 октября 2014. Архивировано 17 октября 2014 года.
- ↑ Constrained multibody dynamics with Python: From symbolic equation generation to publication. Архивировано 3 июня 2018. Дата обращения: 3 июля 2021. Источник . Дата обращения: 3 июля 2021. Архивировано 3 июня 2018 года.
- ↑ 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. Архивировано 5 июля 2019 года.
- ↑ Continuum Mechanics — SymPy 1.4 documentation . docs.sympy.org. Дата обращения: 5 июля 2019. Архивировано 5 июля 2019 года.