Содержание[Скрывать][Показывать]
От математики никуда не деться, будь вы студентом университета или работаете в области науки о данных.
Можно даже утверждать, что наука о данных — это разновидность прикладной математики/статистики. NumPy, SciPy, научное обучениекачества TensorFlow — это лишь некоторые из библиотек Python, которые имеют дело с математикой количественно.
Однако есть только один конкурент, явно работающий с математическими символами: SymPy.
Давайте узнаем все о SymPy.
Что такое СимПи?
SymPy — это библиотека символьной математики Python. Он стремится стать полнофункциональной системой компьютерной алгебры (CAS), сохраняя при этом максимально простой код, чтобы он был понятным и легко расширяемым.
Он полностью написан на Python. Он прост в использовании, так как полагается только на mpmath, чистую библиотеку Python для произвольных арифметических операций с плавающей запятой.
Как библиотека, она была создана с упором на удобство использования. Расширяемость имеет решающее значение при разработке интерфейса прикладных программ (API).
В результате он не пытается улучшить язык Python. Цель состоит в том, чтобы пользователи могли использовать его вместе с другими Библиотеки Python в своем рабочем процессе, будь то в интерактивной среде или в качестве запрограммированного компонента более крупной системы.
SymPy, как библиотека, не имеет встроенного графического интерфейс пользователя (графический интерфейс). Библиотека это:
- Бесплатен как в отношении речи, так и в отношении пива, поскольку распространяется под лицензией BSD.
- На основе Python: он полностью разработан на Python и использует Python в качестве своего языка.
- Легкий, потому что он полагается только на mpmath, чистый Библиотека Python для произвольной арифметики с плавающей запятой, что делает его простым в использовании.
- Может быть включен в другие программы и изменен с помощью пользовательских функций в дополнение к использованию в качестве интерактивного инструмента.
Зачем использовать SymPy?
Sage, система компьютерной алгебры, также использует Python в качестве языка программирования. Sage, с другой стороны, огромен и требует загрузки более гигабайта. Преимущество в том, что он легкий.
Помимо того, что он компактен, он не имеет других зависимостей, кроме Python, что позволяет использовать его практически везде.
Кроме того, цели Sage и SymPy не совпадают. Sage стремится стать полнофункциональной математической системой, и она делает это, объединяя все основные математические системы с открытым исходным кодом в одну.
Когда вы используете функцию Sage, например интеграцию, она вызывает один из содержащихся в ней пакетов с открытым исходным кодом. На самом деле он встроен в Sage. SymPy, с другой стороны, стремится быть автономной системой со всеми функциями, реализованными в ней самой.
Его способность функционировать как библиотека является важной особенностью. Многие системы компьютерной алгебры предназначены для использования в интерактивных средах, но их сложно автоматизировать или расширить.
Его можно использовать интерактивно в Python или импортировать в вашу собственную программу Python. Он также имеет API для легкого расширения с помощью ваших собственных подпрограмм.
Установка SymPy
Просто используйте приведенную ниже команду для установки в вашей среде.
Символы SymPy
Давайте начнем с этого прямо сейчас! Его фундаментальный объект — символ. В SymPy вы можете сгенерировать символ x, написав:
Приведенный выше код генерирует символ x. Символы в нем предназначены для имитации математических символов, представляющих неизвестные значения.
В результате, следующий расчет показан ниже:
Как показано выше, символ x функционирует аналогично неизвестной сумме. Если вы хотите сделать много символов, напишите их следующим образом:
В этом случае вы создали два символа, y и z, одновременно. Эти символы теперь можно складывать, вычитать, умножать и делить по желанию:
Функции SymPy
1. Функция sympify()
Метод sympify() преобразует произвольное выражение в выражение SymPy. Он преобразует стандартные объекты Python, такие как целые числа.
Строки преобразуются в их выражения, а также целые числа и т. д.
2. функция eval()
Эта функция оценивает указанное числовое выражение с точностью до 100 цифр с плавающей запятой.
Функция дополнительно принимает объект словаря с числовыми значениями для символов в качестве подаргумента. Рассмотрим следующую фразу:
Точность с плавающей запятой по умолчанию установлена на 15 цифр. Однако его можно изменить на любое число от 1 до 100.
Следующее уравнение оценивается с точностью до 20 цифр.
3. Функция Lambdify()
Lambdify — это функция, которая преобразует свои выражения в функции Python. Метод evalf() неэффективен при вычислении выражения в широком диапазоне значений.
Lambdify работает аналогично лямбда-функции, за исключением того, что она переводит имена SymPy в имена предоставленной числовой библиотеки, которой обычно является NumPy.
По умолчанию Lambdify применяется к реализациям стандартной математической библиотеки.
Особенности
Здесь перечислены некоторые наиболее важные функции библиотеки; есть еще много не включенных, но вы можете проверить их здесь.
1. Основные возможности
- Основные арифметические операции: поддерживаются операторы +, -, *, / и ** (мощность).
- Полиномиальное расширение
- Целые числа, рациональные числа и числа с плавающей запятой с произвольной точностью
- Тригонометрические, гиперболические и экспоненциальные функции, корни, логарифмы, абсолютное значение, сферические гармоники, факториалы и гамма-функции, дзета-функции, многочлены и специальные функции
- Некоммутативные символы
- Подходящие шаблоны
2. Исчисление
- Интеграция: этот метод использует расширенную эвристику Риша-Нормана.
- Дифференциация.
- Предельные функции
- сериал Лорана Тейлора
3. Многочлены
- Фонды Грёбнера
- Разложение неполных дробей
- Деление, gcd Resultants являются примерами основной арифметики.
4. Комбинаторика
- Перестановки
- Коды Грея и Прюфера
- Комбинации, разделы, подмножества
- Многогранные, рубиковские, симметричные и другие группы перестановок
5. Дискретная математика
- суммирование
- Логические выражения
- Биномиальные коэффициенты
- Теория чисел
Приложения
1. Строительный калькулятор
2. Системы компьютерной алгебры
В отличие от других систем компьютерной алгебры, вы должны вручную объявлять в ней символьные переменные с помощью функции Symbol().
3. Исчисление
Способность системы символьных вычислений выполнять все виды вычислений символически является ее главной силой.
Он может упростить операторы, символически вычислять производные, интегралы и пределы, решать уравнения, взаимодействовать с матрицами и делать многое другое.
Чтобы подогреть ваш аппетит, вот вкус символической силы.
Что еще вы можете сделать с SymPy?
Вместо того, чтобы подробно рассказывать о дополнительных проблемах, позвольте мне предоставить вам список ресурсов, которые помогут вам улучшить свои навыки:
- Матрицы и линейная алгебра: Он может работать с матрицами и выполнять основные операции линейной алгебры. Язык похож на синтаксис NumPy. Однако есть заметные различия. Для начала исследуйте матрицы в библиотеке.
- Выражение: Он использует дерево выражений, которое представляет собой древовидную структуру, для отслеживания выражений. смотреть на деревья выражения если вы хотите узнать больше об их внутренней работе.
- Производные и интегралы: Он может выполнить большую часть того, чему вы научились на вводном занятии по математическому анализу (за вычетом мышления). Вы можете начать с рассмотрения нашей функции дифференциация в SymPy.
- Связь с NumPy: NumPy и SymPy — библиотеки, связанные с математикой. Тем не менее, они принципиально разные! NumPy работает с числами, а с символьными выражениями.
- Упрощения: Он достаточно умен, чтобы автоматически упрощать выражения. Однако, если вы хотите более детально контролировать это, посмотрите на его упрощения.
Заключение
SymPy — мощная библиотека для символьной математики.
Вы можете использовать его для создания переменных и функций, а также символически расширять и упрощать математические операторы и решать уравнения, неравенства и даже системы уравнений/неравенств.
Вы можете писать функции как в тексте скрипта, так и прямо в терминале (или Ноутбуки Jupyter), чтобы получить быструю оценку и лучшее графическое изображение выполненных вычислений.
Готовы ли вы узнать больше о SymPy? Дайте нам знать об этом в комментариях.
Оставьте комментарий