Actividad 07 · Interpolación Numérica
FECHA: 09/11/2025 | SEMESTRE: Cuarto
1. Definición
La interpolación numérica consiste en determinar una función que pase exactamente por un conjunto finito de puntos conocidos \((x_i, y_i)\), con el propósito de estimar los valores en puntos intermedios. El objetivo es construir una función \(P(x)\) tal que \(P(x_i) = f(x_i)\) para todo \(i\).
2. Interpolación Lineal
Es el método más simple. Asume que entre dos puntos consecutivos \((x_0, y_0)\) y \((x_1, y_1)\), la función puede aproximarse mediante una línea recta.
Fórmula: $$P_1(x) = y_0 + \frac{y_1 - y_0}{x_1 - x_0}(x - x_0)$$
2.2. Ejercicios Resueltos
Ejercicio 1: Estimación Puntual
Dados los puntos \((1, 3)\) y \((2, 6)\), estimar \(y\) en \(x = 1.5\).
Cálculo: \(y(1.5) = 3 + \frac{6-3}{2-1}(1.5-1) = 4.5\)
# Ejercicio 1 - Interpolacion lineal simple
x <- c(1.0, 2.0); y <- c(3.0, 6.0)
interp <- approx(x, y, xout = 1.5, method = "linear")
print(interp$y) # Salida: 4.5
Ejercicio 2: Consumo Eléctrico
Mes 1 (120 kWh) y Mes 3 (150 kWh). Interpolar Mes 2.
# Ejercicio 2
mes <- c(1, 3); consumo <- c(120, 150)
print(approx(mes, consumo, xout = 2)$y) # Salida: 135
Ejercicio 3: Sensor (Tiempo Continuo)
Temperaturas: \(t=0(20), t=5(23), t=10(29)\). Estimar \(t=7\).
El punto 7 está entre 5 y 10. Pendiente \(m = 1.2\). Resultado \(25.4^\circ C\).
[1] 25.4
3. Interpolación Polinómica de Lagrange
Construye un polinomio único de grado \(n\) utilizando funciones base \(L_i(x)\).
Fórmula: $$P_n(x) = \sum_{i=0}^{n} y_i L_i(x)$$
3.2. Ejercicios Resueltos
Ejercicio 1: Rendimiento Algoritmo
Datos: \((1, 2.0), (2, 2.8), (4, 4.5)\). Estimar para \(n=3\).
library(pracma)
x <- c(1, 2, 4); y <- c(2.0, 2.8, 4.5)
y_est <- pracma::polyval(pracma::polyLagrange(x, y), 3)
print(y_est) # Salida: 3.1
Ejercicio 2: Crecimiento Poblacional
Años 2010, 2012, 2018. Estimar 2015. Resultado estimado: 60.2 miles.
Ejercicio 3: Temperatura CPU
Carga 40%, 60%, 80%. Estimar temperatura a 65%. Resultado: 63.1 °C.
4. Interpolación de Newton (Diferencias Divididas)
Utiliza un enfoque recursivo. El polinomio se construye progresivamente:
$$P_n(x) = f[x_0] + f[x_0, x_1](x - x_0) + \dots$$
4.2. Implementación y Ejercicios
# Funcion Newton (Diferencias Divididas)
newton_interp <- function(x, y, valor) {
n <- length(x)
tabla <- matrix(0, n, n)
tabla[,1] <- y
for (j in 2:n) {
for (i in 1:(n-j+1)) {
tabla[i, j] <- (tabla[i+1, j-1] - tabla[i, j-1]) / (x[i+j-1] - x[i])
}
}
resultado <- tabla[1, 1]
producto <- 1
for (i in 1:(n-1)) {
producto <- producto * (valor - x[i])
resultado <- resultado + tabla[1, i+1] * producto
}
return(resultado)
}
Resultados de Ejercicios
- Ej 1 (Población): Estimar 2017 dado 2010-2016. Resultado: 106.9.
- Ej 2 (Agrícola): Fertilizante 75 kg/ha. Resultado: 2.52 t/ha.
- Ej 3 (Tiempo Ejecución): Para \(n=65\). Resultado: 3.1 s.
5. Interpolación de Hermite
Utiliza valores de la función \(f(x)\) y sus derivadas \(f'(x)\), garantizando suavidad en la curva.
5.2. Ejercicios Resueltos
Ejercicio 1: Hermite Cúbico (2 Puntos)
Datos: \(P_0(0, 10, m=1)\) y \(P_1(2, 14, m=0.5)\). Estimar \(x=1\).
# Hermite Cubico Simple
print(hermite_cubico_2p(0, 10, 1, 2, 14, 0.5, 1))
# Salida: 12.125
Ejercicio 2: Trayectoria
Posición y velocidad en \(t=0\) y \(t=4\). Estimar \(t=2\). Resultado: 2.5.
Ejercicio 3: General (3 Puntos)
Usando diferencias divididas generalizadas. Resultado para \(f(2.5)\): 3.9375.
6. Tabla Comparativa
| Método | Ventajas | Desventajas |
|---|---|---|
| Lineal | Sencillo y rápido. Ideal para datos densos. | Baja precisión en curvas. No diferenciable en nodos. |
| Lagrange | Polinomio único explícito. No requiere sistemas. | Recálculo total al añadir puntos. Fenómeno de Runge. |
| Newton | Eficiente computacionalmente. Fácil actualización. | Pierde precisión con muchos puntos (Runge). |
| Hermite | Muy preciso y suave (continuidad \(C^1\)). | Requiere conocer derivadas. Cálculo complejo. |
Desarrollo de la Actividad
A continuación se visualiza el documento PDF correspondiente a esta actividad: