Nesta lição iremos entender como resolver uma equação de Segundo Grau, utilizando o software r. Contudo, primeiro temos que relembrar como resolver uma equação quadrática. Considera-se como equação quadrática, toda a equação onde temos o formato: \(ax^2+bx+c=0\)
Observe o seguinte exemplo: Data a função Quadrática \(\dfrac{1}{2}x^2 +x -4 = 0\), determine:
Primeiramente devemos encontrar os coeficientes da equação: Neste caso:
\(a = \dfrac{1}{2}\) , \(b = 1\) e \(c = -4\)
\[\Delta = b^2-4ac \] \[\Delta = (1)^2-4(\dfrac{1}{2})(-4) \] \[\Delta = (1)+8 \Rightarrow \Delta = 9 \] * Encontrando o valor das raizes
Já que o Delta é positivo, nossa equação tem duas raízes reais distintas. Vamos encontrá-las:
\[ x = \dfrac{-b \pm \sqrt{\Delta}}{2a} \] \[ x = \dfrac{- 1 \pm \sqrt{9}}{2 \frac{1}{2}} \] \[ x = \dfrac{- 1 \pm 3}{1} \] \[x_1 = -1 -3 \Rightarrow x_1 = -4\] \[x_2 = -1 +3 \Rightarrow x_2 = 2\] Esses dois valores são as ráizes da equação.
Outra coisa importante é construir o gráfico de uma equação quadrática. A Imagem abaixo traz essa representação:
Um ponto muito
importante na resolução de uma equação quadrática é o valor de \(\Delta\), sendo ele positivo, a equação
possui raízes reais e distintas. Sendo ele nulo, a equação possui raízes
reais e iguais e sendo ele negativo a equação possui raízes complexas.
Até as aulas anteriores, essa condição de \(\Delta < 0\) não era resolvida, apenas
colocávamos a sentença de que não possuía raízes reais.
Como os números complexos fazem parte de nossos conjuntos conhecidos, então agora a equação que possui um \(\Delta < 0\) possui solução, porém não é real e sim complexa.
Vamos primeiro codificar uma solução onde o conjunto domínio é apenas o conjunto dos números reais:
Declarando as variáveis de entrada:
library(glue)
a = 1/2
b = 1
c = -4
glue("
a = {a}
b = {b}
c = {c}
")
## a = 0.5
## b = 1
## c = -4
Encontrando o valor de \(\Delta\)
delta = b**2-4*a*c
delta
## [1] 9
Como o delta é positivo, teremos duas raizes reais e distintas:
Encontrando \(x_1\)
x_1 = (-b - (delta)**(1/2))/(2*a)
x_1
## [1] -4
Encontrando \(x_2\)
x_2 = (-b + (delta)**(1/2))/(2*a)
x_2
## [1] 2
Vamos primeiro codificar uma solução onde o conjunto domínio é o conjunto dos números complexos:
Declarando as variáveis de entrada:
a = -1+0i
b = 1+0i
c = -7+0i
glue("
a = {a}
b = {b}
c = {c}
")
## a = -1+0i
## b = 1+0i
## c = -7+0i
Encontrando o valor de \(\Delta\)
delta = b**2-4*a*c
delta
## [1] -27+0i
Como o delta é positivo, teremos duas raizes reais e distintas:
Encontrando \(x_1\)
x_1 = (-b - (delta)**(1/2))/(2*a)
x_1
## [1] 0.5+2.598076i
Encontrando \(x_2\)
x_2 = (-b + (delta)**(1/2))/(2*a)
x_2
## [1] 0.5-2.598076i
Baseia-se em construir um algoritmo que possa fazer um texte no \(\Delta\) e apartir do resultado tomar uma decisão. Neste caso iremos introduzir o conceito de \(if, else\) na programação, ou seja, se, senão
Veja como fica, o início não muda.
Declarando as variáveis de entrada:
a = -1
b = 1
c = -7
glue("
a = {a}
b = {b}
c = {c}
")
## a = -1
## b = 1
## c = -7
Agora calculamos o valor de \(\Delta\)
delta = b**2-4*a*c
delta
## [1] -27
Agora Analisamos o resultado de Delta para tomar uma decisão, se seguimos com os cálculos reais, ou se temos que mudar para o complexo:
if(delta < 0){
print("Complexo")
}else{
print("Real!")}
## [1] "Complexo"
Viu como é simples, mas agora queremos que ele resolva, então iremos mudar a sáida da decisão para as operações necessárias, começando com a real, que é a mais fácil e já sabemos fazer.
if(delta < 0){
print("Complexo")
}else{
x_1 = (-b - (delta)**(1/2))/(2*a)
x_2 = (-b + (delta)**(1/2))/(2*a)
}
## [1] "Complexo"
glue("
x1 = {x_1}
x2 = {x_2}
")
## x1 = 0.5+2.59807621135332i
## x2 = 0.5-2.59807621135332i
Bacana, agora temos que alterar a operação para quando a equação estiver nos complexos. Veja como faremos abaixo:
if(delta < 0){
a = a+0i
b = b+0i
c = c+0i
delta = b**2-4*a*c
x_1 = (-b - (delta)**(1/2))/(2*a)
x_2 = (-b + (delta)**(1/2))/(2*a)
}else{
x_1 = (-b - (delta)**(1/2))/(2*a)
x_2 = (-b + (delta)**(1/2))/(2*a)
}
glue("
x1 = {x_1}
x2 = {x_2}
")
## x1 = 0.5+2.59807621135332i
## x2 = 0.5-2.59807621135332i
Veja que alteramos os valores de \(a,b\) e \(c\), para complexo, recalculamos o \(\Delta\) para ele ser complexo e depois encontramos \(x_1\) e \(x_2\) normalmente.
Agora vamos colocar tudo numa sequência direta de códigos:
# Declarando as variáveis
a = -1
b = 1
c = -7
# Encontrando Delta
delta = b**2-4*a*c
# Fazendo o julgamento de delta e resolvendo a equação
if(delta < 0){
a = a+0i
b = b+0i
c = c+0i
delta = b**2-4*a*c
x_1 = (-b - (delta)**(1/2))/(2*a)
x_2 = (-b + (delta)**(1/2))/(2*a)
}else{
x_1 = (-b - (delta)**(1/2))/(2*a)
x_2 = (-b + (delta)**(1/2))/(2*a)
}
# Saída do algorítmo
glue("
x1 = {x_1}
x2 = {x_2}
")
## x1 = 0.5+2.59807621135332i
## x2 = 0.5-2.59807621135332i
A maneira mais correta de se fazer um gráfico e utizar os valores das raizes. Para esta funcionalidade é importante que a equação tenha raízes reais. veja como fazemos:
# Declarando as variáveis
a = 1
b = 1
c = -7
# Encontrando Delta
delta = b**2-4*a*c
# Fazendo o julgamento de delta e resolvendo a equação
if(delta < 0){
a = a+0i
b = b+0i
c = c+0i
delta = b**2-4*a*c
x_1 = (-b - (delta)**(1/2))/(2*a)
x_2 = (-b + (delta)**(1/2))/(2*a)
}else{
x_1 = (-b - (delta)**(1/2))/(2*a)
x_2 = (-b + (delta)**(1/2))/(2*a)
}
glue("
x1 = {x_1}
x2 = {x_2}
")
## x1 = -3.19258240356725
## x2 = 2.19258240356725
Declarando um vetor com início em \(x_1\) e fim em \(x_2\)
dominio = seq(x_1, x_2, by=0.01)
Agora vamos fazer o gráfico de plot utilizando estes dados: Vamos chamar o domínio acima declarado de x
x = dominio
Veja que os valores não se alteram. Agora vamos passar esses valores pela equação para fornecer as imagens para o gráfico
x = dominio
equacao = x^2 +x -7
Agora vamos fazer o gráfico com esses valores.
x = dominio
equacao = x^2 + x -7
plot(equacao, type = 'l')
Veja que o gráfico não fica muito bonito, mas o R neste caso não é focado em construir esses tipos de gráficos. Contudo serve para podermos dar uma visualizada nas informações apresentadas.
Este novo tópico irá abordar uma aula gravada para explicar todo este conteúdo anterior. Nela você poderá ver a construção dos algorítmos e suas execuções. OBS: Nas aulas abaixo, click com o botão direito do mouse e abra o link em outra guia.
Construa o Algoritmo para encontrar a solução real ou complexa de uma equação, e execute ele para resolver as equações abaixo: