SymPy es una biblioteca de Python para matemáticas simbólicas. Su objetivo es convertirse en un sistema de álgebra computacional (CAS) con todas las funciones, manteniendo el código lo más simple posible para que sea comprensible y fácilmente extensible. SymPy está escrito completamente en Python.
SymPy solo depende de mpmath, una biblioteca de Python pura para la aritmética de coma flotante arbitraria, lo que facilita su uso.
Instalación del módulo Sympy:
pip install sympy
SymPy como calculadora:
SymPy define los siguientes tipos numéricos: Racional y Entero . La clase Racional representa un número racional como un par de dos enteros, numerador y denominador, por lo que Racional(1, 2) representa 1/2, Racional(5, 2) 5/2 y así sucesivamente. La clase Integer representa el número entero.
Ejemplo 1 :
Python3
# import everything from sympy module from sympy import * a = Rational(5, 8) print("value of a is :" + str(a)) b = Integer(3.579) print("value of b is :" + str(b))
Producción:
value of a is :5/8 value of b is :3
SymPy usa mpmath en segundo plano, lo que hace posible realizar cálculos usando aritmética de precisión arbitraria. De esa forma, algunas constantes especiales, como exp, pi, oo (Infinito), se tratan como símbolos y se pueden evaluar con precisión arbitraria.
Ejemplo #2:
Python3
# import everything from sympy module from sympy import * # you can't get any numerical value p = pi**3 print("value of p is :" + str(p)) # evalf method evaluates the expression to a floating-point number q = pi.evalf() print("value of q is :" + str(q)) # equivalent to e ^ 1 or e ** 1 r = exp(1).evalf() print("value of r is :" + str(r)) s = (pi + exp(1)).evalf() print("value of s is :" + str(s)) rslt = oo + 10000 print("value of rslt is :" + str(rslt)) if oo > 9999999 : print("True") else: print("False")
Producción:
value of p is :pi^3 value of q is :3.14159265358979 value of r is :2.71828182845905 value of s is :5.85987448204884 value of rslt is :oo True
A diferencia de otros sistemas de álgebra computarizada, en SymPy debe declarar variables simbólicas explícitamente utilizando el método Symbol().
Ejemplo #3:
Python3
# import everything from sympy module from sympy import * x = Symbol('x') y = Symbol('y') z = (x + y) + (x-y) print("value of z is :" + str(z))
Producción:
value of z is :2*x
Cálculo:
El poder real de un sistema de cálculo simbólico como SymPy es la capacidad de realizar todo tipo de cálculos simbólicamente. SymPy puede simplificar expresiones, calcular derivadas, integrales y límites, resolver ecuaciones, trabajar con arrays y mucho, mucho más, y hacerlo todo simbólicamente. Aquí hay una pequeña muestra del tipo de poder simbólico del que es capaz SymPy, para abrir el apetito.
Ejemplo #4: Encuentra derivada, integración, límites, ecuación cuadrática.
Python3
# import everything from sympy module from sympy import * # make a symbol x = Symbol('x') # make the derivative of sin(x)*e ^ x ans1 = diff(sin(x)*exp(x), x) print("derivative of sin(x)*e ^ x : ", ans1) # Compute (e ^ x * sin(x)+ e ^ x * cos(x))dx ans2 = integrate(exp(x)*sin(x) + exp(x)*cos(x), x) print("indefinite integration is : ", ans2) # Compute definite integral of sin(x ^ 2)dx # in b / w interval of ? and ?? . ans3 = integrate(sin(x**2), (x, -oo, oo)) print("definite integration is : ", ans3) # Find the limit of sin(x) / x given x tends to 0 ans4 = limit(sin(x)/x, x, 0) print("limit is : ", ans4) # Solve quadratic equation like, example : x ^ 2?2 = 0 ans5 = solve(x**2 - 2, x) print("roots are : ", ans5)
Producción :
derivative of sin(x)*e^x : exp(x)*sin(x) + exp(x)*cos(x) indefinite integration is : exp(x)*sin(x) definite integration is : sqrt(2)*sqrt(pi)/2 limit is : 1 roots are : [-sqrt(2), sqrt(2)]