Resolver ecuaciones algebraicas usando Python
-
Resolver ecuaciones algebraicas en una variable usando el método
solve()
del paqueteSymPy
-
Resolver ecuaciones algebraicas en múltiples variables usando el paquete
SymPy
- Resolver ecuaciones algebraicas en dos variables múltiples
- Resolver ecuaciones algebraicas en tres variables múltiples
Python tiene una biblioteca para matemáticas simbólicas, a saber, SymPy
. Esta biblioteca contiene utilidades para resolver problemas y conceptos matemáticos complejos como matrices, cálculo, geometría, matemáticas discretas, integrales, criptografía, álgebra, etc.
Podemos usar esta biblioteca para resolver ecuaciones algebraicas. Este artículo mostrará cómo utilizar SymPy
para resolver ecuaciones algebraicas en Python.
A continuación se muestran algunas formas en las que podemos instalar el módulo SymPy
en nuestras máquinas.
Uso del Administrador de paquetes pip
para instalar Sympy
Utilice el siguiente comando para instalar el paquete SymPy
usando pip
.
pip install sympy
o
pip3 install sympy
Uso de Anaconda para instalar Sympy
Anaconda es una distribución gratuita de Python que incluye la biblioteca SymPy
en su entorno por defecto. Uno puede actualizar la versión existente usando el siguiente comando.
conda update sympy
Para obtener una descripción detallada de los métodos discutidos anteriormente y algunos otros métodos disponibles para instalar la biblioteca SymPy
, consulte la documentación oficial aquí.
Resolver ecuaciones algebraicas en una variable usando el método solve()
del paquete SymPy
La biblioteca SymPy
tiene una función solve()
que puede resolver ecuaciones algebraicas. Esta función acepta los siguientes argumentos principales.
f
: una ecuación algebraica.símbolos
: Las variables para las que se debe resolver la ecuación.dict
: una bandera booleana para devolver una lista de asignaciones de soluciones.set
: una bandera booleana para una lista de símbolos y un conjunto de tuplas de soluciones.check
: una bandera booleana para probar las soluciones obtenidas en la expresión algebraica.minimal
: una bandera booleana para una prueba rápida y mínima de la solución.
Ahora que hemos terminado con una breve teoría, aprendamos a usar este método solve()
para resolver ecuaciones algebraicas con la ayuda de algunos ejemplos. Consulte el siguiente código para el mismo.
from sympy.solvers import solve
from sympy import Symbol
x = Symbol("x")
print(solve(x ** 2 - 1, x))
print(solve(x ** 3 + x ** 2 + x + 1, x))
print(solve(x ** 3 - 0 * x ** 2 + 4 * x - 5, x))
Producción :
[-1, 1]
[-1, -i, i]
[1, -1/2 - √19i / 2, -1/2 + √19i / 2]
Resolver ecuaciones algebraicas en múltiples variables usando el paquete SymPy
Para resolver ecuaciones algebraicas en múltiples variables, necesitamos múltiples ecuaciones.
Por ejemplo, necesitamos al menos dos de estas ecuaciones si tenemos que resolver ecuaciones algebraicas en dos variables. Para resolver ecuaciones algebraicas en tres variables, necesitamos al menos tres de estas ecuaciones.
Y para resolver tales ecuaciones, necesitamos tres utilidades, a saber, símbolos
, Eq
, resolver
, del módulo SymPy
.
La función símbolos
transforma cadenas de variables en instancias de la clase Símbolo
.
La clase Eq
representa una relación igual entre dos objetos, específicamente expresiones. Por ejemplo, si tenemos una ecuación x + y = 3
, entonces x + y
y 3
son los dos objetos o expresiones. Para x + y - 5 = x + 6
, x + y - 5
y x + 6
son los dos objetos.
Y el método solve()
utiliza los dos anteriores para resolver las ecuaciones.
Veamos cómo podemos usar estas utilidades para resolver ecuaciones algebraicas en dos y tres variables con la ayuda de algunos ejemplos relevantes.
Resolver ecuaciones algebraicas en dos variables múltiples
Para entender cómo resolver ecuaciones algebraicas en dos valores usando las utilidades discutidas anteriormente, consideraremos los siguientes dos ejemplos.
Ejemplo 1:
x + y = 5
x - y = 5
Ejemplo 2:
2 * x + 4 * y = 10
4 * x + 2 * y = 30
Consulte el siguiente código de Python para ver el primer ejemplo.
from sympy import symbols, Eq, solve
x, y = symbols("x y")
equation_1 = Eq((x + y), 5)
equation_2 = Eq((x - y), 5)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
solution = solve((equation_1, equation_2), (x, y))
print("Solution:", solution)
Producción :
Equation 1: Eq(x + y, 5)
Equation 2: Eq(x - y, 5)
Solution: {x: 5, y: 0}
Consulte el siguiente código de Python para ver el segundo ejemplo.
from sympy import symbols, Eq, solve
x, y = symbols("x y")
equation_1 = Eq((2 * x + 4 * y), 10)
equation_2 = Eq((4 * x + 2 * y), 30)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
solution = solve((equation_1, equation_2), (x, y))
print("Solution:", solution)
Producción :
Equation 1: Eq(2*x + 4*y, 10)
Equation 2: Eq(4*x + 2*y, 30)
Solution: {x: 25/3, y: -5/3}
Resolver ecuaciones algebraicas en tres variables múltiples
Para entender cómo resolver ecuaciones algebraicas en tres valores usando las utilidades discutidas anteriormente, consideraremos los siguientes dos ejemplos.
Ejemplo 1:
x + y + z = 5
x - y + z = 5
x + y - z = 5
Ejemplo 2:
2 * x - 4 * y + 6 * z = 10
4 * x + 2 * y + 6 * z = 30
4 * x + 2 * y - 10 * z = 50
Consulte el siguiente código de Python para ver el primer ejemplo.
from sympy import symbols, Eq, solve
x, y, z = symbols("x y z")
equation_1 = Eq((x + y + z), 5)
equation_2 = Eq((x - y + z), 5)
equation_3 = Eq((x + y - z), 5)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
print("Equation 3:", equation_3)
solution = solve((equation_1, equation_2, equation_3), (x, y, z))
print("Solution:", solution)
Producción :
Equation 1: Eq(x + y + z, 5)
Equation 2: Eq(x - y + z, 5)
Equation 3: Eq(x + y - z, 5)
Solution: {x: 5, z: 0, y: 0}
Consulte el siguiente código de Python para ver el segundo ejemplo.
from sympy import symbols, Eq, solve
x, y, z = symbols("x y z")
equation_1 = Eq((2 * x - 4 * y + 6 * z), 10)
equation_2 = Eq((4 * x + 2 * y + 6 * z), 30)
equation_3 = Eq((4 * x + 2 * y - 10 * z), 50)
print("Equation 1:", equation_1)
print("Equation 2:", equation_2)
print("Equation 3:", equation_3)
solution = solve((equation_1, equation_2, equation_3), (x, y, z))
print("Solution:", solution)
Producción :
Equation 1: Eq(2*x - 4*y + 6*z, 10)
Equation 2: Eq(4*x + 2*y + 6*z, 30)
Equation 3: Eq(4*x + 2*y - 10*z, 50)
Solution: {x: 37/4, z: -5/4, y: 1/4}