"
Se for diferente de 0, cai no else, que é onde todo nosso programa vai funcionar. Primeiro, dentro do else, pedimos o valor dos coeficientes b e c. Agora, vamos calcular o delta. Em Python, fica assim: delta = b*b - (4*a*c)Agora vamos testar o delta, dentro de um if aninhado no else anterior. Se for menor que 0, encerramos o programa dizendo que as raízes são imaginárias.Em seguida, usamos um elif para testar se delta for 0, se sim valor da raiz será:raiz = -b / (2*a) Por fim, se não é menor que 0 e o delta não é 0, é porque vai ser sempre maior que 0. Essa condição cai no else aninhado, onde calculamos as raízes assim: raiz1 = (-b + math.sqrt(delta) ) / (2*a) raiz2 = (-b - math.sqrt(delta) ) / (2*a) Nosso código ficou: import math print('Equaçao do 2o grau da forma: ax² + bx + c') a = int( input('Coeficiente a: ') ) if(a==0): print('Se a=0, não é equação do segundo grau. Tchau') else: b = int( input('Coeficiente b: ') ) c = int( input('Coeficiente c: ') ) delta = b*b - (4*a*c) if delta<0: print('Delta menor que 0. Raízes imaginárias. Tchau') elif delta==0: raiz = -b / (2*a) print('Delta=0 , raiz = ',raiz) else: raiz1 = (-b + math.sqrt(delta) ) / (2*a) raiz2 = (-b - math.sqrt(delta) ) / (2*a) print('Raizes: ',raiz1,' e ',raiz2)
Dado um inteiro N e um nível de tolerância L , a tarefa é encontrar a raiz quadrada desse número usando o Método de Newton .
Método de Newton:
Abordagem: as etapas a seguir podem ser seguidas para calcular a resposta:
Abaixo está a implementação da abordagem acima:
Loops muitas vezes são usados em programas que calculam resultados numéricos, começando com uma resposta aproximada e melhorando-a iterativamente. Por exemplo, uma forma de calcular raízes quadradas é o método de Newton. Suponha que você queira saber a raiz quadrada de a. Se começar com quase qualquer estimativa, x, é possível calcular uma estimativa melhor com a seguinte fórmula: O resultado é mais próximo à resposta correta ( Depois de algumas atualizações, a estimativa é quase exata: >>> x = y >>> y = (x + a/x) / 2 >>> y 2.00001024003 >>> x = y >>> y = (x + a/x) / 2 >>> y 2.00000000003Em geral, não sabemos com antecedência quantos passos são necessários para chegar à resposta correta, mas sabemos quando chegamos lá porque a estimativa para de mudar: >>> x = y >>> y = (x + a/x) / 2 >>> y 2.0 >>> x = y >>> y = (x + a/x) / 2 >>> y 2.0Quando y == x, podemos parar. Aqui está um loop que começa com uma estimativa inicial, x, e a melhora até que deixe de mudar: Para a maior parte de valores de a funciona bem, mas pode ser perigoso testar a igualdade de um float. Os valores de ponto flutuante são aproximadamente corretos: a maioria dos números racionais, como 1/3, e números irracionais, como Em vez de verificar se x e y são exatamente iguais, é mais seguro usar a função integrada abs para calcular o valor absoluto ou magnitude da diferença entre eles: if abs(y-x) < epsilon: breakOnde epsilon tem um valor como 0.0000001, que determina a proximidade desejada entre x e y. |