Taula de continguts[Amaga][Espectacle]
No hi ha cap desplaçament per les matemàtiques, tant si sou estudiant universitari com si treballeu en ciència de dades.
Fins i tot es podria argumentar que la ciència de dades és un tipus de matemàtica/estadística aplicada. NumPy, SciPy, Scikit-Learni TensorFlow són només algunes de les biblioteques de Python que tracten quantitativament les matemàtiques.
Tanmateix, només hi ha un competidor per tractar explícitament els símbols matemàtics: SymPy.
Descobrim-ho tot sobre SymPy.
Què és SymPy?
SymPy és una biblioteca de matemàtiques simbòliques de Python. Aspira a ser un sistema d'àlgebra informàtica (CAS) amb totes les funcions, mantenint el codi tan bàsic com sigui possible perquè sigui entenedor i fàcilment ampliable.
Està totalment escrit en Python. És senzill d'utilitzar ja que només es basa en mpmath, una biblioteca pura de Python per a l'aritmètica arbitrària de coma flotant.
Com a biblioteca, es va crear amb un èmfasi important en la usabilitat. L'extensibilitat és fonamental en el disseny de la seva interfície de programa d'aplicació (API).
Com a resultat, no fa cap intent de millorar el llenguatge Python. L'objectiu és que els usuaris puguin utilitzar-lo juntament amb altres Biblioteques Python en el seu flux de treball, ja sigui en un entorn interactiu o com a component programat d'un sistema més gran.
SymPy, com a biblioteca, no té un gràfic integrat interfície d'usuari (GUI). La biblioteca és:
- Gratuït, tant pel que fa a la parla com a la cervesa, perquè té llicència sota la llicència BSD.
- Basat en Python: està totalment desenvolupat en Python i utilitza Python com a llenguatge.
- Lleuger perquè només es basa en mpmath, un pur Biblioteca Python per a l'aritmètica arbitrària de coma flotant, cosa que fa que sigui fàcil d'utilitzar.
- Es pot incorporar a altres programes i modificar-se amb funcions personalitzades a més d'utilitzar-se com a eina interactiva.
Per què utilitzar SymPy?
Sage, un sistema d'àlgebra informàtica, també utilitza Python com a llenguatge de programació. Sage, en canvi, és enorme i requereix una descàrrega de més d'un gigabyte. Té l'avantatge de ser lleuger.
A més de ser compacte, no té cap dependència més que Python, la qual cosa permet utilitzar-lo pràcticament a tot arreu.
A més, els objectius de Sage i SymPy no són els mateixos. Sage aspira a ser un sistema matemàtic amb totes les funcions, i ho fa combinant tots els principals sistemes matemàtics de codi obert en un sol.
Quan utilitzeu una funció de Sage, com ara integrar, invoca un dels paquets de codi obert que conté. En realitat, està integrat a Sage. SymPy, en canvi, aspira a ser un sistema autònom, amb totes les funcionalitats implementades en ell mateix.
La seva capacitat de funcionar com a biblioteca és una característica important. Molts sistemes d'àlgebra informàtica estan pensats per ser utilitzats en entorns interactius, però són difícils d'automatitzar o ampliar.
Es pot utilitzar de manera interactiva a Python o importar-lo al vostre propi programa Python. També té API per ampliar-lo fàcilment amb les vostres pròpies rutines.
Instal·lant SymPy
Només cal que utilitzeu l'ordre següent per instal·lar-lo al vostre entorn.
Símbols SymPy
Comencem-hi ara! El seu objecte fonamental és un símbol. A SymPy, podeu generar un símbol x escrivint:
El codi anterior genera el símbol x. Els símbols que hi ha estan destinats a emular símbols matemàtics que representen valors desconeguts.
Com a resultat, a continuació es mostra el següent càlcul:
Com es mostra més amunt, el símbol x funciona de manera similar a una quantitat desconeguda. Si voleu fer molts símbols, escriu-los de la següent manera:
Heu creat dos símbols, y i z, al mateix moment en aquest cas. Aquests símbols ara es poden sumar, restar, multiplicar i dividir com es vulgui:
Funcions SymPy
1. funció simplificar ().
El mètode sympify() transforma una expressió arbitrària en una expressió SymPy. Converteix objectes estàndard de Python, com ara nombres enters.
Les cadenes es transformen a les seves expressions, així com a nombres enters, etc.
2. funció evalf().
Aquesta funció avalua una expressió numèrica especificada amb una precisió de coma flotant de fins a 100 dígits.
La funció també accepta un objecte de diccionari amb valors numèrics per a símbols com a argument secundari. Considereu la frase següent:
La precisió de coma flotant està establerta en 15 dígits per defecte. Tanmateix, es pot canviar a qualsevol nombre entre 1 i 100.
L'equació següent s'avalua amb una precisió de 20 dígits.
3. Funció Lambdify().
Lambdify és una funció que converteix les seves expressions en funcions Python. El mètode evalf() és ineficient quan s'avalua una expressió en una àmplia gamma de valors.
Lambdify funciona de manera similar a una funció lambda, excepte que tradueix els noms SymPy als noms de la biblioteca numèrica proporcionada, que generalment és NumPy.
Per defecte, Lambdify s'aplica a les implementacions de biblioteques estàndard de matemàtiques.
Característiques
Aquí s'enumeren un bon grapat de les característiques més significatives de la biblioteca; n'hi ha molts més no inclosos, però podeu consultar-los aquí.
1. Capacitats bàsiques
- Aritmètica fonamental: els operadors +, -, *, / i ** són compatibles (potència)
- Una expansió polinomial
- Nombres enters, racionals i flotants amb precisió arbitrària
- Funcions trigonomètriques, hiperbòliques i exponencials, arrels, logaritmes, valor absolut, harmònics esfèrics, factorials i funcions gamma, funcions zeta, polinomis i funcions especials
- Símbols no commutatius
- Patrons coincidents
2. Càlcul
- Integració: aquest mètode utilitza l'heurística ampliada de Risch-Norman
- Diferenciació.
- Funcions limitades
- Sèrie de Laurent Taylor
3. Polinomis
- Fundacions Gröbner
- Descomposició de fraccions parcials
- Divisió, mcd Els resultats són exemples d'aritmètica bàsica.
4. Combinatòria
- Permutacions
- Codis Gray i Prufer
- Combinacions, particions, subconjunts
- Grups de permutació polièdric, Rubik, simètric i altres
5. Matemàtiques discretes
- Sumes
- Expressions lògiques
- Coeficients binomials
- Teoria de nombres
Aplicacions
1. Calculadora d'edificis
2. Sistemes d'àlgebra informàtica
A diferència d'altres sistemes d'àlgebra informàtica, heu de declarar manualment variables simbòliques mitjançant la funció Symbol().
3. Càlcul
La capacitat d'un sistema de càlcul simbòlic per fer tot tipus de càlculs simbòlicament és el seu principal punt fort.
Pot simplificar enunciats, simbòlicament, calcular derivades, integrals i límits, resoldre equacions, interactuar amb matrius i fer molt més.
Per obrir-vos la gana, aquí teniu un tast de poder simbòlic.
Què més pots fer amb SymPy?
En lloc d'aprofundir en problemes addicionals, permeteu-me que us proporcioni una llista de recursos que us ajudaran a millorar les vostres habilitats:
- Matrius i àlgebra lineal: Pot treballar amb matrius i realitzar operacions bàsiques d'àlgebra lineal. El llenguatge és similar a la sintaxi de NumPy. Tanmateix, hi ha diferències notables. Per començar, investiga matrius a la biblioteca.
- Expressió: Aprofita un arbre d'expressions, que és una estructura basada en un arbre, per fer un seguiment de les expressions. Mira arbres d'expressió si voleu aprendre més sobre el seu funcionament intern.
- Derivades i integrals: Pot aconseguir la major part del que aprendríeu en una classe d'introducció al càlcul (menys el pensament). Podeu començar mirant la nostra funció diferenciació a SymPy.
- Relació amb NumPy: NumPy i SymPy són biblioteques relacionades amb les matemàtiques. Són, tanmateix, essencialment diferents! NumPy funciona amb números, mentre que funciona amb expressions simbòliques.
- Simplificacions: És prou intel·ligent com per simplificar automàticament les expressions. Tanmateix, si voleu un control més detallat sobre això, mireu-lo simplificacions.
Conclusió
SymPy és una poderosa biblioteca per a matemàtiques simbòliques.
Podeu utilitzar-lo per crear variables i funcions, així com ampliar i simplificar simbòlicament enunciats matemàtics i resoldre equacions, desigualtats i fins i tot sistemes d'equacions/desigualtats.
Podeu escriure les funcions tant al text de l'script com directament al terminal (o Quaderns Jupyter) per obtenir una avaluació ràpida i una millor representació gràfica dels càlculs realitzats.
Esteu preparat per explorar més SymPy? Feu-nos-ho saber als comentaris.
Deixa un comentari