Resolviendo ecuaciones de segundo grado con Python

Índice

Introducción:

Resolver ecuaciones de segundo grado, en ocasiones puede tornarse algo tedioso, como programador me dedique a encontrar una forma de resolver este tipo de ecuaciones usando mis super poderes, hoy te mostrare un procedimiento muy sencillo para resolver ecuaciones cuadráticas, ¿estas listo?, pues comencemos.

Resolviendo ecuaciones de segundo grado con Python:

Muy bien, antes de escribir código, les recordare la forma de una ecuación de segundo grado, la cual es la siguiente:





Si la ecuación que te a dejado el profesor no es igual a cero, puedes pasarla a su forma canónica (Igualarla a cero).


Ok, otra cosa que deben saber es que haremos uso de una formula matemática muy conocida, la cual es, la formula de bhaskara, que tiene la siguiente estructura:





Y se preguntaran, ¿Como haremos uso de esa formula en un código de Python? pues si ven la formula desde otro punto de vista se darán cuenta, de que a qui lo mas importante no es ser un programador experto, si no, tener mucha lógica.


¿Listos? pues comencemos con el código 😀


Lo primero que haremos sera importar la librería math:


import math


Luego pediremos 3 entradas de datos:


#Pedimos la entrada de los tres valores de la ecuación
a = float(input("Ingrese el valor de A: ")) # a = cociente del termino cuadrático
b = float(input("Ingrese el valor de B: ")) # b = cociente de termino lineal
c = float(input("Ingrese el valor de C: ")) # c = cociente de termino independiente


Como se habrán dado cuenta, hemos pedido la entrada de los valores de la
ecuación en su forma canónica:


Excelente, ya que tenemos los valores, podemos empezar a utilizar la formula, lo primero que haremos sera calcular el valor de, b al cuadrado menos 4 por a por c, si se fijan, es el valor que irá dentro de la radical, este valor lo guardaremos en una variable x, veamos como hacer todo esto:


x = (b**2)-(4*a*c)


Como pueden observar, la variable x ahora contiene al valor de, b al cuadrado menos 4 por a por c, como a este valor tendremos que calcular su raíz cuadrada, tenemos que asegurarnos que si este valor es menor que cero, mostrar un mensaje diciendo que la solución de esta ecuación, solo es posible en números complejos, recuerden que no podemos calcular la raíz cuadrada de un numero negativo, ahora convirtamos todo lo que e dicho, a código:


#Si x es menor que 0, no tendrá una solución dentro de las reglas de los números reales
if x < 0:
print("Solucion solo en numeros complejos")


¿Ahora, que pasaría si x es mayor que cero? el procedimiento de la formula seguiría.
Como pueden ver el valor de (-b) lo podemos sumar y restar, de esta forma, tendremos
2 valores distintos que resolverán la ecuación, cada valor lo guardaremos en una variable
diferente, veamos como hacerlo:


x1 = (-b + math.sqrt(x)) / (2*a)
x2 = (-b - math.sqrt(x)) / (2*a)


Como pueden apreciar, lo que hacemos en la primera variable es sumar -b + el 
valor de la raiz de x, luego ese valor es dividido entre 2 por a. y en la segunda 
variable es lo mismo, lo único que cambia, es que en vez de sumar, 
restamos -b con la raiz de x.

Ahora que tenemos la solución, solo nos falta mostrarla en la pantalla:


#Mostramos ambos valores
print("X1: ", x1)
print("X2: ", x2)

Ahora, probemos el programa, are un ejemplo usando la siguiente ecuación:
7x**2 + 3x - 4 = 0
El programa nos debería quedar así:






Como se darán cuenta, al ingresar los términos, también ingreso el signo 
que lo acompaña, como es el caso de -4, en los 2 primeros no los coloco,
ya que así el programa sabe que son términos positivos, esto es muy
importante de saber al momento de probar el programa.


Listo, ahora, tu trabajo sera probar el programa, déjame saber en los comentarios,
cual fue el resultado final del programa, ¿Te funciono? 😀


puedes ver el código completo desde mi repositorio de Github: Código Completo


Si tienes una pregunta, con gusto la responderé 😀



  1. PythonDiario dice:

    Excelente entrada

    1. Luis Salcedo dice:

      Gracias 😀

  2. Anónimo dice:

    Excelente Trabajo, me sirvio mucho

  3. Julio dice:

    Me sirvio mucho, muchas gracias.

  4. Anónimo dice:

    bellakeo @carlesguardia2003@gmail.com

    1. Unknown dice:

      klk tu aze manin

  5. Anónimo dice:

    Excelente entrada. Estaba buscando esta info para una asignación del instituto. Encontré un site que tienen una validación adicional para de complejos. Quizás les sirva, les dejo la página por acá http://iterando.online/ejercicios-resueltos/raices-de-la-ecuacion-cuadratica-en-python/

  6. Unknown dice:

    Gracias! Es posible hacer el cálculo de las raices complejas (conjugadas), si el discriminante es menor que 0. Agregamos "i" al cálculo correspondiente.
    Llegué aquí intentando hacer este ejer desde hace un rato. No me está saliendo, ya que primero debo considerar que si a=0, entonces no es posible realizar el cálculo.
    Estoy moviendo las líneas de código pero no consigo dar con la solución que deseo, ja.

  7. karevis dice:

    ¿Cómo puedo hacer eso pero que me arroje los datos en una ventana emergente? usando Alert.

Deja una respuesta

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

Subir
White Monkey