Blog
Una ecuación de segundo grado o ecuación cuadrática de una variable es aquella que tiene como expresión general:
Siendo ‘x’ la variable y ‘a’, ‘b’ y ‘c’ los coeficientes constantes. ‘a’ es el coeficiente de la variable cuadrática, ‘b’ es el coeficiente de la variable lineal y ‘c’ es el término independiente.
Resolución de Ecuaciones de 2do Grado
Resolver una ecuación de 2do grado consiste en hallar las raíces o ceros del polinomio. Las raíces son los elementos del dominio de una función f(x) tal que se cumple:
Siendo x dicho elemento del dominio.
Formula de Bhaskara
La forma mas común de hallar las raíces de un polinomio es utilizando la formula de Bhaskara:
¿Cómo implementar esta fórmula en Python? Inicialmente se ve complicado, pero utilizando la lógica y las técnicas y facilidades que nos brinda Python, esto se convierte en una tarea sencilla.
- Importar ‘sqrt’: Ya que para el resultado necesitamos calcular una raíz cuadrada, se importa la función ‘sqrt’ del módulo ‘math’:
from math import sqrt
- Obtener los coeficientes de la ecuación: con la función ‘input()’ se le solicita al usuario que ingrese los valores de los coeficientes de la ecuación. Ya que la función ‘input()’ convierte la entrada en datos de tipo string, se utiliza la función ‘int()’ para convertir los datos de tipo string a tipo int:
A = int(input("Ingrese el coeficiente de la variable cuadrática\n")) B = int(input("Ingrese el coeficiente de la variable lineal\n")) C = int(input("Ingrese el término independiente\n"))
- segurar que la entrada de ‘sqrt()’ sea positiva: Ya que la raíz cuadrada de un numero negativo no existe, es necesario que los valores que se le introduzcan a la función ‘sqrt()’ sean positivos. Es necesario manejar también el caso en el que este valor sea negativo:
if ((B**2)-4*A*C) < 0: print("La solución de la ecuación es con numeros complejos") else: x1 = (-B+sqrt(B**2-(4*A*C)))/(2*A) # Fórmula de Bhaskara parte positiva x2 = (-B-sqrt(B**2-(4*A*C)))/(2*A) # Fórmula de Bhaskara parte negativa print("Las soluciones de la ecuación son:") print(x1) print(x2)
‘x1’ y ‘x2’ almacenan los resultados de la aplicación de la fórmula.
De esta forma se resuelve una ecuación cuadrática con un programa en Python. A continuación el código del programa completo:
from math import sqrt A = int(input("Ingrese el coeficiente de la variable cuadrática\n")) B = int(input("Ingrese el coeficiente de la variable lineal\n")) C = int(input("Ingrese el término independiente\n")) x1= 0 x2= 0 if ((B**2)-4*A*C) < 0: print("La solución de la ecuación es con números complejos") else: x1 = (-B+sqrt(B**2-(4*A*C)))/(2*A) x2 = (-B-sqrt(B**2-(4*A*C)))/(2*A) print("Las soluciones de la ecuación son:") print(x1) print(x2)
También podemos hacerlo con programación orientada a objetos de la siguiente manera:
from math import sqrt class Ecuaciones2Grado(): def calcular(self, A, B, C): if ((B**2)-4*A*C) < 0: print("La solución de la ecuación es con números complejos") else: x1 = (-B+sqrt(B**2-(4*A*C)))/(2*A) x2 = (-B-sqrt(B**2-(4*A*C)))/(2*A) print("""\ Las soluciones de la ecuación son: x1 = {} x2 = {} """.format(x1, x2)) ec1 = Ecuaciones2Grado() ec1.calcular(1,-5,6) ec2 = Ecuaciones2Grado() ec2.calcular(2,-7,3)
Si ejecutamos el código obtenemos por pantalla lo siguiente:
λ python ecuaciones.py Las soluciones de la ecuación son: x1 = 3.0 x2 = 2.0 Las soluciones de la ecuación son: x1 = 3.0 x2 = 0.5
Pero fijate que el programa anterior, nos pedia ingresar los datos por teclado, para este caso no es así. Pero también podemos integrarlo y para ello solo basta con crear un método que permita dicha posibilidad
Vamos a llamar a este método como interfaz y además debemos crear el método constructor luego instanciar el objeto para que así funcione como un script:
from math import sqrt class Ecuaciones2Grado(): def __init__(self): self.interfaz() def calcular(self, A, B, C): if ((B**2)-4*A*C) < 0: print("La solución de la ecuación es con números complejos") else: x1 = (-B+sqrt(B**2-(4*A*C)))/(2*A) x2 = (-B-sqrt(B**2-(4*A*C)))/(2*A) print("""\ Las soluciones de la ecuación son: x1 = {} x2 = {} """.format(x1, x2)) def interfaz(self): A = int(input("Ingrese el coeficiente de la variable cuadrática\n")) B = int(input("Ingrese el coeficiente de la variable lineal\n")) C = int(input("Ingrese el término independiente\n")) self.calcular(A, B, C) Ecuaciones2Grado()
Si ejecutamos obtenemos:
λ python ecuaciones.py" Ingrese el coeficiente de la variable cuadrática 1 Ingrese el coeficiente de la variable lineal -5 Ingrese el término independiente 6 Las soluciones de la ecuación son: x1 = 3.0 x2 = 2.0
Así es como se resuelven ecuaciones cuadráticas con python, estos dos ejemplos hacen lo mismo solo que uno es con programación estructurada y otro con programación orientada a objetos.
do not work !
thanks! it is working now