Русская Википедия:SymPy
Шаблон:ПрограммаSymPy — это библиотека Python с открытым исходным кодом, используемая для символьных вычислений. Она предоставляет возможности компьютерной алгебры в виде отдельного приложения, как библиотека для других приложений или в Интернете как SymPy Live или SymPy Gamma. SymPy, аналогично другим библиотекам имеет стандартную установку и проверку, поскольку он полностью написан на Python с небольшими подпрограммами на других языках[1][2][3]. Такая унификация доступа в сочетании с простой и расширяемой кодовой базой на широко распространённом языке делает SymPy системой компьютерной алгебры с относительно низким барьером для входа.
SymPy включает в себя функции базовой символьной арифметики, математический анализ, алгебру и дискретную математику, элементы квантовой физики. Она может форматировать результат вычислений в виде кода LaTeX[1][2].
SymPy — это бесплатное программное обеспечение, работающее под новой лицензией BSD. Ведущие разработчики — Ондржей Чертик и Аарон Мерер. Её код начал писать в 2005 году Ондржей Чертик[4].
Функции
Библиотека SymPy разделена на ядро с множеством дополнительных модулей.
В настоящее время ядро SymPy содержит около 260 000 строк кода[5] (также включает исчерпывающий набор самотестирования: более 100 000 строк в 350 файлах с версии 0.7.5), а его возможности включают[1][2][6][7][8]:
Основные возможности
- Базовая арифметика: *, /, +, -, **
- Упрощение
- Расширение
- Функции: тригонометрические, гиперболические, экспоненциальные, корни, логарифмы, модуль, сферические гармоники, факториалы и гамма-функции, дзета-функции, многочлены, гипергеометрические, специальные функции,. . .
- Замена
- Целые числа произвольной точности, рациональные числа и числа с плавающей запятой
- Некоммутативные символы
- Сопоставление с образцом
Полиномы
- Основы арифметики: деление, НОД,. . .
- Факторизация
- Факторизация без квадратов
- Базы Грёбнера
- Разложение на частичную дробь
- Результант
Исчисление
- Пределы
- Дифференциация
- Интегрирование: реализована эвристика Риша — Нормана.
- Ряды Тейлора (ряды Лорана)
Решение уравнений
- Системы линейных уравнений
- Системы алгебраических уравнений, разрешимые в радикалах
- Дифференциальные уравнения
- Разностные уравнения
Дискретная математика
- Биномиальные коэффициенты
- Итоги
- Произведения
- Теория чисел: генерация простых чисел, проверка простоты, целочисленная факторизация,. . .
- Логические выражения[9]
Матрицы
- Основы арифметики
- Собственные значения и их собственные векторы, когда характеристический многочлен разрешим в радикалах
- Детерминанты
- Инверсия
- Решение
Геометрия
- Точки, линии, лучи, отрезки, эллипсы, круги, многоугольники,. . .
- Пересечения
- Касательные прямые
- подобие
Графика
Обратите внимание: для построения графика требуется внешний модуль matplotlib или Pyglet.
- Координатные модели
- Построение геометрических объектов
- 2D и 3D
- Интерактивный интерфейс
- Цвета
- Анимации
Физика
- Единицы измерения
- Классическая механика
- Механика сплошной среды[10]
- Квантовая механика
- Гауссова оптика
- Алгебра Паули
Статистика
Комбинаторика
- Перестановки
- Комбинации
- Перегородки
- Подмножества
- Группа перестановок: Полиэдральная, Рубиковая, Симметричная,. . .
- Последовательность Прюфера и коды Грея
Печать
- Структурная распечатка: красивая печать в ASCII / Unicode, LaTeX
- Генерация кода: C, Fortran, Python
Зависимости
Начиная с версии 1.0, SymPy имеет пакет mpmath в качестве необходимого.
Есть несколько дополнительных зависимостей, которые могут расширить его возможности:
- gmpy: Если установлен gmpy, полиномиальный модуль SymPy будет автоматически использовать его для более быстрых вычислений. Это может повысить производительность некоторых операций в несколько раз.
- matplotlib: если установлен matplotlib, SymPy может использовать его для построения графиков.
- Pyglet: альтернативный пакет для построения графиков.
Примечания