Este documento muestra cómo graficar una ecuación polinómica de
octavo grado utilizando R y ggplot2
. Primero se visualizará
la función completa y luego se hará un acercamiento para observar
algunas de sus raíces (intersecciones con el eje X).
Vamos a utilizar la siguiente ecuación de octavo grado: \(f(x) = x^8 - 13x^6 + 35x^4 + 13x^2 - 36\)
Esta ecuación ha sido elegida porque tiene raíces enteras fáciles de identificar: \(x = \pm 1, \pm 2, \pm 3\).
# Definir la función polinómica de octavo grado
polynomial_function <- function(x) {
x^8 - 13*x^6 + 35*x^4 + 13*x^2 - 36
}
Para tener una idea general del comportamiento de la función, primero la graficamos en un rango amplio de valores de \(x\).
# Generar datos para la gráfica completa
x_values_full <- seq(-3.5, 3.5, by = 0.01)
y_values_full <- polynomial_function(x_values_full)
data_full_plot <- data.frame(x = x_values_full, y = y_values_full)
# Crear la gráfica completa usando ggplot2
ggplot(data_full_plot, aes(x = x, y = y)) +
geom_line(color = "steelblue", size = 1) + # Línea de la función
geom_hline(yintercept = 0, linetype = "dashed", color = "black") + # Eje X para referencia
geom_vline(xintercept = 0, linetype = "dotted", color = "gray") + # Eje Y para referencia
labs(title = "Gráfica Completa de la Ecuación de Octavo Grado",
subtitle = "$f(x) = x^8 - 13x^6 + 35x^4 + 13x^2 - 36$",
x = "Valores de x",
y = "Valores de f(x)") +
theme_minimal(base_size = 12) + # Tema limpio
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5, face = "italic"),
axis.title = element_text(face = "bold")
)
Gráfica completa de la función \(f(x) = x^8 - 13x^6 + 35x^4 + 13x^2 - 36\).
Observaciones de la gráfica completa: La gráfica muestra la simetría par de la función (ya que solo contiene potencias pares de \(x\)). Se pueden intuir múltiples puntos de inflexión y extremos locales, así como las intersecciones con el eje X.
Ahora, nos enfocaremos en una región específica para observar con más claridad algunas de las intersecciones de la función con el eje X (es decir, las raíces de la ecuación \(f(x)=0\)). Mostraremos las raíces positivas: \(x=1, x=2, \text{y } x=3\).
# Generar datos para la gráfica enfocada en las raíces positivas
# Un rango que cubra las raíces 1, 2, y 3.
x_values_roots <- seq(0.5, 3.5, by = 0.01)
y_values_roots <- polynomial_function(x_values_roots)
data_roots_plot <- data.frame(x = x_values_roots, y = y_values_roots)
# Identificar las raíces exactas en este rango para marcarlas
# Estas son las raíces conocidas de nuestra función de ejemplo
actual_roots_in_range <- c(1, 2, 3)
root_points_to_display <- data.frame(
x_root = actual_roots_in_range,
y_root = polynomial_function(actual_roots_in_range) # Debería ser 0 para todas
)
# Crear la gráfica enfocada en las raíces
ggplot(data_roots_plot, aes(x = x, y = y)) +
geom_line(color = "firebrick", size = 1) + # Línea de la función
geom_hline(yintercept = 0, linetype = "dashed", color = "black") + # Eje X
geom_vline(xintercept = 0, linetype = "dotted", color = "gray") + # Eje Y (si está en el rango)
geom_point(data = root_points_to_display,
aes(x = x_root, y = y_root),
color = "darkgreen",
size = 3.5,
shape = 19) + # Marcar las raíces
geom_text(data = root_points_to_display,
aes(x = x_root, y = y_root, label = paste("x =", x_root)),
vjust = -1, # Desplazamiento vertical del texto (encima del punto)
hjust = 0.5, # Centrado horizontal
color = "darkgreen",
size = 4) + # Etiquetas para las raíces
labs(title = "Detalle de Intersecciones Positivas con el Eje X",
subtitle = "Raíces en $x=1, x=2, x=3$",
x = "Valores de x",
y = "Valores de f(x)") +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5, face = "italic"),
axis.title = element_text(face = "bold")
)
Gráfica enfocada en las intersecciones positivas (\(x=1, 2, 3\)) con el eje X.
# No se establece ylim explícitamente; ggplot2 auto-ajustará la escala del eje Y
# para mostrar la curva mientras pasa por las raíces.
# Si la fluctuación fuera demasiado grande, se podría considerar:
# coord_cartesian(ylim = c(-Y_limit, Y_limit)) para hacer zoom sin cortar datos.
Observaciones de la gráfica detallada: En esta vista más cercana, las intersecciones en \(x=1\), \(x=2\), y \(x=3\) son claramente visibles. Los puntos verdes marcan estas raíces. La función cruza el eje X en estos puntos. Se puede observar cómo la función se comporta (crece o decrece) alrededor de estas raíces.
Hemos graficado con éxito una ecuación de octavo grado, mostrando
tanto su forma general como un detalle de sus raíces. R Markdown junto
con ggplot2
ofrece una herramienta poderosa para este tipo
de visualizaciones matemáticas.