Содржина[Крие][Прикажи]
Нема заобиколување на математиката, без разлика дали сте студент на универзитет или работите во науката за податоци.
Некој дури може да тврди дека науката за податоци е тип на применета математика/статистика. NumPy, SciPy, Скикит-научи, и TensorFlow се само неколку од библиотеките на Python кои квантитативно се занимаваат со математика.
Сепак, постои само еден конкурент за експлицитно справување со математички симболи: SymPy.
Ајде да дознаеме сè за SymPy.
Што е SymPy?
SymPy е симболична математичка библиотека на Пајтон. Тој се стреми да биде целосно опремен компјутерски алгебарски систем (CAS) додека кодот е што е можно поосновен за да биде разбирлив и лесно проширлив.
Целосно е напишано во Python. Едноставен е за користење бидејќи се потпира само на mpmath, чиста библиотека на Python за произволна аритметика со подвижна запирка.
Како библиотека, таа е создадена со значителен акцент на употребливоста на ум. Проширливоста е критична во дизајнот на интерфејсот на неговата апликативна програма (API).
Како резултат на тоа, не се обидува да го подобри јазикот на Python. Целта е корисниците да можат да го користат заедно со други Библиотеки на Python во нивниот работен тек, без разлика дали е во интерактивна средина или како програмирана компонента на поголем систем.
На SymPy, како библиотека, му недостасува вградена графичка кориснички интерфејс (GUI). Библиотеката е:
- Бесплатно, како во однос на говорот, така и во однос на пивото, бидејќи е лиценцирана според лиценцата BSD.
- Базиран на Python: Тој е целосно развиен во Python и го користи Python како свој јазик.
- Лесен затоа што се потпира само на mpmath, чиста Пајтон библиотека за произволна аритметика со подвижна запирка, што ја прави едноставна за употреба.
- Може да се вгради во други програми и да се модифицира со сопствени функции, покрај тоа што ќе се користи како интерактивна алатка.
Зошто да користите SymPy?
Sage, компјутерски алгебарски систем, го користи и Python како свој програмски јазик. Sage, од друга страна, е огромен, бара преземање повеќе од еден гигабајт. Има предност што е лесен.
Покрај тоа што е компактен, тој нема други зависности освен Python, што овозможува да се користи практично насекаде.
Понатаму, целите на Sage и SymPy не се исти. Сејџ се стреми да биде математички систем со целосни карактеристики, а тоа го прави со комбинирање на сите главни математички системи со отворен код во еден.
Кога користите Sage функција, како што е интегрирање, таа повикува еден од пакетите со отворен код што ги содржи. Во реалноста, тој е вграден во Sage. SymPy, од друга страна, се стреми да биде самостоен систем, со сета функционалност имплементирана во самиот него.
Нејзиниот капацитет да функционира како библиотека е важна карактеристика. Многу компјутерски алгебарски системи се наменети да се користат во интерактивни средини, но тешко е да се автоматизираат или прошират.
Може да се користи интерактивно во Python или да се увезе во вашата сопствена Python програма. Исто така, има API за лесно проширување со вашите сопствени рутини.
Инсталирање на SymPy
Едноставно користете ја командата подолу за да инсталирате во вашата околина.
Симболи на SymPy
Ајде да започнеме со тоа сега! Неговиот основен објект е симбол. Во SymPy, можете да генерирате симбол x со пишување:
Кодот погоре го генерира симболот x. Симболите во него се наменети да емулираат математички симболи кои претставуваат непознати вредности.
Како резултат на тоа, следната пресметка е прикажана подолу:
Како што е прикажано погоре, симболот x функционира слично на непозната количина. Ако сакате да направите многу симболи, напишете ги на следниов начин:
Создадовте два симболи, y и z, во истиот момент во овој случај. Овие симболи сега може да се додаваат, одземаат, множат и делат по желба:
Функции на SymPy
1. функција sympify().
Методот sympify() трансформира произволен израз во израз на SymPy. Ги конвертира стандардните објекти на Python, како што се цели броеви.
Низите се трансформираат во нивните изрази, како и во цели броеви, итн.
2. функција evalf().
Оваа функција оценува одреден нумерички израз со прецизност на подвижна запирка до 100 цифри.
Функцијата дополнително прифаќа речник објект со нумерички вредности за симболи како под-аргумент. Размислете за следнава фраза:
Точноста на подвижна запирка стандардно е поставена на 15 цифри. Сепак, ова може да се смени на кој било број помеѓу 1 и 100.
Следната равенка се оценува со прецизност од 20 цифри.
3. Функција Lambdify().
Lambdify е функција која ги претвора своите изрази во функции на Пајтон. Методот evalf() е неефикасен кога се оценува изразот низ широк опсег на вредности.
Lambdify работи слично како функцијата ламбда, освен што ги преведува имињата на SymPy на имињата на дадената нумеричка библиотека, која генерално е NumPy.
Стандардно, Lambdify се применува за имплементации на математички стандардни библиотеки.
Карактеристики
Овде се наведени неколку најзначајни карактеристики на библиотеката; има уште многу кои не се вклучени, но можете да ги проверите овде.
1. Основни способности
- Основна аритметика: +, -, *, / и ** се поддржани оператори (моќ)
- Полиномско проширување
- Цели броеви, рационални и плови со произволна прецизност
- Тригонометриски, хиперболични и експоненцијални функции, корени, логаритми, апсолутна вредност, сферични хармоници, факториели и гама функции, зета функции, полиноми и специјални функции
- Симболи кои се некомутативни
- Модели за совпаѓање
2. Калкулус
- Интеграција: Овој метод ја користи проширената хеуристичка Риш-Норман
- Диференцијација.
- Ограничувачки функции
- Серијата на Лорен Тејлор
3. Полиноми
- Фондации на Гробнер
- Разложување на парцијални фракции
- Поделба, gcd Резултатите се примери за основна аритметика.
4. Комбинаторика
- Пермутации
- Греј и Пруфер кодови
- Комбинации, партиции, подмножества
- Полиедарски, Рубикови, симетрични и други пермутациски групи
5. Дискретна математика
- Сумирања
- Логички изрази
- Биномни коефициенти
- Теорија на броеви
апликации
1. Калкулатор за градење
2. Компјутерски алгебарски системи
За разлика од другите компјутерски алгебарски системи, мора рачно да декларирате симболички променливи во него користејќи ја функцијата Symbol().
3. Калкулус
Капацитетот на симболичкиот систем за пресметување симболично да ги прави сите видови пресметки е неговата главна сила.
Може да ги поедностави исказите, симболично, да пресметува деривати, интеграли и лимити, да решава равенки, да комуницира со матрици и да направи многу повеќе.
За да ви го отвори апетитот, еве вкус на симболична моќ.
Што друго можете да направите со SymPy?
Наместо детално да се занимавате со дополнителни прашања, дозволете ми да ви дадам список на ресурси кои ќе ви помогнат да ги подобрите вашите вештини:
- Матрици и линеарна алгебра: Може да работи со матрици и да врши основни операции на линеарна алгебра. Јазикот е сличен на синтаксата на NumPy. Сепак, постојат забележителни разлики. За да започнете, истражете матрици во библиотека.
- Изразување: Користи дрво на изразување, кое е структура заснована на дрво, за да ги следи изразите. Гледа во изразни дрвја ако сакате да дознаете повеќе за нивната внатрешна работа.
- Деривати и интеграли: Може да го постигне поголемиот дел од она што би го научиле на воведниот час за анализа (минус размислувањето). Можете да започнете со гледање на нашата функција диференцијација во SymPy.
- Врска со NumPy: NumPy и SymPy се двете библиотеки поврзани со математика. Тие, сепак, се суштински различни! NumPy работи со бројки, додека работи со симболични изрази.
- Поедноставувања: Доволно е интелигентен за автоматско поедноставување на изразите. Меѓутоа, ако сакате повеќе ситно-грануларна контрола над ова, погледнете ја поедноставувања.
Заклучок
SymPy е моќна библиотека за симболична математика.
Можете да го користите за да креирате променливи и функции, како и симболично да ги проширите и поедноставите математичките искази и да решавате равенки, неравенки, па дури и системи на равенки/неравенки.
Можете да ги напишете функциите и во текстот на скриптата и директно во терминалот (или тетратки Јупитер) за да се добие брза проценка и подобар графички приказ на направените пресметки.
Дали сте подготвени да истражите повеќе од SymPy? Дозволете ни да знаеме во коментарите.
Оставете Одговор