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:
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:
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!
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?
Quando rodo o programa ele dá erro na linha 12 While True: não aceita o True.
Outros exemplos de energias: cinéticas, potenciais, mecânica, elétrica etc
Muito bom meu nobre, obrigado.
Valeu Junior!
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))