Kazalo[Skrij][Pokaži]
Matematike ni mogoče zaobiti, ne glede na to, ali ste študent ali delate v znanosti o podatkih.
Lahko bi celo trdili, da je znanost o podatkih vrsta uporabne matematike/statistike. NumPy, SciPy, scikit-learnin TensorFlow so le nekatere od Pythonovih knjižnic, ki se kvantitativno ukvarjajo z matematiko.
Vendar pa obstaja samo en konkurent za eksplicitno obravnavanje matematičnih simbolov: SymPy.
Izvedemo vse o SymPyju.
Kaj je SymPy?
SymPy je knjižnica simbolne matematike Python. Prizadeva si, da bi bil sistem računalniške algebre s polnimi funkcijami (CAS), hkrati pa naj bo koda čim bolj osnovna, da je razumljiva in enostavno razširljiva.
V celoti je napisan v Pythonu. Uporaba je preprosta, saj se zanaša samo na mpmath, čisto knjižnico Python za poljubno aritmetiko s plavajočo vejico.
Kot knjižnica je bila ustvarjena s pomembnim poudarkom na uporabnosti. Razširljivost je ključnega pomena pri oblikovanju vmesnika aplikacijskega programa (API).
Posledično ne poskuša izboljšati jezika Python. Cilj je, da ga uporabniki lahko uporabljajo skupaj z drugimi Knjižnice Python v njihovem delovnem toku, bodisi v interaktivnem okolju ali kot programirana komponenta večjega sistema.
SymPy kot knjižnica nima vgrajene grafike Uporabniški vmesnik (GUI). Knjižnica je:
- Brezplačno, tako glede govora kot piva, ker je licencirano pod licenco BSD.
- Temelji na Pythonu: v celoti je razvit v Pythonu in uporablja Python kot svoj jezik.
- Lahka, ker se zanaša samo na mpmath, čisto Knjižnica Python za poljubno aritmetiko s plavajočo vejico, zaradi česar je preprosta za uporabo.
- Lahko se vključi v druge programe in spremeni s funkcijami po meri, poleg tega se lahko uporablja kot interaktivno orodje.
Zakaj uporabljati SymPy?
Sage, sistem računalniške algebre, uporablja tudi Python kot svoj programski jezik. Po drugi strani je Sage ogromen in zahteva prenos več kot gigabajt. Prednost ima lahek.
Poleg tega, da je kompakten, nima drugih odvisnosti od Pythona, kar omogoča uporabo praktično povsod.
Poleg tega cilja Sage in SymPy nista enaka. Sage si prizadeva za popoln matematični sistem in to počne tako, da združuje vse glavne odprtokodne matematične sisteme v enega.
Ko uporabite funkcijo Sage, kot je integrate, pokliče enega od odprtokodnih paketov, ki jih vsebuje. V resnici je vgrajen v Sage. SymPy po drugi strani želi biti samostojen sistem z vso funkcionalnostjo, implementirano v njem samem.
Njegova sposobnost, da deluje kot knjižnica, je pomembna lastnost. Številni sistemi računalniške algebre so namenjeni uporabi v interaktivnih okoljih, vendar jih je težko avtomatizirati ali razširiti.
Lahko se uporablja interaktivno v Pythonu ali uvozi v svoj program Python. Ima tudi API-je za enostavno razširitev z lastnimi rutinami.
Namestitev SymPyja
Za namestitev v svoje okolje preprosto uporabite spodnji ukaz.
Simboli SymPy
Začnimo s tem zdaj! Njegov temeljni predmet je simbol. V SymPyju lahko ustvarite simbol x tako, da napišete:
Zgornja koda generira simbol x. Simboli v njem so namenjeni posnemanju matematičnih simbolov, ki predstavljajo neznane vrednosti.
Kot rezultat, je spodaj prikazan naslednji izračun:
Kot je prikazano zgoraj, simbol x deluje podobno kot neznana količina. Če želite narediti veliko simbolov, jih zapišite na naslednji način:
V tem primeru ste ustvarili dva simbola, y in z, hkrati. Te simbole je zdaj mogoče seštevati, odštevati, množiti in deliti po želji:
Funkcije SymPy
1. funkcija sympify().
Metoda sympify() pretvori poljuben izraz v izraz SymPy. Pretvori standardne predmete Python, kot so cela števila.
Nizi se pretvorijo v njihove izraze, pa tudi v cela števila itd.
2. funkcija evalf().
Ta funkcija oceni določen številski izraz s plavajočo vejico natančnostjo do 100 števk.
Funkcija dodatno sprejme slovarski objekt s številskimi vrednostmi za simbole kot podargument. Upoštevajte naslednjo frazo:
Natančnost s plavajočo vejico je privzeto nastavljena na 15 števk. Vendar pa se to lahko spremeni v poljubno število med 1 in 100.
Naslednja enačba je ovrednotena z natančnostjo 20 števk.
3. Funkcija Lambdify().
Lambdify je funkcija, ki svoje izraze pretvori v funkcije Python. Metoda evalf() je neučinkovita pri ocenjevanju izraza v širokem razponu vrednosti.
Lambdify deluje podobno kot funkcija lambda, le da imena SymPy prevede v imena zagotovljene številske knjižnice, ki je običajno NumPy.
Privzeto se Lambdify uporablja za implementacije knjižnice matematičnih standardov.
Lastnosti
Tukaj je naštetih nekaj najpomembnejših funkcij knjižnice; še veliko jih ni vključenih, lahko pa si jih ogledate tukaj.
1. Temeljne zmogljivosti
- Temeljna aritmetika: podprti so operatorji +, -, *, / in ** (moč)
- Polinomska ekspanzija
- Cela števila, racionalne vrednosti in plavajoče vrednosti s poljubno natančnostjo
- Trigonometrične, hiperbolične in eksponentne funkcije, korenine, logaritmi, absolutna vrednost, sferične harmonike, faktoriali in gama funkcije, zeta funkcije, polinomi in posebne funkcije
- Simboli, ki niso komutativni
- Ujemanje vzorcev
2. Računica
- Integracija: Ta metoda uporablja razširjeno Risch-Normanovo hevristiko
- Diferenciacija.
- Omejitvene funkcije
- Serija Laurenta Taylorja
3. Polinomi
- Gröbnerjevi temelji
- Razgradnja delnih frakcij
- Deljenje, gcd Rezultati so primeri osnovne aritmetike.
4. Kombinatorika
- Permutacije
- Grey in Pruferjeve kode
- Kombinacije, particije, podmnožice
- Poliedrske, Rubikove, simetrične in druge permutacijske skupine
5. Diskretna matematika
- Povzetki
- Logični izrazi
- Binomni koeficienti
- Teorija števil
Aplikacije
1. Kalkulator zgradb
2. Sistemi računalniške algebre
Za razliko od drugih sistemov računalniške algebre morate v njem ročno deklarirati simbolne spremenljivke s funkcijo Symbol().
3. Računica
Zmogljivost simbolnega računalniškega sistema, da simbolično opravi vse vrste izračunov, je njegova glavna moč.
Lahko simbolično poenostavi izjave, izračuna izpeljanke, integrale in omejitve, reši enačbe, sodeluje z matrikami in naredi še veliko več.
Če želite prebuditi vaš apetit, je tukaj okus simbolične moči.
Kaj še lahko storite s SymPyjem?
Dovolite mi, da vam ponudim seznam virov, ki vam bodo pomagali izboljšati svoje veščine, namesto da bi se poglobljeno ukvarjal z dodatnimi vprašanji:
- Matrice in linearna algebra: Lahko dela z matrikami in izvaja osnovne operacije linearne algebre. Jezik je podoben sintaksi NumPy. Vendar pa obstajajo opazne razlike. Za začetek raziščite matrice v knjižnici.
- Izraz: Za spremljanje izrazov uporablja drevo izrazov, ki je drevesna struktura. Poglej izrazna drevesa če želite izvedeti več o njihovem notranjem delovanju.
- Derivati in integrali: Z njim lahko dosežete večino tega, kar bi se naučili v uvodnem razredu računanja (odšteje se razmišljanje). Začnete lahko z ogledom naše funkcije diferenciacija v SymPyju.
- Razmerje z NumPy: NumPy in SymPy sta knjižnici, povezani z matematiko. Kljub temu so bistveno drugačni! NumPy deluje s številkami, medtem ko deluje s simbolnimi izrazi.
- Poenostavitve: Je dovolj inteligenten, da samodejno poenostavi izraze. Vendar, če želite bolj drobnozrnat nadzor nad tem, si oglejte poenostavitve.
zaključek
SymPy je močna knjižnica za simbolno matematiko.
Uporabite ga lahko za ustvarjanje spremenljivk in funkcij, pa tudi za simbolno razširitev in poenostavitev matematičnih stavkov ter reševanje enačb, neenakosti in celo sistemov enačb/neenakosti.
Funkcije lahko zapišete tako v besedilo skripta kot neposredno v terminal (oz Jupyterjeve zvezke), da dobite hitro oceno in boljši grafični prikaz opravljenih izračunov.
Ste pripravljeni raziskati več o SymPyju? Sporočite nam v komentarjih.
Pustite Odgovori