Sisällysluettelo[Piilottaa][Näytä]
Matematiikasta ei pääse kiertämään, olitpa sitten yliopisto-opiskelija tai tietotieteen parissa työskentelevä.
Voidaan jopa väittää, että datatiede on eräänlainen soveltava matematiikka/tilasto. NumPy, SciPy, Scikit-Opija TensorFlow ovat vain muutamia Python-kirjastoista, jotka käsittelevät matematiikkaa kvantitatiivisesti.
On kuitenkin vain yksi kilpailija, joka käsittelee matemaattisia symboleja: SymPy.
Otetaan selvää SymPystä.
Mikä on SymPy?
SymPy on Pythonin symbolinen matematiikan kirjasto. Se pyrkii olemaan täysin varusteltu tietokonealgebrajärjestelmä (CAS), samalla kun koodi on mahdollisimman yksinkertainen, jotta se olisi ymmärrettävää ja helposti laajennettavissa.
Se on kirjoitettu kokonaan Pythonilla. Sitä on helppo käyttää, koska se perustuu vain mpmathiin, joka on puhdas Python-kirjasto mielivaltaiseen liukulukuaritmetiikkaan.
Kirjastona se luotiin käytettävyyttä ajatellen merkittävästi. Laajennettavuus on kriittistä sen sovellusohjelmaliittymän (API) suunnittelussa.
Tämän seurauksena se ei yritä parantaa Python-kieltä. Tavoitteena on, että käyttäjät voivat käyttää sitä muiden rinnalla Python-kirjastot työnkulussaan joko interaktiivisessa ympäristössä tai suuremman järjestelmän ohjelmoituna osana.
SymPystä kirjastona puuttuu sisäänrakennettu grafiikka käyttöliittymä (GUI). Kirjasto on:
- Ilmainen, sekä puheen että oluen suhteen, koska se on lisensoitu BSD-lisenssillä.
- Python-pohjainen: Se on täysin kehitetty Pythonissa ja käyttää Python-kielenä.
- Kevyt, koska se luottaa vain mpmathiin, puhdas Python-kirjasto mielivaltaiseen liukulukuaritmetiikkaan, mikä tekee sen käytöstä helppoa.
- Voidaan liittää muihin ohjelmiin ja muokata mukautetuilla toiminnoilla sen lisäksi, että sitä voidaan käyttää interaktiivisena työkaluna.
Miksi käyttää SymPyä?
Sage, tietokonealgebrajärjestelmä, käyttää myös Pythonia ohjelmointikielenä. Sage puolestaan on valtava, ja se vaatii yli gigatavun latauksen. Sen etuna on kevyt.
Sen lisäksi, että se on kompakti, sillä ei ole muita riippuvuuksia kuin Python, joten sitä voidaan käyttää käytännössä kaikkialla.
Lisäksi Sagen ja SymPyn tavoitteet eivät ole samat. Sage pyrkii olemaan monipuolinen matemaattinen järjestelmä, ja se tekee sen yhdistämällä kaikki tärkeimmät avoimen lähdekoodin matemaattiset järjestelmät yhdeksi.
Kun käytät Sage-funktiota, kuten integrate, se kutsuu jonkin sen sisältämistä avoimen lähdekoodin paketeista. Todellisuudessa se on rakennettu Sageen. SymPy puolestaan pyrkii olemaan itsenäinen järjestelmä, jossa kaikki toiminnot on toteutettu siihen itse.
Sen kyky toimia kirjastona on tärkeä ominaisuus. Monet tietokonealgebrajärjestelmät on tarkoitettu käytettäviksi interaktiivisissa ympäristöissä, mutta niitä on vaikea automatisoida tai laajentaa.
Sitä voidaan käyttää vuorovaikutteisesti Pythonissa tai tuoda omaan Python-ohjelmaasi. Siinä on myös API:t, joiden avulla voit helposti laajentaa sitä omilla rutiineillasi.
SymPyn asennus
Asenna ympäristöösi käyttämällä alla olevaa komentoa.
SymPy-symbolit
Aloitetaan nyt! Sen perusesine on symboli. SymPyssä voit luoda symbolin x kirjoittamalla:
Yllä oleva koodi luo symbolin x. Siinä olevat symbolit on tarkoitettu jäljittelemään matemaattisia symboleja, jotka edustavat tuntemattomia arvoja.
Tämän seurauksena seuraava laskenta on esitetty alla:
Kuten yllä näkyy, symboli x toimii samalla tavalla kuin tuntematon määrä. Jos haluat tehdä useita symboleja, kirjoita ne seuraavasti:
Tässä tapauksessa loit kaksi symbolia, y ja z, samalla hetkellä. Nämä symbolit voidaan nyt lisätä, vähentää, kertoa ja jakaa halutulla tavalla:
SymPy-toiminnot
1. sympify()-funktio
Sympify()-menetelmä muuttaa mielivaltaisen lausekkeen SymPy-lausekkeeksi. Se muuntaa tavallisia Python-objekteja, kuten kokonaislukuja.
Merkkijonot muunnetaan niiden lausekkeiksi sekä kokonaisluvuiksi jne.
2. evalf()-funktio
Tämä toiminto arvioi tietyn numeerisen lausekkeen liukulukutarkkuudella, joka on enintään 100 numeroa.
Funktio hyväksyy lisäksi subs-argumentiksi sanakirjaobjektin, jossa on numeroarvot symboleille. Harkitse seuraavaa lausetta:
Liukulukutarkkuus on oletusarvoisesti 15 numeroa. Tämä voidaan kuitenkin muuttaa mihin tahansa numeroon välillä 1-100.
Seuraava yhtälö lasketaan 20 numeron tarkkuudella.
3. Lambdify()-funktio
Lambdify on funktio, joka muuntaa lausekkeet Python-funktioiksi. Evalf()-menetelmä on tehoton arvioitaessa lauseketta laajalla arvoalueella.
Lambdify toimii samalla tavalla kuin lambda-funktio, paitsi että se kääntää SymPy-nimet toimitetun numeerisen kirjaston nimiksi, joka on yleensä NumPy.
Oletuksena Lambdifya käytetään matemaattisten standardikirjastojen toteutuksissa.
Ominaisuudet
Kourallinen kirjaston tärkeimmistä ominaisuuksista on lueteltu tässä; monia muita ei sisälly, mutta voit tarkistaa ne tätä.
1. Ydinominaisuudet
- Perusaritmetiikka: +, -, *, / ja ** -operaattoreita tuetaan (teho)
- Polynomilaajennus
- Kokonaisluvut, rationaalit ja kellukkeet mielivaltaisella tarkkuudella
- Trigonometriset, hyperboliset ja eksponentiaaliset funktiot, juuret, logaritmit, itseisarvot, pallomaiset harmoniset, tekijä- ja gammafunktiot, Zeta-funktiot, polynomit ja erikoisfunktiot
- Symbolit, jotka eivät ole kommutatiivisia
- Yhteensopivia kuvioita
2. Calculus
- Integrointi: Tämä menetelmä käyttää laajennettua Risch-Norman-heuristia
- Erilaistuminen.
- Rajoita toimintoja
- Laurent Taylorin sarja
3. Polynomit
- Gröbnerin säätiöt
- Osittaisten jakeiden hajoaminen
- Jako, gcd Tulokset ovat esimerkkejä perusaritmetiikasta.
4. Kombinatoriikka
- permutaatiot
- Harmaa- ja Prufer-koodit
- Yhdistelmät, osiot, osajoukot
- Polyhedral-, Rubik-, Symmetric- ja muut permutaatioryhmät
5. Diskreetti matematiikka
- Summitteet
- Loogiset lausekkeet
- Binomiaaliset kertoimet
- Numeroteoria
Sovellukset
1. Rakennuslaskin
2. Tietokonealgebrajärjestelmät
Toisin kuin muissa tietokonealgebrajärjestelmissä, sinun on ilmoitettava siinä olevat symboliset muuttujat manuaalisesti Symbol()-funktiolla.
3. Calculus
Symbolisen laskentajärjestelmän kyky tehdä kaikenlaisia laskutoimituksia symbolisesti on sen suurin vahvuus.
Se voi yksinkertaistaa lauseita, symbolisesti, laskea derivaattoja, integraaleja ja rajoja, ratkaista yhtälöitä, olla vuorovaikutuksessa matriisien kanssa ja tehdä paljon muuta.
Lisää ruokahalua tässä maistiainen symbolisesta voimasta.
Mitä muuta voit tehdä SymPyllä?
Sen sijaan, että pohdiskelisin muita asioita perusteellisesti, haluan tarjota sinulle luettelon resursseista, jotka auttavat sinua parantamaan taitojasi:
- Matriisit ja lineaarialgebra: Se voi työskennellä matriisien kanssa ja suorittaa perusalgebran operaatioita. Kieli on samanlainen kuin NumPyn syntaksi. Huomattavia eroja on kuitenkin. Aloita tutkimalla matriisit kirjastossa.
- Ilmaisu: Se hyödyntää lausekepuuta, joka on puupohjainen rakenne, seuratakseen lausekkeita. Katso ilmaisupuita jos haluat oppia lisää heidän sisäisestä toiminnastaan.
- Johdannaiset ja integraalit: Se voi saavuttaa suurimman osan siitä, mitä opit johdantolaskennan luokassa (ilman ajattelua). Voit aloittaa katsomalla toimintoamme erilaistuminen SymPyssä.
- Suhde NumPyyn: NumPy ja SymPy ovat molemmat matematiikkaan liittyviä kirjastoja. Ne ovat kuitenkin olennaisesti erilaisia! NumPy toimii numeroiden kanssa, kun taas se toimii symbolisten ilmaisujen kanssa.
- Yksinkertaistukset: Se on tarpeeksi älykäs yksinkertaistamaan lausekkeita automaattisesti. Kuitenkin, jos haluat tarkemman hallinnan tähän, katso sitä yksinkertaistuksia.
Yhteenveto
SymPy on tehokas symbolisen matematiikan kirjasto.
Voit käyttää sitä muuttujien ja funktioiden luomiseen, sekä symbolisesti laajentamiseen ja yksinkertaistamiseen matemaattisia lauseita ja ratkaisemaan yhtälöitä, epäyhtälöitä ja jopa yhtälö-/epäyhtälöjärjestelmiä.
Voit kirjoittaa funktiot sekä skriptin tekstiin että suoraan päätteeseen (tai Jupyter-muistikirjat) saadaksesi nopean arvion ja paremman graafisen kuvauksen tehdyistä laskelmista.
Oletko valmis tutkimaan lisää SymPystä? Kerro meille kommenteissa.
Jätä vastaus