0.1 Gráfica de una Ecuación Cúbica y Detección de Raíces

Este documento de R Markdown analiza y grafica una ecuación de tercer grado. El objetivo principal es identificar y resaltar los puntos donde el valor de la variable dependiente (y) cambia de signo, lo que indica una aproximación a las raíces de la ecuación (los puntos donde la función cruza el eje x).

La ecuación utilizada en este ejemplo es:
\(y = x^3 - 2x^2 - 5x + 6\)

0.1.1 1. Generación de Datos

Primero, definimos la función y generamos un conjunto de puntos (x, y) en un rango específico para poder graficarla.

fx <- function(x) x^3 - 2*x^2 - 5*x + 6

Creación de una secuencia de valores para la variable independiente ‘x’.

El rango va de -3 a 4 con incrementos de 0.1

X <- seq(-3, 4, by = 0.5)

Y <- fx(X)
Tabla <- data.frame(X, Y)

head(Tabla,20)

0.1.2 2. Detección del Cambio de Signo

Ahora, recorremos los datos para encontrar los puntos donde y cruza el eje x. Un cambio de signo entre dos puntos consecutivos y_i y y_{i+1} significa que existe una raíz entre x_i y x_{i+1}.

La función which() devuelve los índices donde la condición es verdadera.

diff(sign(y)) será diferente de cero justo donde el signo de ‘y’ cambia.

signos <- which(diff(sign(Tabla$Y)) != 0)

signos
## [1]  2  3  8  9 12 13
for (i in signos) {
    cat(sprintf("cambio de signo\n"))
    cat(sprintf("x = %.2f y = %.3f\n", Tabla$X[i], Tabla$Y[i]))
    cat(sprintf("x = %.2f y = %.3f\n\n", Tabla$X[i+1], Tabla$Y[i+1]))
  }
## cambio de signo
## x = -2.50 y = -9.625
## x = -2.00 y = 0.000
## 
## cambio de signo
## x = -2.00 y = 0.000
## x = -1.50 y = 5.625
## 
## cambio de signo
## x = 0.50 y = 3.125
## x = 1.00 y = 0.000
## 
## cambio de signo
## x = 1.00 y = 0.000
## x = 1.50 y = -2.625
## 
## cambio de signo
## x = 2.50 y = -3.375
## x = 3.00 y = 0.000
## 
## cambio de signo
## x = 3.00 y = 0.000
## x = 3.50 y = 6.875

Crear un data frame con los puntos que rodean el cambio para resaltarlos en la gráfica.

puntos <- Tabla[sort(unique(c(signos, signos + 1))), ]
puntos

0.1.3 3. Visualización de la Gráfica

Finalmente, usamos ggplot2 para crear una visualización de alta calidad de la función.

La línea de la curva se muestra en azul, y los puntos que marcan el cambio de signo se resaltan en rojo.

plot(Tabla$X, Tabla$Y, 
     type = "l", # Especifica que el tipo de gráfico es una línea.
     col = "steelblue", 
     lwd = 2, # 'lwd' controla el grosor de la línea.
     main = "Gráfica de la Ecuación y = x^3 - 2x^2 - 5x + 6")


abline(h = 0)


points(puntos$X, puntos$Y, 
       col = "red", 
       pch = 19, # Círculo sólido.
       cex = 1.5) # Aumenta el tamaño del punto para mejor visibilidad.