Calcular Raízes de Equação de 2º Grau com Python

Equação de 2º Grau com Python

Neste artigo vamos escrever um script em Python que permite calcular as raízes de uma equação do 2º grau (equação quadrática), com os valores das variáveis de entrada fornecidos pelo usuário.

Uma equação do 2º grau é dada por uma expressão do tipo:

ax2 + bx + c = 0

Onde x é uma incógnita, e os valores a, b e c são conhecidos – são os coeficientes da equação, que serão fornecidos pelo usuário ao programa. Os coeficientes são números reais, e o valor do coeficiente a deve ser diferente de zero, caso contrário a equação se torna uma equação de 1° grau.

A fórmula empregada para o cálculo dessas raízes é a famosa Fórmula de Bhaskara, dada por:

Equação do segundo grau com Python

O trecho intermediário b2 – 4ac também é chamado de “Discriminante”, ou “Delta” da equação.

Os valores de x que satisfazem a essa equação são suas soluções. Este tipo de equação pode ter até duas soluções – que chamaremos de x1 e x2. Se não houver solução com números reais (raízes reais), haverá solução com números complexos.

Também é possível que haja apenas uma solução (x1 = x2). Neste caso, dizemos que a raiz é dupla.

Código

A seguir temos o código que foi empregado na criação do script de exemplo.

# Calcular as Raízes de uma Equação do 2º Grau

def raizes(a, b, c):
    D = (b**2 - 4*a*c)
    x1 = (-b + D**(1/2)) / (2*a)
    x2 = (-b - D**(1/2)) / (2*a)

    print('\nValor de x1: {0}'.format(x1))
    print('Valor de x2: {0}'.format(x2))

if __name__ == '__main__':
    while True:
        print('Calculando as raízes de uma equação de 2º grau\n')
        a = float(input('Entre com o valor de a: '))
        b = float(input('Entre com o valor de b: '))
        c = float(input('Entre com o valor de c: '))
        raizes(a,b,c)

        continua = input('Deseja sair? Digite q ou Enter para novo cálculo:')
        if (continua == 'q'):
            break

Neste script, criamos uma função de nome raizes(), que recebe como parâmetros os valores de a, b e c da equação a ser resolvida e aplica a fórmula apresentada anteriormente. Invocamos  essa função no programa principal, após requisitar os valores ao usuário, dentro de um loop infinito com laço while, para que o script seja repetido quantas vezes o usuário desejar, até ser encerrado com o pressionamento da tecla q.

Teste do script

Para testar nosso programa executamos o script e fornecemos os valores de a, b e c. Suponha que desejamos resolver as equações a seguir:

x2 + 3x + 2 = 0

e

4x2 + 2x + 3 = 0

Rodamos o script duas vezes, fornecendo os valores solicitados, para obter os valores das raízes das equações:

Raízes da equação de segundo grau com python

Note que a primeira equação retorna duas raízes reais, de valores -1 e -2. Já a segunda equação não possui raízes reais, mas o Python calcula as raízes na forma de números complexos, retornando os valores (aproximados) -0.2499 + 0.82915619758885j e -0.2500 – 0.82915619758885j (o python usa a letra j em vez de i para a parte imaginária de um número complexo).

É isso aí! Em breve veremos como gerar um gráfico a partir de uma equação deste tipo, usando a biblioteca matplotlib. Até a próxima!

 

Sobre Fábio dos Reis (1358 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*