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