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 (1223 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens 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.

6 Comentários em Calcular Raízes de Equação de 2º Grau com Python

  1. Gilson Caldas // 02/04/2020 em 0:42 // Responder

    Oi pessoal, tudo bem? na linha 8 e 9 do programa calculo de raízes do 2 grau Phyton. o que está dentro do parênteses é zero ou a letra o ? e para que serve {0} nestas linhas?

  2. gilson caldas // 02/04/2020 em 0:44 // Responder

    Quando rodo o programa ele dá erro na linha 12 While True: não aceita o True.

  3. VITERBO SANTOS LAURINDO // 08/11/2021 em 17:38 // Responder

    Outros exemplos de energias: cinéticas, potenciais, mecânica, elétrica etc

  4. Junior Ribeiro // 17/03/2022 em 22:01 // Responder

    Muito bom meu nobre, obrigado.

  5. Duarles Moreira Fernandes // 25/11/2022 em 8:02 // Responder

    Eu consegui fazer aplicando a biblioteca math chamando a funçao pow para fazer a raiz, porém não estou conseguindo criar um laço de repetição para limpar todo o cálculo e gerar um novo

    import math

    a = float(input(‘Entre com um valor para a: ‘))
    b = float(input(‘Entre com um valor para b: ‘))
    c = float(input(‘Entre com um valor para c: ‘))

    sqr_t = pow((b**2) – 4*a*c, 1/2)

    abcx1 = ((-b + sqr_t)/2*a)
    abcx2 = ((-b – sqr_t)/2*a)

    print (‘o valor para x1 é igual a {0} ‘ .format(abcx1))
    print (‘o valor para x2 é igual a {0} ‘ .format(abcx2))

Escreva um comentário

Seu e-mail não será divulgado


*