Ejemplos Adicionales de Mínimos Cuadrados

Aplicaciones prácticas en Ingeniería Civil, Química y Eléctrica.

1. Ingeniería Civil: Deformación de una Viga

Problema: Se realiza una prueba de carga sobre una viga de acero para determinar su rigidez. Se aplican diferentes cargas (en Kilonewtons, kN) y se mide la deflexión vertical en el centro de la viga (en milímetros, mm). Según la Ley de Hooke, en la región elástica, la relación entre carga y deflexión debería ser lineal. El objetivo es encontrar la constante de rigidez de la viga (la pendiente de la línea).

Bloque de R Markdown:

# Datos del ensayo de la viga
carga_kN <- c(0, 10, 20, 30, 40, 50, 60)
deflexion_mm <- c(0.1, 1.8, 3.4, 5.1, 6.9, 8.5, 10.2)
datos_viga <- data.frame(Carga = carga_kN, Deflexion = deflexion_mm)

# R tiene una función 'lm' (linear model) perfecta para esto.
# La fórmula 'Deflexion ~ Carga' significa: "mod__ela la Deflexión en función de la Carga".
modelo_viga <- lm(Deflexion ~ Carga, data = datos_viga)

# Extraer los coeficientes
coeficientes <- coef(modelo_viga)
a0_intercept <- coeficientes["(Intercept)"]
a1_pendiente <- coeficientes["Carga"]

print(paste("La pendiente (rigidez) es:", round(a1_pendiente, 4), "mm/kN"))
print(paste("La ordenada en el origen es:", round(a0_intercept, 4), "mm"))


# Graficar los datos y la línea de ajuste
library(ggplot2)
ggplot(datos_viga, aes(x = Carga, y = Deflexion)) +
  geom_point(color = "saddlebrown", size = 3) +
  geom_smooth(method = "lm", se = FALSE, color = "darkorange", formula = 'y ~ x') +
  labs(title = "Ensayo de Carga de Viga",
       subtitle = "Ajuste lineal por Mínimos Cuadrados",
       x = "Carga Aplicada (kN)", y = "Deflexión (mm)") +
  theme_minimal()

Interpretación de Resultados:

El modelo lineal se ajusta excelentemente a los datos experimentales. La pendiente de la recta, $a_1 \approx 0.1689$ mm/kN, representa la flexibilidad de la viga. Su inverso, $1/a_1 \approx 5.92$ kN/mm, es la constante de rigidez. El valor de la ordenada en el origen, $a_0 \approx 0.1321$ mm, es cercano a cero, lo cual es físicamente coherente (una pequeña deflexión residual o error de medición a carga cero).

2. Ingeniería Química: Cinética de Reacción

Problema: Se estudia la descomposición de un reactivo A en una reacción de primer orden. La teoría cinética predice que la concentración del reactivo sigue el modelo $[A] = [A]_0 e^{-kt}$. Para ajustar esto con un modelo lineal, se linealiza la ecuación aplicando logaritmo natural: $\ln([A]) = \ln([A]_0) - kt$. Esta es la ecuación de una recta $y = a_0 + a_1 x$, donde $y = \ln([A])$, $x = t$, la ordenada en el origen $a_0 = \ln([A]_0)$ y la pendiente $a_1 = -k$. El objetivo es encontrar la constante de velocidad de reacción $k$.

Bloque de R Markdown:

# Datos de concentración vs. tiempo
tiempo_min <- c(0, 5, 10, 15, 20, 25)
concentracion_mol_L <- c(2.50, 1.82, 1.33, 0.97, 0.71, 0.52)

# Linealizar los datos aplicando el logaritmo natural a la concentración
ln_concentracion <- log(concentracion_mol_L)
datos_cinetica <- data.frame(Tiempo = tiempo_min, Ln_C = ln_concentracion)

# Ajustar el modelo lineal a los datos transformados
modelo_cinetica <- lm(Ln_C ~ Tiempo, data = datos_cinetica)
pendiente <- coef(modelo_cinetica)["Tiempo"]

# La constante de velocidad k es el negativo de la pendiente
k <- -pendiente
print(paste("La constante de velocidad de reacción k es:", round(k, 4), "1/min"))

# Graficar los datos linealizados
library(ggplot2)
ggplot(datos_cinetica, aes(x = Tiempo, y = Ln_C)) +
  geom_point(color = "darkcyan", size = 3) +
  geom_smooth(method = 'lm', se = FALSE, color = "turquoise", formula='y ~ x') +
  labs(title = "Cinética de Reacción de Primer Orden (Linealizada)",
       x = "Tiempo (min)", y = "ln(Concentración)") +
  theme_bw()

Interpretación de Resultados:

El ajuste lineal de los datos transformados es excelente, lo que confirma que la reacción sigue un modelo de primer orden. La pendiente de la recta es de aproximadamente -0.0628. Dado que la pendiente es igual a $-k$, la constante de velocidad de reacción es $k \approx 0.0628$ min$^{-1}$. Este valor es crucial para el diseño de reactores y la predicción del comportamiento del proceso químico.

3. Ingeniería Eléctrica: Verificación de la Ley de Ohm

Problema: Un estudiante mide la corriente que fluye a través de una resistencia para diferentes niveles de voltaje aplicados. Debido a pequeñas fluctuaciones y errores del multímetro, los puntos no forman una línea perfectamente recta. El objetivo es usar mínimos cuadrados para encontrar el mejor valor estimado para la resistencia, basándose en la Ley de Ohm ($V = IR$, o $I = \frac{1}{R} V$).

Bloque de R Markdown:

# Datos del experimento
voltaje_V <- c(2, 4, 6, 8, 10, 12)
corriente_mA <- c(4.3, 8.5, 12.2, 15.9, 20.5, 24.1)
datos_ohm <- data.frame(Voltaje = voltaje_V, Corriente = corriente_mA)

# Ajustamos el modelo I en función de V. La pendiente será 1/R
# 'Corriente ~ 0 + Voltaje' fuerza a la línea a pasar por el origen (0V, 0A)
modelo_ohm <- lm(Corriente ~ 0 + Voltaje, data = datos_ohm)
pendiente_I_V <- coef(modelo_ohm)["Voltaje"]

# La Resistencia R es la inversa de la pendiente (y ajustamos unidades de mA a A)
R_estimada <- 1 / (pendiente_I_V / 1000) # Convertir pendiente de mA/V a A/V
print(paste("La resistencia estimada es:", round(R_estimada, 2), "Ohms"))

# Graficar
library(ggplot2)
ggplot(datos_ohm, aes(x = Voltaje, y = Corriente)) +
  geom_point(color = "rebeccapurple", size = 3) +
  geom_abline(intercept = 0, slope = pendiente_I_V, color = "blueviolet", size = 1) +
  labs(title = "Verificación de la Ley de Ohm",
       subtitle = "Ajuste forzado a pasar por el origen",
       x = "Voltaje (V)", y = "Corriente (mA)") +
  theme_light()

Interpretación de Resultados:

El modelo lineal que pasa por el origen (ya que a 0 voltios debe haber 0 corriente) se ajusta muy bien a los datos. La pendiente obtenida es de aproximadamente 2.03 mA/V, lo que equivale a 0.00203 A/V. Dado que la pendiente es $1/R$, la resistencia estimada es $R = 1 / 0.00203 \approx 492.6$ Ohms. Este es un valor mucho más robusto que el que se obtendría calculando $V/I$ para un solo punto, ya que promedia el comportamiento a lo largo de todo el rango de medición.