Google+ Seguidores

miércoles, 27 de septiembre de 2017

Resolviendo ecuaciones de segundo grado con Python

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 :D

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? :D

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

Si tienes una pregunta, con gusto la responderé :D


2 comentarios :
Write comentarios

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

Powered by Blogger .