SymPy — это свободная библиотека на языке Python для символьных вычислений, реализующая возможности компьютерной алгебры. Проект развивался как модульный набор инструментов для представления и преобразования математических выражений в символьной форме, включающий арифметику с общими выражениями, упрощение, подстановку, дифференцирование и интегрирование. SymPy ориентирован на читаемую реализацию и взаимодействие с интерактивными средами, предоставляя интерфейсы для работы с объектами, такими как символы, выражения, матрицы и уравнения.
Библиотека активно применяется в научных и образовательных задачах, где требуется аналитическая обработка выражений, алгебраическая манипуляция и анализ. Архитектура SymPy позволяет расширять систему за счёт модулей, реализующих отдельные области: алгебру, анализ, дискретную математику, комбинаторику и элементарные компоненты теоретической физики. Разработка ведётся сообществом, а исходный код доступен для чтения и модификации; использование языка Python делает библиотеку удобной для интеграции в скрипты и вычислительные пайплайны.
- Символьное представление: поддержка символов, параметров и выражений с точным хранением структуры математических формул.
 - Алгебра: упрощение выражений, факторизация, разложение на множители, работа с полиномами и рациональными функциями.
 - Дифференцирование и интегрирование: правила символьного дифференцирования, операции по частям, методы для неопределённых и определённых интегралов.
 - Решение уравнений: аналитические и численные методы для алгебраических и трансцендентных уравнений, системы уравнений.
 - Матрицы и линейная алгебра: символьные матрицы, детерминанты, собственные значения, приведение и разложения.
 - Анализ: ряды Тейлора, предельные переходы, исследование сингулярностей и асимптотические разложения.
 - Дискретная математика и комбинаторика: работа с комбинаторными выражениями, последовательностями и рекуррентными соотношениями.
 - Специализированные функции: поддержка элементарных и специальных функций, таких как экспонента, логарифмы, разложение гипергеометрических и других функций.
 - Интеграция с численными библиотеками: возможности преобразования символьных выражений в формы, пригодные для численного анализа и генерации кода.
 - Расширяемость: модульная архитектура, позволяющая добавлять новые алгоритмы и области математики через плагины и пользовательские модули.