01 · Dos escalas
Una recta local o un polinomio global
Dados varios puntos, podemos conectar cada par consecutivo mediante segmentos o construir un único polinomio que atraviese todos los nodos.
Interpolación lineal
Usa dos puntos cercanos
Es local, simple y predecible. La curva resultante es continua, pero su pendiente cambia en los nodos.
Interpolación polinómica
Puede usar todos los puntos
Produce una función suave global, pero el grado y la distribución de nodos pueden causar oscilaciones.
02 · Dos nodos
La recta interpolante
Para los puntos (x₀,y₀) y (x₁,y₁), con x₀≠x₁, la pendiente es:
La forma punto-pendiente produce:
Si x=x₀, el segundo término se anula y obtenemos y₀. Si x=x₁, el factor es uno y obtenemos y₁.
La fórmula no requiere que x sea el punto medio: funciona en cualquier posición del segmento y también puede prolongarse fuera de él, aunque entonces realiza extrapolación.
03 · Coordenada normalizada
Interpretar la interpolación mediante t
Definimos una coordenada relativa:
La recta puede escribirse como una combinación ponderada:
- t=0
- Estamos exactamente en el primer nodo y obtenemos
y₀. - t=1
- Estamos en el segundo nodo y obtenemos
y₁. - 0<t<1
- La estimación está entre ambos valores: es interpolación.
- t<0 o t>1
- La recta se prolonga fuera del segmento: es extrapolación.
Esta misma idea aparece en animaciones, mezclas de colores, transiciones y gráficos bajo nombres como lerp.
04 · Ejemplo
Estimar una temperatura
A las 10:00 se midieron 18 °C y a las 12:00, 24 °C. Para las 11:30:
La estimación es 22.5 °C. Esto supone que la temperatura cambió a velocidad constante durante esas dos horas.
function interpolarLineal(x0, y0, x1, y1, x) {
if (![x0, y0, x1, y1, x].every(Number.isFinite)) {
throw new Error("Todos los valores deben ser finitos");
}
if (x0 === x1) throw new Error("Los nodos deben ser distintos");
const t = (x - x0) / (x1 - x0);
return y0 + t * (y1 - y0);
}
console.log(interpolarLineal(10, 18, 12, 24, 11.5)); // 22.5
05 · Varios datos
Interpolación lineal por tramos
Con nodos ordenados x₀<x₁<…<xₙ, una consulta dentro del intervalo pertenece a un tramo [xᵢ,xᵢ₊₁]. Aplicamos la fórmula lineal únicamente a esos dos puntos.
- 1Ordenar y validar.
Conservar pares y rechazar nodos duplicados.
- 2Localizar el tramo.
Usar búsqueda lineal para pocos datos o búsqueda binaria para muchos.
- 3Normalizar.
Calcular
t=(x−xᵢ)/(xᵢ₊₁−xᵢ). - 4Combinar.
Evaluar
(1−t)yᵢ+tyᵢ₊₁.
La función resultante es continua: los segmentos comparten el mismo valor en cada nodo. No suele ser derivable allí porque las pendientes vecinas pueden ser diferentes.
06 · Implementación local
Encontrar el intervalo con búsqueda binaria
function interpoladorPorTramos(puntos) {
const datos = puntos.map(p => ({ ...p })).sort((a, b) => a.x - b.x);
if (datos.length < 2) throw new Error("Se requieren al menos dos puntos");
for (let i = 1; i < datos.length; i++) {
if (datos[i].x === datos[i - 1].x) throw new Error("Nodo duplicado");
}
return x => {
let izquierda = 0;
let derecha = datos.length - 2;
if (x <= datos[0].x) derecha = 0;
else if (x >= datos.at(-1).x) izquierda = derecha;
else {
while (izquierda < derecha) {
const medio = Math.floor((izquierda + derecha + 1) / 2);
if (datos[medio].x <= x) izquierda = medio;
else derecha = medio - 1;
}
}
const p = datos[izquierda];
const q = datos[izquierda + 1];
const t = (x - p.x) / (q.x - p.x);
return p.y + t * (q.y - p.y);
};
}
const f = interpoladorPorTramos([
{ x: 0, y: 1 }, { x: 2, y: 5 }, { x: 5, y: 2 }
]);
console.log(f(3)); // 4
La política del ejemplo extrapola con el segmento extremo. Otra API podría rechazar consultas exteriores o limitar el resultado al nodo más cercano.
07 · Precisión local
Error de la interpolación lineal
Si f posee segunda derivada continua, para algún punto ξ del intervalo:
Si |f″(x)|≤M y h=x₁−x₀, entonces:
La recta es exacta para cualquier función lineal, porque su segunda derivada es cero. En funciones curvas, reducir a la mitad la separación h puede reducir aproximadamente el error máximo por un factor de cuatro.
08 · Más de dos nodos
El polinomio interpolante
Para n+1 nodos distintos buscamos:
y exigimos pₙ(xᵢ)=yᵢ. Hay n+1 condiciones para n+1 coeficientes, y existe una única solución.
El grado real puede ser menor que n. Por ejemplo, si todos los datos pertenecen a una recta, los coeficientes de mayor grado resultan cero.
| Nodos distintos | Grado máximo | Caso |
|---|---|---|
| 2 | 1 | Recta |
| 3 | 2 | Cuadrática |
| 4 | 3 | Cúbica |
| n+1 | n | Polinomio general |
09 · Sistema de coeficientes
La matriz de Vandermonde
Al imponer las condiciones de interpolación obtenemos:
Esta matriz se denomina Vandermonde. Su determinante es:
Si los nodos son distintos, ningún factor es cero y el sistema tiene solución única. Sin embargo, la base de potencias puede estar muy mal condicionada cuando el grado aumenta o los nodos tienen escalas desfavorables.
10 · Tres puntos
Construir una parábola interpolante
Dados (0,1), (1,2) y (2,5), proponemos:
Las condiciones producen:
a₀+a₁+a₂ = 2
a₀+2a₁+4a₂ = 5
La solución es a₀=1, a₁=0 y a₂=1:
Así, p₂(1.5)=3.25. El polinomio pasa exactamente por los tres datos y proporciona valores intermedios suaves.
11 · Error global
Resto de la interpolación polinómica
Si f posee suficientes derivadas, el error en un punto x puede escribirse como:
La fórmula separa dos influencias:
- la derivada de orden
n+1, que mide el comportamiento de la función; - el producto de distancias a los nodos, que depende de su ubicación.
El error es cero en cada nodo porque uno de los factores (x−xᵢ) se anula. Entre nodos, la distribución elegida puede aumentar o reducir mucho el producto.
12 · Grado alto
Fenómeno de Runge y elección de nodos
La función:
es suave, pero sus polinomios interpolantes sobre muchos nodos uniformes pueden oscilar fuertemente cerca de −1 y 1. Este comportamiento se conoce como fenómeno de Runge.
Algunas respuestas posibles son:
- usar interpolación por tramos en lugar de un polinomio global;
- emplear splines de bajo grado;
- distribuir nodos más densamente cerca de los extremos, como los nodos de Chebyshev;
- reducir el grado o trabajar por subintervalos;
- usar una representación numéricamente estable del mismo polinomio.
Aumentar la cantidad de nodos uniformes puede empeorar el máximo error, aunque la curva siga atravesando todos ellos.
13 · Programación eficiente
Evaluar coeficientes con Horner
Si ya conocemos los coeficientes en base de potencias, no conviene calcular cada potencia por separado. El esquema de Horner reagrupa:
function horner(coeficientes, x) {
if (coeficientes.length === 0) throw new Error("Faltan coeficientes");
let resultado = coeficientes.at(-1);
for (let i = coeficientes.length - 2; i >= 0; i--) {
resultado = resultado * x + coeficientes[i];
}
return resultado;
}
// p(x) = 1 + x²; coeficientes en orden creciente.
console.log(horner([1, 0, 1], 1.5)); // 3.25
Horner necesita n multiplicaciones y n sumas para un polinomio de grado n. Aun así, una representación alternativa puede ser preferible a formar los coeficientes monomiales mediante Vandermonde.
14 · Exploración interactiva
Laboratorio: local contra global
Elegí una función, cambiá la cantidad de nodos uniformes y mové la consulta. La curva dorada es lineal por tramos; la turquesa es el polinomio global calculado resolviendo el sistema de Vandermonde.
Nodos, grado y oscilación
f(x)=1/(1+25x²)
Agregá nodos y observá los extremos de la curva polinómica.
Preguntas para explorar
- En Runge, aumentá hasta once nodos y observá cerca de
x=0.9. - En la función cuadrática, ¿cuántos nodos necesita el polinomio para ser exacto?
- En valor absoluto, compará el comportamiento alrededor del punto no derivable.
- Mové la consulta sobre un nodo: ambos errores deberían ser prácticamente cero.
15 · Comprensión
Confusiones frecuentes
«Interpolación lineal significa una sola recta para todos los datos»
Con varios nodos suele significar una recta diferente en cada tramo consecutivo.
«n puntos determinan un polinomio de grado n»
n puntos distintos determinan un polinomio de grado máximo n−1.
«El polinomio de mayor grado siempre es más preciso»
Puede oscilar, ser sensible al redondeo y empeorar cerca de los extremos.
«Un sistema de Vandermonde invertible es necesariamente estable»
Invertibilidad garantiza unicidad exacta; el condicionamiento determina la sensibilidad numérica.
«Horner corrige una interpolación mal elegida»
Horner evalúa eficientemente los coeficientes existentes, pero no elimina las oscilaciones propias del modelo o los errores al construirlos.
16 · Práctica guiada
Ejercicios
Ejercicio 1: interpolación lineal
Interpolá en x=4 entre (2,10) y (5,22).
Ver solución
t=(4−2)/(5−2)=2/3. Entonces L(4)=10+(2/3)(22−10)=18.
Ejercicio 2: interpolar o extrapolar
Para los mismos puntos, ¿qué representa evaluar en x=7?
Ver solución
Es extrapolación porque 7 está fuera de [2,5]. La fórmula funciona, pero prolonga la pendiente sin evidencia adicional.
Ejercicio 3: grado máximo
¿Cuál es el grado máximo del polinomio determinado por seis nodos distintos?
Ver solución
Grado 5. En general, n+1 nodos determinan un polinomio de grado máximo n.
Ejercicio 4: cota lineal
Si |f″|≤4 y los nodos están separados por h=0.2, calculá la cota Mh²/8.
Ver solución razonada
4·0.2²/8=4·0.04/8=0.02.
Ejercicio 5: verificar nodos
Implementá una función que calcule el mayor error del polinomio en los nodos.
Ver una posible solución
function errorEnNodos(puntos, evaluar) {
return Math.max(...puntos.map(({ x, y }) =>
Math.abs(y - evaluar(x))
));
}
const puntos = [{ x: 0, y: 1 }, { x: 1, y: 2 }, { x: 2, y: 5 }];
const p = x => 1 + x * x;
console.log(errorEnNodos(puntos, p)); // 0
17 · Síntesis
Ideas para recordar
- Dos puntos distintos determinan una única recta interpolante.
- El parámetro
texpresa la posición relativa dentro del segmento. - La interpolación lineal por tramos es local y continua, pero no suele ser suave en los nodos.
- Su error depende de la curvatura y del cuadrado de la separación entre nodos.
n+1nodos distintos determinan un polinomio único de grado máximon.- Vandermonde demuestra la unicidad, pero puede estar mal condicionada.
- El error polinómico depende de las derivadas y de la distribución de nodos.
- El fenómeno de Runge muestra que más nodos uniformes pueden empeorar la aproximación.
- Horner evalúa eficientemente un polinomio dado en base de potencias.
En el próximo tema construiremos el mismo polinomio mediante las bases de Lagrange, sin resolver explícitamente el sistema de Vandermonde.