Sisukord[Peida][Näita]
Matemaatikast ei saa mööda, olenemata sellest, kas olete üliõpilane või töötate andmeteaduse alal.
Võib isegi väita, et andmeteadus on rakendusmatemaatika/statistika liik. NumPy, SciPy, scikit-õppidaja TensorFlow on vaid mõned Pythoni teegid, mis tegelevad matemaatikaga kvantitatiivselt.
Siiski on matemaatiliste sümbolite selgesõnaliseks käsitlemiseks vaid üks konkurent: SymPy.
Uurime SymPy kohta kõike.
Mis on SymPy?
SymPy on Pythoni sümboolne matemaatika raamatukogu. See soovib olla täisfunktsionaalne arvutialgebrasüsteem (CAS), hoides koodi võimalikult lihtsana, et see oleks arusaadav ja hõlpsasti laiendatav.
See on täielikult Pythonis kirjutatud. Seda on lihtne kasutada, kuna see tugineb ainult mpmathile, puhtale Pythoni teegile suvalise ujukoma aritmeetika jaoks.
Raamatukoguna loodi see, pannes olulist rõhku kasutatavusele. Laiendatavus on selle rakendusprogrammi liidese (API) kujundamisel kriitilise tähtsusega.
Selle tulemusena ei püüa see Pythoni keelt täiustada. Eesmärk on, et kasutajad saaksid seda kasutada koos teistega Pythoni raamatukogud oma töövoos, olgu siis interaktiivses keskkonnas või suurema süsteemi programmeeritud komponendina.
SymPyl kui raamatukogul puudub sisseehitatud graafika kasutajaliides (GUI). Raamatukogu on:
- Tasuta nii kõne kui ka õlle osas, sest see on litsentsitud BSD litsentsi alusel.
- Pythonil põhinev: see on täielikult Pythonis välja töötatud ja kasutab Pythoni keelena.
- Kerge, kuna see tugineb ainult mpmath-le, puhas Pythoni raamatukogu suvalise ujukoma aritmeetika jaoks, muutes selle kasutamise lihtsaks.
- Lisaks interaktiivse tööriistana kasutamisele saab lisada teistesse programmidesse ja kohandatud funktsioonidega muuta.
Miks kasutada SymPyt?
Arvutialgebrasüsteem Sage kasutab programmeerimiskeelena ka Pythoni. Salvei seevastu on tohutu, nõudes rohkem kui gigabaidi allalaadimist. Selle eeliseks on see, et see on kerge.
Lisaks sellele, et see on kompaktne, pole sellel muid sõltuvusi peale Pythoni, mis võimaldab seda kasutada praktiliselt kõikjal.
Lisaks ei ole Sage'i ja SymPy eesmärgid samad. Sage ihkab olla täisfunktsionaalne matemaatikasüsteem ja teeb seda, ühendades kõik peamised avatud lähtekoodiga matemaatilised süsteemid üheks.
Kui kasutate funktsiooni Sage (nt integrate), kutsub see esile ühe selles sisalduvatest avatud lähtekoodiga pakettidest. Tegelikkuses on see Sage'i sisse ehitatud. SymPy seevastu soovib olla iseseisev süsteem, mille kõik funktsioonid on selles endas rakendatud.
Selle raamatukoguna toimimise võime on oluline omadus. Paljud arvutialgebrasüsteemid on mõeldud kasutamiseks interaktiivsetes keskkondades, kuid neid on raske automatiseerida või laiendada.
Seda saab kasutada Pythonis interaktiivselt või importida oma Pythoni programmi. Sellel on ka API-d, et seda hõlpsalt oma rutiinidega laiendada.
SymPy installimine
Kasutage oma keskkonda installimiseks lihtsalt allolevat käsku.
SymPy sümbolid
Alustame sellega kohe! Selle põhiobjektiks on sümbol. SymPys saate sümboli x genereerida, kirjutades:
Ülaltoodud kood genereerib sümboli x. Selles olevad sümbolid on mõeldud matemaatiliste sümbolite jäljendamiseks, mis esindavad tundmatuid väärtusi.
Selle tulemusena on allpool näidatud järgmine arvutus:
Nagu ülal näidatud, toimib sümbol x sarnaselt teadmata summaga. Kui soovite teha palju sümboleid, kirjutage need järgmiselt:
Sel juhul lõite kaks sümbolit, y ja z, samal hetkel. Neid sümboleid saab nüüd soovi korral liita, lahutada, korrutada ja jagada:
SymPy funktsioonid
1. sympify() funktsioon
Meetod sympify() teisendab suvalise avaldise SymPy avaldisesse. See teisendab standardseid Pythoni objekte, nagu täisarvud.
Stringid teisendatakse nii nende avaldisteks kui ka täisarvudeks jne.
2. evalf() funktsioon
See funktsioon hindab määratud arvavaldist kuni 100-kohalise ujukoma täpsusega.
Funktsioon aktsepteerib lisaks alamargumendina sümbolite arvväärtustega sõnastikuobjekti. Mõelge järgmisele fraasile:
Ujukoma täpsus on vaikimisi seatud 15 numbrile. Selle saab aga muuta mis tahes arvuks vahemikus 1 kuni 100.
Järgmist võrrandit hinnatakse 20-kohalise täpsusega.
3. Lambdify() funktsioon
Lambdify on funktsioon, mis teisendab selle avaldised Pythoni funktsioonideks. Meetod evalf() on ebaefektiivne avaldise hindamisel laias väärtusvahemikus.
Lambdify töötab sarnaselt lambda-funktsiooniga, välja arvatud see, et see tõlgib SymPy nimed kaasasoleva numbriteegi nimedeks, mis tavaliselt on NumPy.
Vaikimisi rakendatakse Lambdify matemaatika standardteegi rakendustele.
FUNKTSIOONID
Siin on loetletud mõned raamatukogu kõige olulisemad funktsioonid; palju rohkem pole kaasas, kuid saate neid vaadata siin.
1. Põhilised võimalused
- Põhiaritmeetika: toetatud on operaatorid +, -, *, / ja ** (võimsus)
- Polünoomi laiendus
- Täisarvud, ratsionaalarvud ja ujukid suvalise täpsusega
- Trigonomeetrilised, hüperboolsed ja eksponentsiaalfunktsioonid, juured, logaritmid, absoluutväärtus, sfäärilised harmoonilised, faktoriaalid ja gammafunktsioonid, zeta funktsioonid, polünoomid ja erifunktsioonid
- Sümbolid, mis on mittekommutatiivsed
- Sobivad mustrid
2. Arvestus
- Integreerimine: see meetod kasutab laiendatud Risch-Normani heuristikat
- Diferentseerimine.
- Piira funktsioone
- Laurent Taylori sari
3. Polünoomid
- Gröbneri sihtasutused
- Osamurdude lagunemine
- Jaotus, gcd Tulemused on põhiaritmeetika näited.
4. Kombinatoorika
- Permutatsioonid
- Halli ja Pruferi koodid
- Kombinatsioonid, vaheseinad, alamhulgad
- Mitmetahulised, Rubiku-, sümmeetrilised ja muud permutatsioonirühmad
5. Diskreetne matemaatika
- Kokkuvõtted
- Loogilised väljendid
- Binoomkoefitsiendid
- Arvuteooria
Rakendused
1. Ehituskalkulaator
2. Arvutialgebrasüsteemid
Erinevalt teistest arvutialgebrasüsteemidest peate selles sümboolsed muutujad funktsiooni Symbol() abil käsitsi deklareerima.
3. Arvestus
Sümboolse arvutussüsteemi suurim tugevus on võime teha sümboolselt igasuguseid arvutusi.
See võib lihtsustada avaldusi sümboolselt, arvutada tuletisi, integraale ja piire, lahendada võrrandeid, suhelda maatriksitega ja teha palju muud.
Söögiisu äratamiseks anname teile sümboolse jõu maitse.
Mida saate SymPyga veel teha?
Selle asemel, et täiendavate probleemidega põhjalikult tegeleda, lubage mul esitada teile loetelu ressurssidest, mis aitavad teil oma oskusi täiustada.
- Maatriksid ja lineaaralgebra: See võib töötada maatriksitega ja teha põhilisi lineaaralgebra toiminguid. Keel sarnaneb NumPy süntaksiga. Siiski on märkimisväärseid erinevusi. Alustuseks uurige maatriksid raamatukogus.
- Väljend: See kasutab avaldiste pidamiseks avaldistepuud, mis on puupõhine struktuur. Vaata väljenduspuud kui soovite nende sisemiste toimingute kohta rohkem teada saada.
- Tuletised ja integraalid: See suudab saavutada suurema osa sellest, mida soovite sissejuhatavas arvutamise tunnis õppida (miinus mõtlemine). Võite alustada meie funktsiooni vaatamisest diferentseerimine SymPys.
- Seos NumPyga: NumPy ja SymPy on mõlemad matemaatikaga seotud raamatukogud. Sellegipoolest on nad sisuliselt erinevad! NumPy töötab numbritega, samas kui sümboolsete väljenditega.
- Lihtsused: See on piisavalt intelligentne, et automaatselt lihtsustada väljendeid. Kui aga soovite selle üle täpsemat kontrolli, vaadake seda lihtsustusi.
Järeldus
SymPy on võimas sümboolse matemaatika raamatukogu.
Selle abil saate luua muutujaid ja funktsioone, samuti sümboolselt laiendada ja lihtsustada matemaatilisi väiteid ning lahendada võrrandeid, võrratusi ja isegi võrrandi-/võrratussüsteeme.
Funktsioone saab kirjutada nii skripti teksti kui ka otse terminali (või Jupyteri märkmikud), et saada tehtud arvutustest kiiret hinnangut ja paremat graafilist kujutist.
Kas olete valmis SymPyt rohkem uurima? Andke meile kommentaarides teada.
Jäta vastus