Pregled sadržaja[Sakriti][Pokazati]
Ne možete zaobići matematiku, bilo da ste student ili radite u znanosti o podacima.
Moglo bi se čak tvrditi da je znanost o podacima vrsta primijenjene matematike/statistike. NumPy, SciPy, scikit-leari TensorFlow su samo neke od Python knjižnica koje se kvantitativno bave matematikom.
Međutim, postoji samo jedan konkurent za eksplicitno bavljenje matematičkim simbolima: SymPy.
Doznajmo sve o SymPyju.
Što je SymPy?
SymPy je Python simbolička matematička biblioteka. Nastoji biti sustav računalne algebre s punim značajkama (CAS) uz zadržavanje najosnovnijeg koda kako bi bio razumljiv i lako proširiv.
U potpunosti je napisan na Pythonu. Jednostavan je za korištenje jer se oslanja samo na mpmath, čistu Python biblioteku za proizvoljnu aritmetiku s pomičnim zarezom.
Kao knjižnica, stvorena je sa značajnim naglaskom na upotrebljivosti na umu. Proširivost je ključna u dizajnu sučelja aplikacijskog programa (API).
Kao rezultat toga, ne pokušava poboljšati jezik Python. Cilj je da ga korisnici mogu koristiti uz druge Python knjižnice u svom tijeku rada, bilo u interaktivnom okruženju ili kao programirana komponenta većeg sustava.
SymPyju, kao knjižnici, nedostaje ugrađena grafika korisničko sučelje (GUI). Knjižnica je:
- Besplatno, kako govora tako i piva, jer je licencirano pod BSD licencom.
- Temeljen na Pythonu: Potpuno je razvijen u Pythonu i koristi Python kao jezik.
- Lagan jer se oslanja samo na mpmath, čisti Python knjižnica za proizvoljnu aritmetiku s pomičnim zarezom, što ga čini jednostavnim za korištenje.
- Može se ugraditi u druge programe i modificirati prilagođenim funkcijama osim što se može koristiti kao interaktivni alat.
Zašto koristiti SymPy?
Sage, sustav računalne algebre, također koristi Python kao svoj programski jezik. Sage je, s druge strane, ogromna i zahtijeva preuzimanje više od gigabajta. Prednost je što je lagan.
Osim što je kompaktan, nema nikakve ovisnosti osim Pythona, što mu omogućuje da se koristi praktički posvuda.
Nadalje, ciljevi Sagea i SymPyja nisu isti. Sage teži biti potpuno opremljen matematičkim sustavom, a to čini kombiniranjem svih glavnih matematičkih sustava otvorenog koda u jedan.
Kada koristite funkciju Sage, kao što je integrate, ona poziva jedan od paketa otvorenog koda koje sadrži. U stvarnosti, ugrađen je u Sage. SymPy, s druge strane, teži biti samostalan sustav, sa svim funkcionalnostima implementiranim u samom sebi.
Njegova sposobnost da funkcionira kao knjižnica važna je značajka. Mnogi sustavi računalne algebre namijenjeni su za korištenje u interaktivnim okruženjima, ali ih je teško automatizirati ili proširiti.
Može se interaktivno koristiti u Pythonu ili uvesti u vaš vlastiti Python program. Također ima API-je za jednostavno proširenje vašim vlastitim rutinama.
Instalacija SymPyja
Jednostavno upotrijebite donju naredbu za instalaciju u svom okruženju.
SymPy simboli
Počnimo s tim sada! Njegov temeljni objekt je simbol. U SymPyju možete generirati simbol x tako što ćete napisati:
Gornji kod generira simbol x. Simboli u njemu namijenjeni su oponašanju matematičkih simbola koji predstavljaju nepoznate vrijednosti.
Kao rezultat, sljedeći je izračun prikazan u nastavku:
Kao što je gore prikazano, simbol x funkcionira slično kao i nepoznati iznos. Ako želite napraviti mnogo simbola, napišite ih na sljedeći način:
U ovom ste slučaju stvorili dva simbola, y i z, u istom trenutku. Ovi se simboli sada mogu dodavati, oduzimati, množiti i dijeliti po želji:
SymPy funkcije
1. funkcija sympify().
Metoda sympify() transformira proizvoljni izraz u SymPy izraz. Pretvara standardne Python objekte, kao što su cijeli brojevi.
Nizovi se transformiraju u svoje izraze, kao i cijele brojeve, itd.
2. funkcija evalf().
Ova funkcija procjenjuje određeni numerički izraz s preciznošću s pomičnim zarezom do 100 znamenki.
Funkcija dodatno prihvaća objekt rječnika s brojčanim vrijednostima za simbole kao subs argument. Razmotrite sljedeću frazu:
Točnost s pomičnim zarezom je prema zadanim postavkama postavljena na 15 znamenki. Međutim, ovo se može promijeniti u bilo koji broj između 1 i 100.
Sljedeća se jednadžba procjenjuje s preciznošću od 20 znamenki.
3. Funkcija Lambdify().
Lambdify je funkcija koja svoje izraze pretvara u Python funkcije. Metoda evalf() je neučinkovita kada se procjenjuje izraz u širokom rasponu vrijednosti.
Lambdify radi slično kao i lambda funkcija, osim što prevodi imena SymPy u nazive ponuđene numeričke biblioteke, što je općenito NumPy.
Prema zadanim postavkama, Lambdify se primjenjuje na implementacije matematičke standardne biblioteke.
Značajke
Ovdje je navedeno nekoliko najvažnijih značajki knjižnice; ima još mnogo toga što nije uključeno, ali ih možete pogledati ovdje.
1. Osnovne sposobnosti
- Temeljna aritmetika: podržani su operatori +, -, *, / i ** (napajanje)
- Polinomska ekspanzija
- Cjelobrojni, racionalni i plutajući s proizvoljnom preciznošću
- Trigonometrijske, hiperboličke i eksponencijalne funkcije, korijeni, logaritmi, apsolutna vrijednost, sferni harmonici, faktorijali i gama funkcije, zeta funkcije, polinomi i specijalne funkcije
- Simboli koji nisu komutativni
- Odgovarajući uzorci
2. Računica
- Integracija: Ova metoda koristi proširenu Risch-Normanovu heuristiku
- Diferencijacija.
- Limit funkcije
- Serija Laurenta Taylora
3. Polinomi
- Gröbnerov temelji
- Razgradnja parcijalnih frakcija
- Dijeljenje, gcd Rezultati su primjeri osnovne aritmetike.
4. Kombinatorika
- permutacija
- Grey i Prufer kodovi
- Kombinacije, particije, podskupovi
- Poliedarske, Rubikove, simetrične i druge permutacijske grupe
5. Diskretna matematika
- šumarija
- Logički izrazi
- Binomni koeficijenti
- Teorija brojeva
Aplikacije
1. Kalkulator zgrade
2. Sustavi računalne algebre
Za razliku od drugih sustava računalne algebre, morate ručno deklarirati simboličke varijable u njemu pomoću funkcije Symbol().
3. Računica
Sposobnost simboličkog računskog sustava da sve vrste proračuna obavi simbolički je njegova glavna snaga.
Može pojednostaviti izjave, simbolički, izračunati izvode, integrale i granice, riješiti jednadžbe, komunicirati s matricama i učiniti puno više.
Kako biste probudili apetit, evo okusa simbolične moći.
Što još možete učiniti sa SymPyjem?
Umjesto da se dublje bavim dodatnim pitanjima, dopustite mi da vam pružim popis resursa koji će vam pomoći da poboljšate svoje vještine:
- Matrice i linearna algebra: Može raditi s matricama i izvoditi osnovne operacije linearne algebre. Jezik je sličan NumPy-jevoj sintaksi. Međutim, postoje značajne razlike. Za početak istražite matrice u knjižnici.
- Izraz: Koristi stablo izraza, koje je struktura temeljena na stablu, za praćenje izraza. Pogledaj stabla izraza ako želite saznati više o njihovom unutarnjem djelovanju.
- Derivati i integrali: Može postići većinu onoga što biste naučili na uvodnom satu računanja (bez razmišljanja). Možete započeti gledajući našu funkciju diferencijacija u SymPyju.
- Odnos s NumPy: NumPy i SymPy su obje knjižnice povezane s matematikom. Oni su, ipak, bitno različiti! NumPy radi s brojevima, dok radi sa simboličkim izrazima.
- Pojednostavljenja: Dovoljno je inteligentan da automatski pojednostavljuje izraze. Međutim, ako želite detaljniju kontrolu nad ovim, pogledajte to pojednostavljenja.
Zaključak
SymPy je moćna biblioteka za simboličku matematiku.
Možete ga koristiti za stvaranje varijabli i funkcija, kao i za simbolički proširenje i pojednostavljivanje matematičkih iskaza i rješavanje jednadžbi, nejednakosti, pa čak i sustava jednadžbi/nejednadžbi.
Funkcije možete pisati iu tekstu skripte i izravno u terminalu (ili Jupyter bilježnice) kako biste dobili brzu procjenu i bolji grafički prikaz obavljenih izračuna.
Jeste li spremni istražiti više o SymPyju? Javite nam se u komentarima.
Ostavi odgovor