A partir da explicação teórica disponível em RapidTables, ou outra bibliografia que você queira, elabore um programa em Fortran para solucionar as raízes da equação dados os coeficientes a, b, c.

Fonte: Quadratic equation (ax² + bx + c=0) – RapidTables.com

! Fazer um program para para encontrar as raizes de uma equação de segundo grau.
! Use a fórmula de bhaskara.
!
! Requisitos:
! Dizer quantas e que tipo são as raízes da equação quadrática.
! 
! delta = b**2 - 4*a*c
!
! delta > 0 2 raízes reais: 
!           x1 = (-b + sqrt(delta) ) / 2*a
!           x2 = (-b - sqrt(delta) ) / 2*a
! delta = 0 1 raiz x1 = x2 = -b / 2a
! delta > 0 não há raízes reais. Há 2 raízes complexas: 
!           x1 = (-b + i*sqrt(delta) ) / 2*a
!           x2 = (-b - i*sqrt(delta) ) / 2*a
! --------------------------------------------------------------------------

program bhaskara
implicit none

real :: a,b,c, delta, x1, x2

print*, "=================================="
print*, " Solver para a equacao quadratica"
print*, "----------------------------------"
print*, " ax^2 + bx + c = 0"
print*, "__________________________________"
print*, " "
read *, a,b,c

! Calculando o delta
delta = b**2 - 4*a*c

! Verificando o delta. Só calcula as raízes se delta não for negativo 
if (delta .le. 0) then
 x1 = (-b + sqrt(delta) ) / 2*a 
 x2 = (-b - sqrt(delta) ) / 2*a 
endif 

if (delta .gt. 0 ) then
 print*, "2 raizes reais"
 print*, "Delta = ", delta
 print*, "x1 = ", x1
 print*, "x2 = ", x2
else if (delta .lt. 0) then
 print*, "2 Raizes complexas"
 print*, "Delta = ", delta
else ! se não for nenhuma das condições anteriores
 print*, "As duas raizes são iguais."
 print*, "Delta = ", delta
 print*, "x1 = x2 = ", x1
endif

end program bhaskara


Análise gráfica:
Ferramenta: https://try.jupyter.org/

%matplotlib notebook
import numpy as np
import matplotlib
from matplotlib import pyplot as plt

# 3x2+5x+2 = 0 
# 3x2-6x+3 = 0
# x2+2x+5 = 0
a = 1
b = -5
c = 6
lista = [(a*x**2+b*x+c) for x in np.arange(-1,6,0.1)]
x = np.arange(-1,6,0.1)
plt.figure()
plt.grid()
plt.title('Função quadrática')
plt.text(4,11,r'$ax^2+bx+c$',fontsize=18)
plt.ylabel('$y(x)$')
plt.xlabel('$x$')
plt.plot(x,lista)

plt.annotate(r'$x_1$', xy=(2., 0.), xytext=(2.5, 2.5),
            arrowprops=dict(facecolor='red', shrink=0.05),
            )
plt.annotate(r'$x_2$', xy=(3., 0.), xytext=(2.5, -1.7),
            arrowprops=dict(facecolor='orange', shrink=0.05),
            )
plt.show()

Resultado:

imagem função quadrática

Anúncios

Escrito por zrhans

Professor at UFSM

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s