Resolver ecuaciones algebraicas usando Python

Vaibhav Vaibhav 30 enero 2023
  1. Resolver ecuaciones algebraicas en una variable usando el método solve() del paquete SymPy
  2. Resolver ecuaciones algebraicas en múltiples variables usando el paquete SymPy
  3. Resolver ecuaciones algebraicas en dos variables múltiples
  4. Resolver ecuaciones algebraicas en tres variables múltiples
Resolver ecuaciones algebraicas usando Python

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}
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python Math