jueves, 25 de febrero de 2016

Solución de una ecuación de segundo grado.

Problema: Hallar la solución de una ecuación de segundo grado. Tomar en cuenta las raíces complejas y las reales.

Lenguaje utilizado: Python

# Calcular las raices de una ecuacion de segundo grado.
# Tomar en cuenta las raices reales e imaginaria.

from decimal import *

# Paso 1: crear la funcion
def solucion(a,b,c):
    # devolver las raices reales o imaginarias
    # Paso 2: calcular el discriminante
    d = b*b - (4*a*c)
    # Paso 3: Llevandoso de la matematica detras de esto,
    # calculamos las raices dependiendo del discriminante
    if d < 0:
        #print ("DEBUG: determinante negativo.")
        # Si esto sucede, entonces las soluciones son imaginarias.
        # La parte real de la solucion sera igual a cero.
        xr1 = 0
        xi1 = d**0.5/(2*a)
        xr2 = 0
        xi2 = -(d**0.5/(2*a))
        return "Xi1:",xi1, "Xi2:",xi2
    elif d > 0:
        #print ("DEBUG: determinante postivo")
        # Si esto sucede, entonces existen dos soluciones reales distintas
        xr1 = -b/(2*a) + (d**0.5)/(2*a)
        xi1 = 0
        xr2 = -b/(2*a) - (d**0.5) / (2*a)
        xi2 = 0
        return "X1:",xr1, "X2:",xr2
    else:
        #print ("DEBUG: determinante igual a cero")
        # Si esto sucede, es porque d es igual a cero. En este caso, las soluciones son reales e iguales.
        xr1 = -b/(2*a) + (d**0.5)/(2*a)
        xr2 = xr1
        return "Xr1:",xr1, "Xr2:",xr2
   
a = input("Coeficiente a: ")
b = input("Coeficiente b: ")
c = input("Coeficiente c: ")
print (solucion(int(a),int(b),int(c)))


Si tienes otra solución más eficiente compártela con la comunidad!  Gracias.

dpb, Daniel Peña. 

No hay comentarios:

Publicar un comentario

Comparte tu opinión con nosotros...