Problema
Queremos resolver una ecuación de segundo grado en R: ax2 + bx + c = 0.
Solución
- Dos soluciones reales
- Una solución real repetida
- Dos soluciones complejas
Números positivos dentro de la raíz cuadrada.
2x2 + 20x + 3 = 0
x <- 2
y <- 20
z <- 3
x1 <- (-y + sqrt((y^2) - (4 * x * z)))/(2 * x)
x2 <- (-y - sqrt((y^2) - (4 * x * z)))/(2 * x)
print(c(x1, x2))
No empleamos las letras a, b y c, pues c es una palabra reservada en R.
[1] -0.1523201 -9.8476799
Un cero y un número positivo dentro de la raíz cuadrada.
x2 - 6x + 9 = 0
x <- 1
y <- -6
z <- 9
x1 <- (-y + sqrt((y^2) - (4 * x * z)))/(2 * x)
x2 <- (-y - sqrt((y^2) - (4 * x * z)))/(2 * x)
print(c(x1, x2))
[1] 3 3
Números negativos dentro de la raíz cuadrada.
2x2 + 7x + 11 = 0
x <- 2
y <- 7
z <- 11
polyroot(c(z, y, x))
[1] -1.75+1.561249i -1.75-1.561249i
El código empleado en las dos opciones anteriores generaría un error. La función polyroot devolverá dos números complejos como la suma de un número real y uno número imaginario. También podemos emplear dicha fórmula en los casos anteriores. En dichos casos el número imaginario será 0i = 0.2x2 + 20x + 3 = 0
x <- 2
y <- 20
z <- 3
polyroot(c(z, y, x))
[1] -0.1523201-0i -9.8476799+0i
Entradas relacionadas
Nube de datos