Python/Su primer programa en Python/Ecuación de segundo grado en Python

La resolución de una Ecuación de Segundo Grado: [1] [2] , como un aplicación en Python, puede ser la siguiente, desarrollado según la Programación Estructurada [3] [4] , y fundamentada en la condición if, descompone el problema de resolver la ecuación en los posibles subcasos o casos sencillo para resolver cada uno por separado.

El script

editar
print('    Resolver una ecuación de segundo grado.')
print('    Con coeficientes reales.')
print('')

print('    ax² + bx + c = 0')
print('')

a=float(input('    Valor de: a = '))
b=float(input('    Valor de: b = '))
c=float(input('    Valor de: c = '))
print('')

print('a =', a)
print('b =', b)
print('c =', c)
print('')

if a == 0 and b == 0 and c == 0:
    print('caso: 0')
    print('    0 = 0. Verdadero, no hay ecuación.')
    
elif a == 0 and b == 0 and c != 0:
    print('caso: 1')
    print('    ', c, '≠ 0. Falso, no hay ecuación.')
    
elif a == 0 and b != 0 and c == 0:
    print('caso: 2')
    print('    Ecuación de priner grado.')
    print('    x = 0.0')
    
elif a == 0 and b != 0 and c != 0:
    print('caso: 3')
    print('    Ecuación de priner grado.')
    print('    x =', -c/b)
    
elif a != 0 and b == 0 and c == 0:
    print('caso: 4')
    print('    Ecuación de segundo grado.')
    print('    Solución doble real.')
    print('    x1 = x2 = 0.0')
    
elif a != 0 and b == 0 and c != 0:
    if a*c < 0:
        print('caso: 5.1')
        print('    Ecuación de segundo grado.')
        print('    Con dos soluciones reales.')
        print('    x1 = ', (-c/a)**(1/2))
        print('    x2 =', -(-c/a)**(1/2))
        
    elif a*c > 0:
        print('caso: 5.2')
        print('    Ecuación de segundo grado.')
        print('    Con dos soluciones imaginarias.')
        print('    x1 = ', (c/a)**(1/2), 'j')
        print('    x2 =', -(c/a)**(1/2), 'j')

    else:
        print('Este caso no puede darse. ¿Por que? 1')
        
elif a != 0 and b != 0 and c == 0:
    print('caso: 6')
    print('    Ecuación de segundo grado.')
    print('    Con dos soluciones reales.')
    print('    x1 = 0.0')
    print('    x2 =', -b/a)

elif a != 0 and b != 0 and c != 0:
    D= b**2 - 4 * a * c # D = Discriminante
    if D < 0:
        print('caso: 7.1')
        print('    Ecuación de segundo grado.')
        print('    Con dos soluciones complejas.')
        print('    x1 =', -b/2/a, '+', abs((-D)**(1/2)/2/a), 'j')
        print('    x2 =', -b/2/a, '–', abs((-D)**(1/2)/2/a), 'j')

    elif D == 0:
        print('caso: 7.2')
        print('    Ecuación de segundo grado.')
        print('    Solución doble real.')
        print('    x1 = x2 =', -b/2/a)
              
    elif D > 0:
        print('caso: 7.3')
        print('    Ecuación de segundo grado.')
        print('    Con dos soluciones reales.')
        print('    x1 =', (-b+D**(1/2))/2/a)
        print('    x2 =', (-b-D**(1/2))/2/a)

    else:
        print('Este caso no puede darse. ¿Por que? 2')

else:
    print('Este caso no puede darse. ¿Por que? 3')

Análisis del procedimiento

editar

En la secuencia de código anterior, que resuelve un ecuación de segundo grado de coeficientes reales podemos diferenciar las siguientes partes.

identificación del programa

editar

En un principio se presenta un testo señalando el propósito del programa, de modo que el usuario conozca su propósito y la función que desempeña:

print('    Resolver una ecuación de segundo grado.')
print('    Con coeficientes reales.')
print('')

print('    ax² + bx + c = 0')
print('')

Solicitud de información

editar

Para resolver la ecuación es necesario conocer los coeficientes de esa ecuación:

a=float(input('    Valor de: a = '))
b=float(input('    Valor de: b = '))
c=float(input('    Valor de: c = '))
print('')

A continuación se presentan, las valores de esos coeficientes del mismo modo que se guardan en las variables correspondientes:

print('a =', a)
print('b =', b)
print('c =', c)
print('')

ver la forma en la que se señalan los valores y la forma en la que se presentan esos mismos valores.

Cuerpo del procedimiento

editar

La separación de los distintos casos que puedan darse se realiza en esta parte, es necesario tener en cuenta que el usuario puede teclear cualquier valor en cualquiera de los datos, esta situación tiene que ser prevista por el programador, (programación a la defensiva), evitando datos fuera de rango o el intentar realizar operaciones imposibles que den condiciones de error, división por cero, raíz de números negativos, ...

Caso: 0; a=0, b=0, c=0

editar

En este caso, el usuario señalo cero para los tres coeficientes, cual debe ser la respuesta del programa.

 

Es resultado es verdadero para todo valer de x:

 

En este caso x puede tomar cualquier valor real y la ecuación sera siempre: Verdadera.

  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = 0
    Valor de: b = 0
    Valor de: c = 0

a = 0.0
b = 0.0
c = 0.0
 
caso: 0
   0 = 0. Verdadero, no hay ecuación.

Caso: 1; a=0, b=0, c≠0

editar

En este caso, los coeficientes a y b son cero y c es distinto de cero:

 

En este caso se produce una contradicción, dado que c no puede ser igual y distinto de cero, siendo una situación imposible. No hay ningún valor de x que pueda hacer que esa afirmación sea Verdadera.

  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = 0
    Valor de: b = 0
    Valor de: c = 5

a = 0.0
b = 0.0
c = 5.0
 
caso: 1
    5.0 ≠ 0. Falso, no hay ecuación.

Caso: 2; a=0, b≠0, c=0

editar

Si los coeficientes a y c son cero y b es distinto de cero:

 

Su b por x es cero, y b es distinto de cero, x tiene que ser cero, necesariamente y como única solución.

  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = 0
    Valor de: b = 3
    Valor de: c = 0

a = 0.0
b = 3.0
c = 0.0
 
caso: 2
    Ecuación de priner grado.
    x = 0

Caso: 3; a=0, b≠0, c≠0

editar

Si a=0 no se trata de una ecuación de segundo grado, si es una ecuación de primer grado, el valor de x en este caso es:

 

dado que b≠0 entonces x tiene valor real, dado que c≠0 entonces x es distinto de cero. Si b y c tienen el mismo signo entonces x tiene signo negativo, si b y c tienen signos diferentes entonces x toma valor positivo.

  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = 0
    Valor de: b = 3
    Valor de: c = 2

a = 0.0
b = 3.0
c = 2.0
 
caso: 3
    Ecuación de priner grado.
    x = -0.6666666666666666

Caso: 4; a≠0, b=0, c=0

editar

Dado que a≠0 se trata de una ecuación de segundo grado:

 

Se cumple la ecuación y para todo valor de a, el valor de x es cero.

  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = 3
    Valor de: b = 0
    Valor de: c = 0

a = 3.0
b = 0.0
c = 0.0
 
caso: 4
    Ecuación de segundo grado.
    Solución doble real.
    x1 = x2 = 0

Caso: 5; a≠0, b=0, c≠0

editar

Con a≠0 la ecuación es de segundo grado:

 

con b=0 el valor de x sera la raíz de menos c partido por a, según el signo de a y c, tendremos soluciones reales o imaginarias.

Caso 5.1; a*c < 0
editar

Si el producto de a por c es menor de cero:

 

Para b = 0 y a y c de distinto signo se cumple que: x admite dos soluciones reales, estos dos valores son opuestos.

  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = 2
    Valor de: b = 0
    Valor de: c = -4

a = 2.0
b = 0.0
c = -4.0
 
caso: 5.1
    Ecuación de segundo grado.
    Con dos soluciones reales.
    x1 =  1.4142135623730951
    x2 = -1.4142135623730951
Caso 5.2; a*c > 0
editar

Si el producto de a por c es mayor de cero:

 

Para b = 0 y a y c del mismo signo se cumple que: x admite dos soluciones imaginarias, estos dos valores son conjugados.

  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = 2
    Valor de: b = 0
    Valor de: c = 4

a = 2.0
b = 0.0
c = 4.0
 
caso: 5.2
    Ecuación de segundo grado.
    Con dos soluciones imaginarias.
    x1 =  1.4142135623730951 i
    x2 = -1.4142135623730951 i

Caso: 6; a≠0, b≠0, c=0

editar

Al ser a distinto de cero es una ecuación de segundo grado, al ser c igual a cero tenemos:

 

Si c = 0 la incógnita x tiene dos soluciones, x1 = 0 y una segunda solución x2 que tomara valor negativo si a y b son del mismo signo y tomara valor positivo si son de distinto signo.

 
  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = -2
    Valor de: b = 4
    Valor de: c = 0

a = -2.0
b = 4.0
c = 0.0
 
caso: 6
    Ecuación de segundo grado.
    Con dos soluciones reales.
    x1 = 0.0
    x2 = 2.0

Caso: 7; a≠0, b≠0, c≠0

editar

La forma de una ecuación de segundo grado:

 

con a, b y c distinto de cero se puede considerar el caso general, que tiene como solución:

 

Donde el discriminante: D es:

 

Según este discriminante: D, sea menor, igual o mayor que cero, tenemos tres caso diferentes:

Caso 7.1; D<0
editar

Si D<0 la raíz de un número negativo es imaginario, por lo tanto:

 

operando tenemos:

 

Como que D tiene valor negativo:

 

Con lo que se obtienen las dos soluciones:

 
 

Estas dos soluciones son: un número complejo, y su conjugado.

  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = 1
    Valor de: b = -2
    Valor de: c = 2

a = 1.0
b = -2.0
c = 2.0
 
caso: 7.1
    Ecuación de segundo grado.
    Con dos soluciones complejas.
    x1 = 1.0 + 1.0 i
    x2 = 1.0 - 1.0 i
Caso 7.2; D=0
editar

Desde la ecuación:

 

Si D=0:

 

Siendo una solución doble de valor real.

  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = 1
    Valor de: b = 2
    Valor de: c = 1

a = 1.0
b = 2.0
c = 1.0
 
caso: 7.2
    Ecuación de segundo grado.
    Solución doble real.
    x1 = x2 = -1.0
Caso 7.3; D>0
editar

Si D>0 la raíz de un número positivo es un número real, por tanto:

 
 

Obteniendo dos soluciones reales.

  • Ejemplo:
    Resolver una ecuación de segundo grado.
    Con coeficientes reales.

    ax² + bx + c = 0

    Valor de: a = 2
    Valor de: b = 3
    Valor de: c = -2

a = 2.0
b = 3.0
c = -2.0
 
caso: 7.3
    Ecuación de segundo grado.
    Con dos soluciones reales.
    x1 = 0.5
    x2 = -2.0

Véase también

editar

Python: Índice · Introducción · Enlaces

 

Instalación de Python · Generalidades · Funciones, constantes nativas · Tipos de datos nativos · Herramientas de control de flujo · Definición de funciones · Leer y escribir archivos · Su primer programa en Python · Entrada y salida · Estructuras de datos · Errores y excepciones

Interfaces gráficas · Módulos relacionados con el sonido · Módulos relacionados con el tiempo · Módulos relacionados con la matemática


Referencias

editar
  1. Gallego Rodrígez, Fernando; Lafuente lacasa, Aurora; Seco Fenandez, Úrsala (2003). «7» (en español). Guia didactica de Matemáticas. Eduforma (1 edición). Editorial MAD, S.L.. p. 74. ISBN 978-84-6652-826-9. 
  2. Paul Klein Rees; Fred W. Sparks (1986). «8» (en español). Algebra. Reverte, Editorial S.A.. p. 140. ISBN 978-96-8670-807-3. 
  3. Moreno Pérez, Juan Carlos. «1.1» (en español). Programación en Lenguajes Estructurados. Grupo Editorial RA-MA. p. 15. ISBN 978-84-9964-300-7. 
  4. López Román, Leobardo (2011). «1» (en español). Programación estructurada y orientada a objetos (3 edición). Alfaomega Grupo Editorial. S.A.. p. 29. ISBN 978-607-707-211-9.