Spis treści[Ukryć][Pokazać]
Matematyki nie da się obejść, niezależnie od tego, czy jesteś studentem uniwersytetu, czy pracujesz w data science.
Można nawet argumentować, że nauka o danych jest rodzajem matematyki stosowanej/statystyki. NumPy, SciPy, Nauka Scikit, TensorFlow to tylko kilka bibliotek Pythona, które zajmują się matematyką ilościowo.
Jednak jest tylko jeden konkurent do jawnego radzenia sobie z symbolami matematycznymi: SymPy.
Dowiedzmy się wszystkiego o SymPy.
Co to jest SymPy?
SymPy to symboliczna biblioteka matematyczna Pythona. Aspiruje do bycia w pełni funkcjonalnym systemem algebry komputerowej (CAS), przy jednoczesnym zachowaniu kodu tak podstawowego, jak to tylko możliwe, aby był zrozumiały i łatwy do rozbudowy.
Jest w pełni napisany w Pythonie. Jest prosty w użyciu, ponieważ opiera się tylko na mpmath, czystej bibliotece Pythona do dowolnej arytmetyki zmiennoprzecinkowej.
Jako biblioteka została stworzona z dużym naciskiem na użyteczność. Rozszerzalność ma kluczowe znaczenie w projektowaniu interfejsu programu aplikacji (API).
W rezultacie nie podejmuje żadnych prób ulepszenia języka Python. Celem jest, aby użytkownicy mogli używać go razem z innymi Biblioteki Pythona w przepływie pracy, czy to w interaktywnym środowisku, czy jako zaprogramowany komponent większego systemu.
SymPy jako biblioteka nie ma wbudowanej grafiki UI (GUI). Biblioteka to:
- Darmowy, zarówno jeśli chodzi o mowę, jak i piwo, ponieważ jest na licencji BSD.
- Oparty na Pythonie: jest całkowicie opracowany w Pythonie i wykorzystuje Python jako swój język.
- Lekki, ponieważ opiera się tylko na mpmath, a pure Biblioteka Pythona dla dowolnej arytmetyki zmiennoprzecinkowej, dzięki czemu jest prosty w użyciu.
- Może być włączony do innych programów i modyfikowany za pomocą niestandardowych funkcji, oprócz tego, że może być używany jako narzędzie interaktywne.
Dlaczego warto używać SymPy?
Sage, system algebry komputerowej, również wykorzystuje Python jako język programowania. Z drugiej strony Sage jest ogromny i wymaga pobrania ponad gigabajta. Ma tę zaletę, że jest lekki.
Oprócz tego, że jest kompaktowy, nie ma zależności innych niż Python, dzięki czemu można go używać praktycznie wszędzie.
Co więcej, cele Sage i SymPy nie są takie same. Sage aspiruje do bycia w pełni funkcjonalnym systemem matematycznym i robi to poprzez połączenie wszystkich głównych systemów matematycznych typu open source w jeden.
Kiedy używasz funkcji Sage, takiej jak integracja, wywołuje ona jeden z zawartych w niej pakietów open source. W rzeczywistości jest wbudowany w Sage. Z drugiej strony SymPy aspiruje do bycia systemem samowystarczalnym, z zaimplementowaną w nim całą funkcjonalnością.
Jego zdolność do funkcjonowania jako biblioteka jest ważną cechą. Wiele systemów algebry komputerowej ma być używanych w środowiskach interaktywnych, ale trudno je zautomatyzować lub rozszerzyć.
Można go używać interaktywnie w Pythonie lub importować do własnego programu Pythona. Posiada również interfejsy API do łatwego rozszerzania go o własne procedury.
Instalacja SymPy
Po prostu użyj poniższego polecenia, aby zainstalować w swoim środowisku.
Symbole SymPy
Zacznijmy od tego teraz! Jej podstawowym przedmiotem jest symbol. W SymPy możesz wygenerować symbol x, pisząc:
Powyższy kod generuje symbol x. Symbole w nim zawarte mają naśladować symbole matematyczne reprezentujące nieznane wartości.
W rezultacie poniżej przedstawiono następujące obliczenia:
Jak pokazano powyżej, symbol x działa podobnie do nieznanej kwoty. Jeśli chcesz zrobić wiele symboli, napisz je w następujący sposób:
W tym przypadku stworzyłeś dwa symbole, y i z, w tym samym momencie. Te symbole można teraz dodawać, odejmować, mnożyć i dzielić według uznania:
Funkcje SymPy
1. funkcja sympify().
Metoda sympify() przekształca dowolne wyrażenie w wyrażenie SymPy. Konwertuje standardowe obiekty Pythona, takie jak liczby całkowite.
Łańcuchy są przekształcane na ich wyrażenia, a także liczby całkowite itp.
2. funkcja ewalf().
Ta funkcja ocenia określone wyrażenie liczbowe z dokładnością do 100 cyfr zmiennoprzecinkowych.
Funkcja dodatkowo akceptuje obiekt słownika z wartościami liczbowymi dla symboli jako argument subs. Rozważ następujące zdanie:
Dokładność zmiennoprzecinkowa jest domyślnie ustawiona na 15 cyfr. Można to jednak zmienić na dowolną liczbę z zakresu od 1 do 100.
Poniższe równanie jest obliczane z dokładnością do 20 cyfr.
3. Funkcja Lambdify().
Lambdify to funkcja, która konwertuje swoje wyrażenia na funkcje Pythona. Metoda evalf() jest nieefektywna podczas oceniania wyrażenia w szerokim zakresie wartości.
Lambdify działa podobnie do funkcji lambda, z tą różnicą, że tłumaczy nazwy SymPy na nazwy dostarczonej biblioteki numerycznej, którą zazwyczaj jest NumPy.
Domyślnie Lambdify jest stosowane do implementacji standardowej biblioteki matematycznej.
Korzyści
Tutaj wymieniono kilka najważniejszych funkcji biblioteki; istnieje wiele innych, które nie są uwzględnione, ale możesz je sprawdzić tutaj.
1. Podstawowe możliwości
- Podstawowe działania arytmetyczne: obsługiwane są operatory +, -, *, / i ** (potęga)
- Rozwinięcie wielomianu
- Liczby całkowite, wymierne i liczby zmiennoprzecinkowe z dowolną precyzją
- Funkcje trygonometryczne, hiperboliczne i wykładnicze, pierwiastki, logarytmy, wartości bezwzględne, harmoniczne sferyczne, silnie i funkcje gamma, funkcje zeta, wielomiany i funkcje specjalne
- Symbole nieprzemienne
- Dopasowane wzory
2. Rachunek
- Integracja: Ta metoda wykorzystuje rozszerzoną heurystykę Rischa-Normana
- Różnicowanie.
- Funkcje graniczne
- Seria Laurenta Taylora
3. Wielomiany
- fundamenty Gröbnera
- Rozkład ułamków cząstkowych
- Dzielenie, gcd Wyniki są przykładami podstawowej arytmetyki.
4. Kombinatoryka
- permutacje
- Kody Graya i Prufera
- Kombinacje, partycje, podzbiory
- Grupy wielościenne, rubikowe, symetryczne i inne grupy permutacyjne
5. Matematyka dyskretna
- Podsumowanie
- Wyrażenia logiczne
- Współczynniki dwumianowe
- Teoria liczb
Konsultacje
1. Kalkulator budynku
2. Systemy algebry komputerowej
W przeciwieństwie do innych systemów algebry komputerowej, musisz ręcznie zadeklarować w nim zmienne symboliczne za pomocą funkcji Symbol().
3. Rachunek
Zdolność symbolicznego systemu obliczeniowego do wykonywania wszelkiego rodzaju obliczeń symbolicznie jest jego główną siłą.
Może upraszczać wyrażenia symbolicznie, obliczać pochodne, całki i granice, rozwiązywać równania, wchodzić w interakcje z macierzami i robić dużo więcej.
Aby zaostrzyć apetyt, oto przedsmak symbolicznej mocy.
Co jeszcze możesz zrobić z SymPy?
Zamiast szczegółowo rozwodzić się nad dodatkowymi problemami, przedstawię Ci listę zasobów, które pomogą Ci udoskonalić Twoje umiejętności:
- Macierze i algebra liniowa: Może pracować z macierzami i wykonywać podstawowe operacje algebry liniowej. Język jest podobny do składni NumPy. Istnieją jednak zauważalne różnice. Aby rozpocząć, zbadaj matryce w bibliotece.
- Wyrażenie: Wykorzystuje drzewo wyrażeń, które jest strukturą opartą na drzewie, do śledzenia wyrażeń. Patrzeć na drzewa ekspresyjne jeśli chcesz dowiedzieć się więcej o ich wewnętrznym działaniu.
- Pochodne i całki: Może osiągnąć większość tego, czego nauczysz się na wprowadzającej klasie rachunku różniczkowego (bez myślenia). Możesz zacząć od przyjrzenia się naszej funkcji rozróżnianie w SymPy.
- Związek z NumPy: NumPy i SymPy to biblioteki związane z matematyką. Są jednak zasadniczo różne! NumPy działa z liczbami, podczas gdy działa z wyrażeniami symbolicznymi.
- Uproszczenia: Jest wystarczająco inteligentny, aby automatycznie upraszczać wyrażenia. Jeśli jednak chcesz uzyskać bardziej szczegółową kontrolę nad tym, spójrz na jego uproszczenia.
Wnioski
SymPy to potężna biblioteka do matematyki symbolicznej.
Możesz go używać do tworzenia zmiennych i funkcji, a także symbolicznie rozszerzać i upraszczać wyrażenia matematyczne oraz rozwiązywać równania, nierówności, a nawet układy równań/nierówności.
Możesz zapisać funkcje zarówno w tekście skryptu, jak i bezpośrednio w terminalu (lub Zeszyty Jupyter), aby uzyskać szybką ocenę i lepsze przedstawienie graficzne wykonanych obliczeń.
Czy jesteś gotowy, aby odkryć więcej SymPy? Daj nam znać w komentarzach.
Dodaj komentarz