Python | Encontrar soluciones de una ecuación polinomial

Dada una ecuación cuadrática, la tarea es encontrar las posibles soluciones. 
Ejemplos: 
 

Input : 
enter the coef of x2 : 1
enter the coef of x  : 2
enter the constant    : 1
Output :
the value for x is -1.0

Input :
enter the coef of x2 : 2
enter the coef of x  : 3
enter the constant    : 2
Output :
x1 = -3+5.656854249492381i/4 and x2 = -3-5.656854249492381i/4

Algoritmo:

Start.
Prompt the values for a, b, c. 
Compute i = b**2-4*a*c
If i get negative value g=square root(-i)
Else h = sqrt(i)
Compute e = -b+h/(2*a)
Compute f = -b-h/(2*a)
If condition e==f then
    Print e
Else
    Print e and f
If i is negative then
    Print -b+g/(2*a) and -b-g/(2*a)
stop

A continuación se muestra la implementación de Python de la tarea mencionada anteriormente. 
 

Python3

# Python program for solving a quadratic equation.
  
from math import sqrt  
try:    
 
    # if user gives non int values it will go to except block
    a = 1
    b = 2
    c = 1
    i = b**2-4 * a * c
 
    # magic condition for complex values
    g = sqrt(-i)
    try:
        d = sqrt(i)
        # two resultants
        e = (-b + d) / 2 * a 
        f = (-b-d) / 2 * a
        if e == f:
            print("the values for x is " + str(e))
        else:
            print("the value for x1 is " + str(e) +
                  " and x2 is " + str(f))
    except ValueError:
        print("the result for your equation is in complex")
         
        # to print complex resultants.
        print("x1 = " + str(-b) + "+" + str(g) + "i/" + str(2 * a) +
              " and x2 = " + str(-b) + "-" + str(g) + "i/" +
              str(2 * a))  
         
except ValueError:
    print("enter a number not a string or char")

Producción : 
 

the values for x is -1.0

Explicación: 
primero, este programa obtendrá tres entradas del usuario. Los valores son el coeficiente de  x2 , coeficiente de  x y constante. Luego realiza la fórmula 
(-b + (or) - sqrt(b2 - 4 * a * c) / 2a)
Para complejo el valor de  (b2 - 4 * a * c) se vuelve negativo. Rootear valores negativos arrojará un error de valor. En este caso, desactive el resultado  -(b2 - 4 * a * c) y luego rootéelo. No te olvides de incluir  i al final. 
 

Publicación traducida automáticamente

Artículo escrito por jegajeeth2019 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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