Sadržaj[Sakrij][Prikaži]
Ne možete zaobići matematiku, bilo da ste student ili radite u nauci o podacima.
Moglo bi se čak tvrditi da je nauka o podacima vrsta primijenjene matematike/statistike. NumPy, SciPy, scikit-learn, I TensorFlow su samo neke od Python biblioteka koje se kvantitativno bave matematikom.
Međutim, postoji samo jedan konkurent za eksplicitno bavljenje matematičkim simbolima: SymPy.
Hajde da saznamo sve o SymPyju.
Šta je SymPy?
SymPy je Python biblioteka simboličke matematike. On teži da bude sistem kompjuterske algebre sa punim mogućnostima (CAS) dok zadrži kod što je više moguće osnovni da bude razumljiv i lako proširiv.
U potpunosti je napisan u Pythonu. Jednostavan je za upotrebu jer se oslanja samo na mpmath, čistu Python biblioteku za proizvoljnu aritmetiku s pomičnim zarezom.
Kao biblioteka, stvorena je sa značajnim naglaskom na upotrebljivosti na umu. Proširivost je ključna u dizajnu interfejsa aplikacijskog programa (API).
Kao rezultat toga, ne pokušava da poboljša jezik Python. Cilj je da ga korisnici mogu koristiti zajedno sa ostalima Python biblioteke u njihovom toku rada, bilo u interaktivnom okruženju ili kao programirana komponenta većeg sistema.
SymPy, kao biblioteka, nema ugrađenu grafiku korisnički interfejs (GUI). Biblioteka je:
- Besplatno, kako govora tako i piva, jer je licencirano pod BSD licencom.
- Zasnovan na Python-u: Potpuno je razvijen u Pythonu i koristi Python kao jezik.
- Lagan jer se oslanja samo na mpmath, čist Python biblioteka 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, sistem kompjuterske algebre, takođe 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 drugih zavisnosti osim Python-a, što mu omogućava da se koristi praktički svuda.
Nadalje, ciljevi Sagea i SymPyja nisu isti. Sage teži da bude potpuno opremljen matematički sistem, a to čini kombinovanjem svih glavnih matematičkih sistema 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 da bude samostalan sistem, sa svim funkcionalnostima implementiranim u samom sebi.
Njegova sposobnost da funkcioniše kao biblioteka je važna karakteristika. Mnogi sistemi kompjuterske algebre su namijenjeni za korištenje u interaktivnim okruženjima, ali ih je teško automatizirati ili proširiti.
Može se koristiti interaktivno u Python-u ili uvezen u vaš vlastiti Python program. Također ima API-je za jednostavno proširenje vašim vlastitim rutinama.
Instaliranje SymPy
Jednostavno koristite naredbu ispod za instalaciju u svom okruženju.
SymPy Symbols
Počnimo s tim sada! Njegov osnovni objekt je simbol. U SymPyju možete generirati simbol x tako što ćete napisati:
Kod iznad generiše simbol x. Simboli u njemu su namijenjeni da oponašaju matematičke simbole koji predstavljaju nepoznate vrijednosti.
Kao rezultat, sljedeći proračun je prikazan u nastavku:
Kao što je gore prikazano, simbol x funkcionira slično kao i nepoznati iznos. Ako želite da napravite mnogo simbola, napišite ih na sledeći način:
U ovom slučaju ste kreirali dva simbola, y i z, u istom trenutku. Ovi simboli se sada mogu dodavati, oduzimati, množiti i dijeliti po želji:
SymPy funkcije
1. sympify() funkcija
Metoda sympify() transformiše proizvoljan izraz u SymPy izraz. Konvertuje standardne Python objekte, kao što su celi brojevi.
Stringovi se transformišu u njihove izraze, kao i cele 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 numeričkim vrijednostima za simbole kao subs argument. Razmotrite sljedeću frazu:
Tačnost s pomičnim zarezom je po defaultu postavljena na 15 cifara. Međutim, ovo se može promijeniti na bilo koji broj između 1 i 100.
Sljedeća jednačina se procjenjuje s preciznošću od 20 cifara.
3. Lambdify() funkcija
Lambdify je funkcija koja svoje izraze pretvara u Python funkcije. Metoda evalf() je neefikasna kada se procjenjuje izraz u širokom rasponu vrijednosti.
Lambdify radi slično lambda funkciji, osim što prevodi SymPy imena u imena ponuđene numeričke biblioteke, koja je općenito NumPy.
Po defaultu, Lambdify se primjenjuje na implementacije matematičke standardne biblioteke.
Značajke
Ovdje je navedeno nekoliko najznačajnijih karakteristika biblioteke; ima još mnogo toga što nije uključeno, ali možete ih pogledati OVDJE.
1. Osnovne mogućnosti
- Fundamentalna aritmetika: podržani su operatori +, -, *, / i ** (napajanje)
- Polinomska ekspanzija
- Cijeli brojevi, racionalni brojevi i floats sa 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öbner temelji
- Razgradnja parcijalnih frakcija
- Deljenje, gcd Rezultati su primeri osnovne aritmetike.
4. Kombinatorika
- Permutacije
- Grey i Prufer kodovi
- Kombinacije, particije, podskupovi
- Poliedarske, Rubikove, simetrične i druge permutacijske grupe
5. Diskretna matematika
- Sumacije
- Logički izrazi
- Binomni koeficijenti
- Teorija brojeva
Aplikacije
1. Kalkulator zgrade
2. Sistemi kompjuterske algebre
Za razliku od drugih sistema kompjuterske algebre, morate ručno deklarisati simboličke varijable u njemu koristeći funkciju Symbol().
3. Računica
Kapacitet simboličkog računarskog sistema da izvrši sve vrste proračuna simbolički je njegova glavna snaga.
Može pojednostaviti izjave, simbolički, izračunati izvode, integrale i granice, riješiti jednadžbe, stupiti u interakciju s matricama i učiniti mnogo više.
Da probudite apetit, evo okusa simbolične moći.
Šta još možete učiniti sa SymPyjem?
Umjesto da se dublje bavim dodatnim pitanjima, dozvolite mi da vam pružim listu resursa koji će vam pomoći da poboljšate svoje vještine:
- Matrice i linearna algebra: Može raditi sa matricama i izvoditi osnovne operacije linearne algebre. Jezik je sličan NumPy sintaksi. Međutim, postoje značajne razlike. Za početak, istražite matrice u biblioteci.
- Izraz: Koristi stablo izraza, koje je struktura zasnovana na stablu, da prati izraze. Pogledaj u stabla izraza ako želite da saznate više o njihovom unutrašnjem radu.
- Derivati i integrali: Može postići većinu onoga što biste naučili na uvodnom času računa (bez razmišljanja). Možete početi tako što ćete pogledati našu funkciju diferencijacija u SymPy.
- Odnos sa NumPy: NumPy i SymPy su obje biblioteke povezane s matematikom. Oni su, ipak, suštinski različiti! NumPy radi sa brojevima, dok radi sa simboličkim izrazima.
- Pojednostavljenja: Dovoljno je inteligentan da automatski pojednostavi izraze. Međutim, ako želite detaljniju kontrolu nad ovim, pogledajte je pojednostavljenja.
zaključak
SymPy je moćna biblioteka za simboličku matematiku.
Možete ga koristiti za kreiranje varijabli i funkcija, kao i za simbolički proširenje i pojednostavljivanje matematičkih iskaza i rješavanje jednačina, nejednačina, pa čak i sistema jednačina/nejednačina.
Funkcije možete napisati iu tekstu skripte i direktno u terminalu (ili Jupyter notebooks) za brzu procjenu i bolji grafički prikaz urađenih proračuna.
Jeste li spremni istražiti više o SymPyju? Javite nam u komentarima.
Ostavite odgovor