SymPy
| SymPy | |
|---|---|
| | |
| Тип | Система компьютерной алгебры |
| Разработчики | Aaron Meurer[вд], Ondřej Čertík[вд] и Christopher P. Smith[вд] |
| Написана на | Python[2] |
| Операционная система | Unix-подобная операционная система |
| Дата выпуска | 2007 |
| Последняя версия | |
| Репозиторий | github.com/sympy/sympy |
| Лицензия | модифицированная лицензия BSD |
| Сайт | sympy.org (англ.) |
SymPy — это библиотека Python с открытым исходным кодом, используемая для символьных вычислений. Она предоставляет возможности компьютерной алгебры в виде отдельного приложения, как библиотека для других приложений или в Интернете как SymPy Live или SymPy Gamma. SymPy, аналогично другим библиотекам имеет стандартную установку и проверку, поскольку он полностью написан на Python с небольшими подпрограммами на других языках[3][4][5]. Такая унификация доступа в сочетании с простой и расширяемой кодовой базой на широко распространённом языке делает SymPy системой компьютерной алгебры с относительно низким барьером для входа.
SymPy включает в себя функции базовой символьной арифметики, математический анализ, алгебру и дискретную математику, элементы квантовой физики. Она может форматировать результат вычислений в виде кода LaTeX[3][4].
SymPy — это бесплатное программное обеспечение, работающее под новой лицензией BSD. Ведущие разработчики — Ондржей Чертик и Аарон Мерер. Её код начал писать в 2005 году Ондржей Чертик[6].
Функции
Библиотека SymPy разделена на ядро с множеством дополнительных модулей.
В настоящее время ядро SymPy содержит около 260 000 строк кода[7] (также включает исчерпывающий набор самотестирования: более 100 000 строк в 350 файлах с версии 0.7.5), а его возможности включают[3][4][8][9][10]:
Основные возможности
- Базовая арифметика: *, /, +, -, **
- Упрощение
- Расширение
- Функции: тригонометрические, гиперболические, экспоненциальные, корни, логарифмы, модуль, сферические гармоники, факториалы и гамма-функции, дзета-функции, многочлены, гипергеометрические, специальные функции,. . .
- Замена
- Целые числа произвольной точности, рациональные числа и числа с плавающей запятой
- Некоммутативные символы
- Сопоставление с образцом
Полиномы
- Основы арифметики: деление, НОД,. . .
- Факторизация
- Факторизация без квадратов
- Базы Грёбнера
- Разложение на частичную дробь
- Результант
Исчисление
- Пределы
- Дифференциация
- Интегрирование: реализована эвристика Риша — Нормана.
- Ряды Тейлора (ряды Лорана)
Решение уравнений
- Системы линейных уравнений
- Системы алгебраических уравнений, разрешимые в радикалах
- Дифференциальные уравнения
- Разностные уравнения
Дискретная математика
- Биномиальные коэффициенты
- Итоги
- Произведения
- Теория чисел: генерация простых чисел, проверка простоты, целочисленная факторизация,. . .
- Логические выражения[11]
Матрицы
- Основы арифметики
- Собственные значения и их собственные векторы, когда характеристический многочлен разрешим в радикалах
- Детерминанты
- Инверсия
- Решение
Геометрия
- Точки, линии, лучи, отрезки, эллипсы, круги, многоугольники,. . .
- Пересечения
- Касательные прямые
- подобие
Графика
Обратите внимание: для построения графика требуется внешний модуль matplotlib или Pyglet.
- Координатные модели
- Построение геометрических объектов
- 2D и 3D
- Интерактивный интерфейс
- Цвета
- Анимации
Физика
- Единицы измерения
- Классическая механика
- Механика сплошной среды[12]
- Квантовая механика
- Гауссова оптика
- Алгебра Паули
Статистика
Комбинаторика
- Перестановки
- Комбинации
- Перегородки
- Подмножества
- Группа перестановок: Полиэдральная, Рубиковая, Симметричная,. . .
- Последовательность Прюфера и коды Грея
Печать
- Структурная распечатка: красивая печать в ASCII / Unicode, LaTeX
- Генерация кода: C, Fortran, Python
Зависимости
Начиная с версии 1.0, SymPy имеет пакет mpmath в качестве необходимого.
Есть несколько дополнительных зависимостей, которые могут расширить его возможности:
- gmpy: Если установлен gmpy, полиномиальный модуль SymPy будет автоматически использовать его для более быстрых вычислений. Это может повысить производительность некоторых операций в несколько раз.
- matplotlib: если установлен matplotlib, SymPy может использовать его для построения графиков.
- Pyglet: альтернативный пакет для построения графиков.
Примечания
- ↑ Release 1.14.0 — 2025.
- ↑ The sympy Open Source Project on Open Hub: Languages Page — 2006.
- ↑ 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 (2 января 2017). 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 года.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.