Innehållsförteckning[Dölj][Visa]
Det går inte att komma runt matematik, oavsett om du är universitetsstudent eller arbetar inom datavetenskap.
Man kan till och med hävda att datavetenskap är en typ av tillämpad matematik/statistik. NumPy, SciPy, Scikit-Lär digoch TensorFlow är bara några av Python-biblioteken som hanterar matematik kvantitativt.
Det finns dock bara en konkurrent för att explicit hantera matematiska symboler: SymPy.
Låt oss ta reda på allt om SymPy.
Vad är SymPy?
SymPy är ett Python symboliskt matematikbibliotek. Det strävar efter att vara ett fullfjädrat datoralgebrasystem (CAS) samtidigt som koden är så grundläggande som möjligt för att vara begriplig och lätt att expandera.
Det är helt skrivet i Python. Det är enkelt att använda eftersom det bara förlitar sig på mpmath, ett rent Python-bibliotek för godtycklig flyttalsaritmetik.
Som ett bibliotek skapades det med en betydande betoning på användbarhet i åtanke. Utökningsbarhet är avgörande i utformningen av dess applikationsprogramgränssnitt (API).
Som ett resultat gör den inga försök att förbättra Python-språket. Målet är att användarna ska kunna använda det tillsammans med andra Python-bibliotek i deras arbetsflöde, oavsett om det är i en interaktiv miljö eller som en programmerad komponent i ett större system.
SymPy, som ett bibliotek, saknar en inbyggd grafik användargränssnitt (GUI). Biblioteket är:
- Gratis, både vad gäller tal och öl, eftersom den är licensierad under BSD-licensen.
- Python-baserat: Det är helt utvecklat i Python och använder Python som språk.
- Lättviktig eftersom den bara förlitar sig på mpmath, en ren Python bibliotek för godtycklig flyttalsaritmetik, vilket gör det enkelt att använda.
- Kan integreras i andra program och modifieras med anpassade funktioner förutom att användas som ett interaktivt verktyg.
Varför använda SymPy?
Sage, ett datoralgebrasystem, använder också Python som sitt programmeringsspråk. Sage, å andra sidan, är enorm och kräver en nedladdning på mer än en gigabyte. Den har fördelen av att vara lätt.
Förutom att den är kompakt har den inga andra beroenden än Python, vilket gör att den kan användas praktiskt taget överallt.
Dessutom är syftena med Sage och SymPy inte desamma. Sage strävar efter att vara ett komplett matematiksystem, och det gör det genom att kombinera alla de huvudsakliga matematiska systemen med öppen källkod till ett.
När du använder en Sage-funktion, till exempel integrera, anropar den ett av paketen med öppen källkod som den innehåller. I verkligheten är det inbyggt i Sage. SymPy, å andra sidan, strävar efter att vara ett fristående system, med all funktionalitet implementerad i sig själv.
Dess förmåga att fungera som ett bibliotek är en viktig egenskap. Många datoralgebrasystem är avsedda att användas i interaktiva miljöer, men de är svåra att automatisera eller utöka.
Den kan användas interaktivt i Python eller importeras till ditt eget Python-program. Den har också API:er för att enkelt utöka den med dina egna rutiner.
Installerar SymPy
Använd bara kommandot nedan för att installera i din miljö.
SymPy-symboler
Låt oss börja med det nu! Dess grundläggande föremål är en symbol. I SymPy kan du generera en symbol x genom att skriva:
Koden ovan genererar symbolen x. Symboler i den är avsedda att efterlikna matematiska symboler som representerar okända värden.
Som ett resultat visas följande beräkning nedan:
Som visas ovan fungerar symbolen x på samma sätt som ett okänt värde. Om du vill göra många symboler, skriv dem så här:
Du skapade två symboler, y och z, samtidigt i det här fallet. Dessa symboler kan nu adderas, subtraheras, multipliceras och divideras efter önskemål:
SymPy-funktioner
1. sympify() funktion
Metoden sympify() omvandlar ett godtyckligt uttryck till ett SymPy-uttryck. Den konverterar vanliga Python-objekt, som heltal.
Strängar omvandlas till sina uttryck såväl som heltal, etc.
2. evalf() funktion
Denna funktion utvärderar ett specificerat numeriskt uttryck med en flyttalsprecision på upp till 100 siffror.
Funktionen accepterar dessutom ett ordboksobjekt med numeriska värden för symboler som ett subs-argument. Tänk på följande fras:
Flyttalsnoggrannheten är inställd på 15 siffror som standard. Detta kan dock ändras till valfritt tal mellan 1 och 100.
Följande ekvation utvärderas med en precision på 20 siffror.
3. Lambdify() funktion
Lambdify är en funktion som konverterar sina uttryck till Python-funktioner. Metoden evalf() är ineffektiv när man utvärderar ett uttryck över ett brett spektrum av värden.
Lambdify fungerar på samma sätt som en lambda-funktion, förutom att den översätter SymPy-namn till namnen på det tillhandahållna numeriska biblioteket, som vanligtvis är NumPy.
Som standard tillämpas Lambdify på implementeringar av matematiska standardbibliotek.
Funktioner
En handfull av bibliotekets viktigaste funktioner listas här; det finns många fler som inte ingår, men du kan kolla in dem här..
1. Kärnfunktioner
- Grundläggande aritmetik: operatorerna +, -, *, / och ** stöds (power)
- En polynomexpansion
- Heltal, rational och flytningar med godtycklig precision
- Trigonometriska, hyperboliska och exponentiala funktioner, rötter, logaritmer, absolutvärde, sfäriska övertoner, faktorial- och gammafunktioner, zetafunktioner, polynom och specialfunktioner
- Symboler som inte är kommutativa
- Matchande mönster
2. Kalkyl
- Integration: Denna metod använder den utökade Risch-Norman-heuristiken
- Differentiering.
- Begränsa funktioner
- Laurent Taylors serie
3. Polynom
- Gröbner stiftelser
- Nedbrytning av partiella fraktioner
- Division, gcd Resultanter är exempel på grundläggande aritmetik.
4. Kombinatorik
- permutationer
- Grå- och Prufer-koder
- Kombinationer, partitioner, delmängder
- Polyedriska, Rubik-, symmetriska och andra permutationsgrupper
5. Diskret matematik
- Sammanställningar
- Logiska uttryck
- Binomialkoefficienter
- Talteori
Applikationer
1. Byggnadsräknare
2. Datoralgebrasystem
Till skillnad från andra datoralgebrasystem måste du manuellt deklarera symboliska variabler i den med hjälp av funktionen Symbol().
3. Kalkyl
Förmågan hos ett symboliskt beräkningssystem att göra alla möjliga beräkningar symboliskt är dess stora styrka.
Det kan förenkla påståenden, symboliskt, beräkna derivator, integraler och gränser, lösa ekvationer, interagera med matriser och göra mycket mer.
För att väcka din aptit, här är ett smakprov på symbolisk kraft.
Vad mer kan du göra med SymPy?
Istället för att drilla vidare om ytterligare frågor på djupet, låt mig ge dig en lista med resurser som hjälper dig att förbättra dina färdigheter:
- Matriser och linjär algebra: Den kan arbeta med matriser och utföra grundläggande linjära algebraoperationer. Språket liknar NumPys syntax. Det finns dock anmärkningsvärda skillnader. Till att börja, undersök matriser i biblioteket.
- Uttryck: Det utnyttjar ett uttrycksträd, som är en trädbaserad struktur, för att hålla reda på uttryck. Titta på uttrycksträd om du vill lära dig mer om deras inre funktioner.
- Derivater och integraler: Den kan åstadkomma det mesta du skulle lära dig i en inledande kalkylklass (minus tänkandet). Du kan börja med att titta på vår funktion differentiering i SymPy.
- Relation med NumPy: NumPy och SymPy är båda matematikrelaterade bibliotek. De är ändå väsentligt olika! NumPy arbetar med siffror, medan det fungerar med symboliska uttryck.
- Förenklingar: Det är intelligent nog att automatiskt förenkla uttryck. Men om du vill ha mer finkornig kontroll över detta, titta på dess förenklingar.
Slutsats
SymPy är ett kraftfullt bibliotek för symbolisk matematik.
Du kan använda den för att skapa variabler och funktioner, samt symboliskt utöka och förenkla matematiska påståenden och lösa ekvationer, ojämlikheter och till och med system av ekvationer/ojämlikheter.
Du kan skriva funktionerna både i skriptets text och direkt i terminalen (eller Jupyter anteckningsböcker) för att få en snabb bedömning och en bättre grafisk skildring av gjorda beräkningar.
Är du redo att utforska mer av SymPy? Låt oss veta i kommentarerna.
Kommentera uppropet