Actividad 07 · Interpolación Numérica

FECHA: 09/11/2025 | SEMESTRE: Cuarto

Completada

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:

Evidencias