Inhoudsopgave[Zich verstoppen][Laten zien]
Je kunt niet om wiskunde heen, of je nu een universiteitsstudent bent of in de datawetenschap werkt.
Je zou zelfs kunnen stellen dat datawetenschap een vorm van toegepaste wiskunde/statistiek is. NumPy, SciPy, Scikit-Leren en TensorFlow zijn slechts enkele van de Python-bibliotheken die kwantitatief met wiskunde omgaan.
Er is echter maar één concurrent voor het expliciet omgaan met wiskundige symbolen: SymPy.
Laten we alles te weten komen over SymPy.
Wat is SymPy?
SymPy is een Python symbolische wiskundebibliotheek. Het streeft ernaar een volledig computeralgebrasysteem (CAS) te zijn, terwijl de code zo eenvoudig mogelijk wordt gehouden om begrijpelijk en gemakkelijk uitbreidbaar te zijn.
Het is volledig geschreven in Python. Het is eenvoudig te gebruiken omdat het alleen vertrouwt op mpmath, een pure Python-bibliotheek voor willekeurige drijvende-kommaberekeningen.
Als bibliotheek is het gemaakt met een grote nadruk op bruikbaarheid in het achterhoofd. Uitbreidbaarheid is van cruciaal belang bij het ontwerp van de applicatieprogramma-interface (API).
Als gevolg hiervan doet het geen poging om de Python-taal te verbeteren. Het doel is dat gebruikers het naast andere kunnen gebruiken Python-bibliotheken in hun workflow, of dit nu in een interactieve omgeving is of als een geprogrammeerd onderdeel van een groter systeem.
SymPy mist als bibliotheek een ingebouwde grafische gebruikersinterface (GUI). De bibliotheek is:
- Gratis, zowel wat betreft spraak als bier, omdat het is gelicentieerd onder de BSD-licentie.
- Python-gebaseerd: het is volledig ontwikkeld in Python en gebruikt Python als zijn taal.
- Lichtgewicht omdat het alleen vertrouwt op mpmath, een pure Python-bibliotheek voor willekeurige drijvende-kommaberekeningen, waardoor het eenvoudig te gebruiken is.
- Kan worden opgenomen in andere programma's en worden aangepast met aangepaste functies, naast dat het als een interactief hulpmiddel kan worden gebruikt.
Waarom SymPy gebruiken?
Sage, een computeralgebrasysteem, gebruikt ook Python als programmeertaal. Sage daarentegen is enorm en vereist een download van meer dan een gigabyte. Het heeft het voordeel dat het licht van gewicht is.
Behalve dat het compact is, heeft het geen andere afhankelijkheden dan Python, waardoor het praktisch overal kan worden gebruikt.
Bovendien zijn de doelstellingen van Sage en SymPy niet hetzelfde. Sage streeft ernaar een volledig wiskundig systeem te zijn, en doet dit door alle belangrijke open-source wiskundige systemen in één te combineren.
Wanneer u een Sage-functie gebruikt, zoals integreren, roept het een van de open-sourcepakketten aan die het bevat. In werkelijkheid is het ingebouwd in Sage. SymPy daarentegen streeft ernaar een op zichzelf staand systeem te zijn, met alle functionaliteit erin geïmplementeerd.
Het vermogen om als bibliotheek te functioneren is een belangrijk kenmerk. Veel computeralgebrasystemen zijn bedoeld voor gebruik in interactieve omgevingen, maar zijn moeilijk te automatiseren of uit te breiden.
Het kan interactief worden gebruikt in Python of worden geïmporteerd in uw eigen Python-programma. Het heeft ook API's om het eenvoudig uit te breiden met uw eigen routines.
SymPy installeren
Gebruik eenvoudig de onderstaande opdracht om in uw omgeving te installeren.
SymPy-symbolen
Laten we er nu mee aan de slag gaan! Het fundamentele object is een symbool. In SymPy kun je een symbool x genereren door te schrijven:
De bovenstaande code genereert het symbool x. Symbolen erin zijn bedoeld om wiskundige symbolen na te bootsen die onbekende waarden vertegenwoordigen.
Als resultaat wordt hieronder de volgende berekening weergegeven:
Zoals hierboven weergegeven, werkt het symbool x op dezelfde manier als een onbekend bedrag. Als je veel symbolen wilt maken, schrijf ze dan als volgt op:
U hebt in dit geval twee symbolen, y en z, op hetzelfde moment gemaakt. Deze symbolen kunnen nu naar wens worden opgeteld, afgetrokken, vermenigvuldigd en gedeeld:
SymPy-functies
1. sympify() functie
De methode sympify() zet een willekeurige uitdrukking om in een SymPy-uitdrukking. Het converteert standaard Python-objecten, zoals gehele getallen.
Strings worden getransformeerd naar hun uitdrukkingen, evenals gehele getallen, enz.
2. evalf() functie
Deze functie evalueert een gespecificeerde numerieke uitdrukking met een drijvende-kommaprecisie van maximaal 100 cijfers.
De functie accepteert bovendien een woordenboekobject met numerieke waarden voor symbolen als subargument. Denk aan de volgende zin:
De nauwkeurigheid met drijvende komma is standaard ingesteld op 15 cijfers. Dit kan echter worden gewijzigd in elk getal tussen 1 en 100.
De volgende vergelijking wordt geëvalueerd met een nauwkeurigheid van 20 cijfers.
3. Lambdify() functie
Lambdify is een functie die zijn uitdrukkingen omzet in Python-functies. De methode evalf() is inefficiënt bij het evalueren van een uitdrukking voor een groot aantal waarden.
Lambdify werkt op dezelfde manier als een lambda-functie, behalve dat het SymPy-namen vertaalt naar de namen van de verstrekte numerieke bibliotheek, die over het algemeen NumPy is.
Lambdify wordt standaard toegepast op standaard bibliotheekimplementaties voor wiskunde.
Voordelen
Een handvol van de belangrijkste kenmerken van de bibliotheek worden hier vermeld; er zijn er nog veel meer die niet zijn inbegrepen, maar je kunt ze bekijken hier.
1. Kernmogelijkheden
- Fundamentele rekenkunde: +, -, *, /, en ** operators worden ondersteund (macht)
- Een polynomiale expansie
- Integers, rationals en floats met willekeurige precisie
- Trigonometrische, hyperbolische en exponentiële functies, wortels, logaritmen, absolute waarde, sferische harmonischen, faculteiten en gammafuncties, zeta-functies, polynomen en speciale functies
- Symbolen die niet-commutatief zijn
- Overeenkomende patronen
2. Berekening
- Integratie: deze methode maakt gebruik van de uitgebreide Risch-Norman heuristiek
- Differentiatie.
- Functies beperken
- De serie van Laurent Taylor
3. Veeltermen
- Gröbner-stichtingen
- Ontleding van partiële breuken
- Delen, gcd Resultanten zijn voorbeelden van basisrekenkunde.
4. Combinatoriek
- Permutaties
- Grijze en Prufer-codes
- Combinaties, partities, subsets
- Veelvlakkige, Rubik-, symmetrische en andere permutatiegroepen
5. Discrete wiskunde
- sommaties
- Logische uitdrukkingen
- Binomiale coëfficiënten
- Nummer theorie
Toepassingen
1. Bouwcalculator
2. Computeralgebrasystemen
In tegenstelling tot andere computeralgebrasystemen, moet u er handmatig symbolische variabelen in declareren met de functie Symbol().
3. Berekening
Het vermogen van een symbolisch rekensysteem om allerlei soorten berekeningen symbolisch uit te voeren, is zijn grootste kracht.
Het kan verklaringen symbolisch vereenvoudigen, afgeleiden, integralen en limieten berekenen, vergelijkingen oplossen, interactie hebben met matrices en nog veel meer.
Om je eetlust op te wekken, hier is een voorproefje van symbolische kracht.
Wat kunt u nog meer doen met SymPy?
In plaats van diepgaand door te dralen over aanvullende problemen, wil ik u een lijst met bronnen geven om u te helpen uw vaardigheden te verbeteren:
- Matrices en lineaire algebra: Het kan met matrices werken en elementaire lineaire algebra-bewerkingen uitvoeren. De taal is vergelijkbaar met de syntaxis van NumPy. Er zijn echter opvallende verschillen. Onderzoek om te beginnen matrices In de bibliotheek.
- Expressie: Het maakt gebruik van een expressiestructuur, een op bomen gebaseerde structuur, om expressies bij te houden. Kijk naar expressie bomen als je meer wilt weten over hun innerlijke werking.
- Derivaten en integralen: Het kan het meeste bereiken van wat je zou leren in een inleidende wiskundeles (minus het denken). U kunt beginnen door naar onze functie te kijken differentiatie in SymPy.
- Relatie met NumPy: NumPy en SymPy zijn beide wiskundegerelateerde bibliotheken. Toch zijn ze wezenlijk anders! NumPy werkt met getallen, terwijl het werkt met symbolische uitdrukkingen.
- vereenvoudigingen: Het is intelligent genoeg om uitdrukkingen automatisch te vereenvoudigen. Als je hier echter meer gedetailleerde controle over wilt hebben, kijk dan eens naar de vereenvoudigingen.
Conclusie
SymPy is een krachtige bibliotheek voor symbolische wiskunde.
Je kunt het gebruiken om variabelen en functies te creëren, maar ook om wiskundige uitspraken symbolisch uit te breiden en te vereenvoudigen en om vergelijkingen, ongelijkheden en zelfs stelsels van vergelijkingen/ongelijkheden op te lossen.
U kunt de functies zowel in de tekst van het script als rechtstreeks in de terminal schrijven (of Jupyter notitieboekjes) om een snelle beoordeling en een betere grafische weergave van de uitgevoerde berekeningen te krijgen.
Ben je klaar om meer van SymPy te ontdekken? Laat het ons weten in de reacties.
Laat een reactie achter