Tartalomjegyzék[Elrejt][Előadás]
A matematikát nem lehet megkerülni, akár egyetemista vagy, akár adattudományi területen dolgozol.
Akár vitatkozhatnánk is, hogy az adattudomány az alkalmazott matematika/statisztika egy fajtája. NumPy, SciPy, scikit-learnés TensorFlow csak néhány a matematikával mennyiségileg foglalkozó Python-könyvtárak közül.
A matematikai szimbólumokkal való kifejezett kezelésben azonban csak egy versenytárs van: a SymPy.
Tudjunk meg mindent a SymPy-ről.
Mi SymPy?
A SymPy egy Python szimbolikus matematikai könyvtár. Arra törekszik, hogy egy teljes értékű számítógépes algebrai rendszer (CAS) legyen, miközben a kódot a lehető legalapvetőbben tartja, hogy érthető és könnyen bővíthető legyen.
Teljesen Pythonban van megírva. Használata egyszerű, mivel csak az mpmath-ra, a tetszőleges lebegőpontos aritmetika tiszta Python-könyvtárára támaszkodik.
Könyvtárként a használhatóságra való jelentős hangsúlyt fektetve jött létre. A bővíthetőség kritikus fontosságú az alkalmazásprogram-felület (API) tervezésében.
Ennek eredményeként nem tesz kísérletet a Python nyelv fejlesztésére. A cél az, hogy a felhasználók másokkal együtt tudják használni Python könyvtárak munkafolyamataikban, akár interaktív környezetben, akár egy nagyobb rendszer programozott összetevőjeként.
A SymPy-nek, mint könyvtárnak nincs beépített grafikus eleme felhasználói felület (GUI). A könyvtár a következő:
- Ingyenes, mind a beszéd, mind a sör tekintetében, mert a BSD licenc alatt van.
- Python-alapú: Teljesen Pythonban fejlesztették ki, és a Python nyelvet használja.
- Könnyű, mert csak az mpmath-ra támaszkodik, egy tiszta Python könyvtár tetszőleges lebegőpontos aritmetika számára, ami egyszerűvé teszi a használatát.
- Beépíthető más programokba, és egyéni funkciókkal módosítható az interaktív eszközként való használat mellett.
Miért használja a SymPy-t?
A Sage, egy számítógépes algebrarendszer, szintén a Pythont használja programozási nyelvként. A Sage viszont óriási, több mint egy gigabájt letöltést igényel. Előnye, hogy könnyű.
Amellett, hogy kompakt, a Pythonon kívül nincs más függősége, így gyakorlatilag mindenhol használható.
Ezenkívül a Sage és a SymPy céljai nem ugyanazok. A Sage arra törekszik, hogy egy teljes értékű matematikai rendszer legyen, és ezt úgy teszi, hogy az összes fő nyílt forráskódú matematikai rendszert egyben egyesíti.
Ha Sage függvényt használ, mint például az integrate, akkor az meghívja a benne található nyílt forráskódú csomagok egyikét. A valóságban a Sage-be van beépítve. A SymPy ezzel szemben egy önálló rendszerre törekszik, amelyben minden funkcionalitást magában foglal.
Fontos jellemzője, hogy könyvtárként funkcionál. Sok számítógépes algebrarendszert interaktív környezetben való használatra terveztek, de nehéz automatizálni vagy bővíteni őket.
Használható interaktívan a Pythonban, vagy importálható a saját Python programjába. API-kkal is rendelkezik, amelyekkel egyszerűen bővítheti saját rutinjaival.
A SymPy telepítése
Egyszerűen használja az alábbi parancsot a telepítéshez a környezetében.
SymPy szimbólumok
Kezdjük vele most! Alapvető tárgya egy szimbólum. A SymPy programban x szimbólumot generálhat a következő írással:
A fenti kód az x szimbólumot generálja. A benne található szimbólumok célja az ismeretlen értékeket képviselő matematikai szimbólumok emulálása.
Ennek eredményeként az alábbi számítás látható:
Mint fentebb látható, az x szimbólum ismeretlen mennyiséghez hasonlóan működik. Ha sok szimbólumot szeretne készíteni, írja be őket a következőképpen:
Ebben az esetben két szimbólumot, y-t és z-t hozott létre ugyanabban a pillanatban. Ezek a szimbólumok most tetszés szerint hozzáadhatók, kivonhatók, szorozhatók és oszthatók:
SymPy függvények
1. sympify() függvény
A sympify() metódus egy tetszőleges kifejezést SymPy kifejezéssé alakít át. Szabványos Python objektumokat, például egész számokat konvertál.
A karakterláncokat a rendszer a kifejezéseikké alakítja, valamint egész számokká stb.
2. evalf() függvény
Ez a funkció egy adott numerikus kifejezést legfeljebb 100 számjegyű lebegőpontos pontossággal értékel ki.
A függvény emellett elfogad egy szótárobjektumot a szimbólumok számértékeivel subs argumentumként. Fontolja meg a következő mondatot:
A lebegőpontos pontosság alapértelmezés szerint 15 számjegy. Ez azonban bármilyen számra módosítható 1 és 100 között.
A következő egyenlet 20 számjegy pontossággal kerül kiértékelésre.
3. Lambdify() függvény
A Lambdify egy olyan függvény, amely a kifejezéseit Python-függvényekké alakítja. Az evalf() metódus nem hatékony, ha egy kifejezést sokféle értéktartományban értékel ki.
A Lambdify a lambda függvényhez hasonlóan működik, azzal a különbséggel, hogy a SymPy neveket a megadott numerikus könyvtár nevére fordítja, amely általában NumPy.
Alapértelmezés szerint a Lambdify a matematikai szabványos könyvtármegvalósításokra vonatkozik.
Jellemzők
A könyvtár legjelentősebb funkciói közül néhányat itt sorolunk fel; sok más nincs benne, de megnézheti őket itt.
1. Alapvető képességek
- Alapvető aritmetika: +, -, *, / és ** operátorok támogatottak (teljesítmény)
- Polinomiális bővítés
- Egész számok, racionális számok és lebegőpontok tetszőleges pontossággal
- Trigonometrikus, hiperbolikus és exponenciális függvények, gyökök, logaritmusok, abszolút érték, gömbharmonikusok, faktoriálisok és gammafüggvények, zéta-függvények, polinomok és speciális függvények
- Szimbólumok, amelyek nem kommutatívak
- Egyező minták
2. Kalkulus
- Integráció: Ez a módszer a kibővített Risch-Norman heurisztikát alkalmazza
- Különbségtétel.
- Limit függvények
- Laurent Taylor sorozata
3. Polinomok
- Gröbner alapítványok
- Résztörtek bontása
- Osztás, gcd Az eredmények az alapvető aritmetika példái.
4. Kombinatorika
- permutációk
- Gray és Prufer kódok
- Kombinációk, partíciók, részhalmazok
- Poliéder, Rubik, Szimmetrikus és egyéb permutációs csoportok
5. Diszkrét matematika
- Összegzések
- Logikai kifejezések
- Binomiális együtthatók
- Számelmélet
Alkalmazási területek
1. Építési kalkulátor
2. Számítógépes algebrarendszerek
Más számítógépes algebrarendszerekkel ellentétben a szimbolikus változókat manuálisan kell deklarálnia a Symbol() függvény segítségével.
3. Kalkulus
A szimbolikus számítási rendszer azon képessége, hogy szimbolikusan mindenféle számítást elvégezzen, a legfőbb erőssége.
Egyszerűsítheti az állításokat, szimbolikusan, származékokat, integrálokat és határértékeket számíthat ki, egyenleteket oldhat meg, kölcsönhatásba léphet mátrixokkal, és még sok minden másra képes.
Az étvágy felkeltésére íme egy kis ízelítő a szimbolikus erőből.
Mit tehetsz még a SymPy-vel?
Ahelyett, hogy további problémákkal foglalkoznék mélyrehatóan, hadd adjak meg egy listát azokról a forrásokról, amelyek segítenek készségei fejlesztésében:
- Mátrixok és lineáris algebra: Képes mátrixokkal dolgozni és alapvető lineáris algebrai műveleteket végrehajtani. A nyelv hasonló a NumPy szintaxisához. Vannak azonban jelentős különbségek. Kezdésként vizsgálja meg mátrixok könyvtárban.
- Kifejezés: A kifejezések nyomon követéséhez egy kifejezésfát használ, amely egy fa alapú struktúra. Megnézi kifejezési fák ha többet szeretne megtudni a belső működésükről.
- Származékok és integrálok: A bevezető kalkulus órán tanulnivalók nagy részét el tudja végezni (leszámítva a gondolkodást). Kezdheti azzal, hogy megnézi funkciónkat különbségtétel a SymPy-ben.
- Kapcsolat a NumPy-val: A NumPy és a SymPy egyaránt matematikával kapcsolatos könyvtárak. Ennek ellenére alapvetően különböznek egymástól! A NumPy számokkal, míg szimbolikus kifejezésekkel működik.
- Egyszerűsítések: Elég intelligens ahhoz, hogy automatikusan leegyszerűsítse a kifejezéseket. Ha azonban pontosabban szeretné szabályozni ezt, nézze meg egyszerűsítések.
Következtetés
A SymPy egy hatékony könyvtár a szimbolikus matematikához.
Használhatja változók és függvények létrehozására, valamint matematikai állítások szimbolikus kiterjesztésére és egyszerűsítésére, valamint egyenletek, egyenlőtlenségek, sőt egyenlet-/egyenlőtlenségrendszerek megoldására.
A függvényeket mind a szkript szövegébe, mind közvetlenül a terminálba írhatja (vagy Jupyter jegyzetfüzetek), hogy gyors értékelést és jobb grafikus ábrázolást kapjon az elvégzett számításokról.
Készen áll a SymPy további felfedezésére? Tudassa velünk a megjegyzésekben.
Hagy egy Válaszol