Calcula ecuación cuadrática en Python

Algunas veces, las calculadoras son una herramienta muy útil para acelerar cálculos. Pero llegan algunos momentos en que una calculadora no es suficiente, o mejor dicho, que el proceso es tan repetitivo que se puede optimizar más. Al fin y al cabo, somos humanos, no estamos hechos para hacer tareas repetitivas, sino para innovar, y lo repetitivo se lo dejamos a las máquinas.

Es por eso que aprender a usar las máquinas es muy importante para nosotros. Y qué mejor que poder programar en ellas para que hagan exactamente lo que queremos. Esto lo hice porque en el instituto me dejaron como deber llenar una página entera con el resultado de ecuaciones cuadráticas, para practicar. Sin embargo, yo ya sabía como se hacían y, como ya dije, veo innecesario como humano tener que hacer estos trabajos repetitivos.

Así que he aquí: Como crear un programa que calcule ecuaciones cuadráticas con Python 3.

Variables

Para comenzar, es necesario definir nuestras variables. Una ecuación cuadrática tiene 3 variables (ó valores iniciales) que van a cambiar el resultado final. Usualmente, las llamamos "A", "B" y "C".

Tomemos por ejemplo la ecuación:

$$ x^2 - 5x + 6 = 0

$$

Para esta ecuación, las variables son: $A=1$, $B=-5$, y $C=6$. Esto se puede escribir en Python de la misma manera.

a = 1
b = -5
c = 6

Con estas líneas, nos aseguramos que los valores queden guardados en la memoria del computador mientras el programa es ejecutado. Ahora vamos por los cálculos.

Calcular Delta $\Delta$

El cálculo de Delta viene siendo el cuadrado de B menos el producto de 4 por A por C, ó más fácil.

$$ B^2 - 4AC

$$

Que escrito en Python se ve así:

delta = b**2 - 4*a*c

Recordemos la función de los siguientes operadores:

  • X**Y: Operador de potencia, para elevar $X$ a la $Y$ ($X^Y$),
  • X*Y: Operador de multiplicación, como escribir $X \times Y$,
  • X-Y: Operador resta.

Luego de esto, el resultado se guarda en la variable delta. Estamos listos para calcular el resultado.

Verificar Delta

Antes de sacar la raíz cuadrada directamente, vamos a verificar que delta sea un valor positivo, así podemos mostrar un mensaje de error en caso de que sea negativo. Para esto podemos usar la instrucción if (si condicional):

if delta < 0:
    print("ERROR: El valor de delta es negativo")
    print(f"delta = {delta}")
    exit()

Desmitifiquemos este código:

  1. La instrucción if condición : entra en el bloque de código solo si la condición es VERDADERA (True),
  2. La condición delta > 0 es verdadera cuando Delta es mayor a 0,
  3. Si la condición es verdadera, la función print() va a mostrar un error en la consola,
  4. Luego, de nuevo print() va a mostrar el valor que dio Delta. La f antes de las comillas dobles le dice a Python que queremos insertar variables en la cadena de texto. Para insertar una variable, la escribimos entre llaves {nombre_de_variable},
  5. Finalmente, la función exit() sale del programa para evitar que cualquier código que se encuentre después del if no se ejecute.

Calcular raíz de Delta

Ahora que sabemos que Delta es 0 o un número positivo, podemos proceder a sacar su raíz cuadrada. Para eso, es necesario importar la función sqrt de la librería math:

from math import sqrt 

Esta linea de código debe ir al comienzo del archivo.

Es práctica usual en la mayoría de lenguajes importar las librerías al comienzo del archivo, para que sea lo primero que se carga antes del programa.

Una vez la función cargada, podemos a usarla:

raiz_de_delta = sqrt(delta)

Calcular la ecuación

Y ahora sí, vamos a calcular la ecuación!

Recordemos como es la ecuación: "menos B" más ó menos "raíz de delta" dividido por "doble A":

$$ \frac{-B \pm \sqrt{\Delta}}

$$

De estos 3 valores, ya tenemos 1. Los otros 2 son más fáciles de calcular:

menos_b = -b
doble_a = 2 * a

Supongo que no es necesario volver a explicar estos operadores.

Ya para terminar, el resultado de la ecuación (para $X_1$ y $X_2$) se calcularía así:

x_1 = (menos_b + raiz_de_delta) / doble_a
x_2 = (menos_b - raiz_de_delta) / doble_a

Podemos mostrar esto en la consola simplemente con print():

print("Valor para x1:")
print(x_1)
print("Valor para x2:")
print(x_2)

Pero a mí me gusta más hacerlo de manera estilizada, mostrando un poco el proceso:

print(f"\033[4m - {b} + √({delta}) \033[0m = {x_1}")
print(f" 2 x {a}")
print("")
print(f"\033[4m - {b} - √({delta}) \033[0m = {x_2}")
print(f" 2 x {a}")

Conclusión

Espero que este texto te sea útil. Si te gustan los retos, te gustará tal vez intentar que:

  • Todo el código este integrado en una función
  • La función pueda calcular muchas ecuaciones
  • El programa imprima en la consola cada paso mostrando los resultados