Python | Primeros pasos con el módulo SymPy

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)]

Publicación traducida automáticamente

Artículo escrito por ankthon y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *