Imagen destacada para el blog de interpolación 101

Interpolación 101

Hace muchos años, NumXL admitía una función de interpolación como utilidad o método auxiliar para satisfacer las necesidades de modelado de nuestros usuarios. Para nuestra sorpresa, esta funcionalidad recibió mucha atención y decidimos recopilar aquí algunas de las preguntas más frecuentes al respecto.

Qué es Interpolación?

La interpolación es un método numérico para estimar el valor de un nuevo punto de datos basado en el rango de un número discreto de puntos de datos conocidos.

Para ilustrar, supongamos que el valor de una función se da como un conjunto de cinco (5) valores distintos de x; como se muestra en la gráfica a continuación.

Ahora, deseamos estimar (es decir, interpolar) el valor de la función en $x=5$, usando los cinco (5) puntos de datos dados.

Para fines de interpolación, el valor x objetivo deseado debe estar dentro del rango del conjunto de datos original $2\le x\le 12$).

Antes de continuar, respondamos algunas preguntas fundamentales que escuchamos a menudo:

  1. ¿Qué pasa con la extrapolación? ¿En qué es diferente? La extrapolación es el proceso de estimar el valor de la función de un valor de x que se encuentra fuera del rango de un conjunto de datos determinado.
  2. ¿NumXL admite la extrapolación? Sí, se puede utilizar la misma función NxINTRPL(.) para la extrapolación. Asegúrese de pasar “verdadero” o 1 al argumento “extrapolar”.
  3. ¿Es lo mismo el ajuste de curvas (p. ej., regresión) e interpolación? El ajuste de curvas y la interpolación a menudo se usan indistintamente, pero hay una sutil diferencia entre ellos: la interpolación debe ajustarse exactamente a los puntos de datos, mientras que el ajuste de curvas debe acercarse lo más posible.
  4. ¿Debo usar interpolación o ajuste de curvas? Eso depende. La interpolación supone que los puntos de datos se conocen perfectamente (o al menos con una precisión muy alta), mientras que el ajuste de curvas supone cierto grado de ruido en los puntos de datos.

Preparación de Datos

Como mencionamos anteriormente, todos los métodos de interpolación aceptan un conjunto discreto de puntos de datos conocidos. Para manejar conjuntos de datos del mundo real, la función de interpolación NumXL (NxINTRPL) procesa previamente los datos para:

  • Ordene los puntos de datos en orden ascendente (basándose en X).
  • Silenciosamente suelte puntos de datos con valores faltantes.
  • Reemplace múltiples lecturas para el mismo valor X con su promedio.
Q: Deben los puntos de datos separse uniformemente?
A: No, no es necesario que la longitud del intervalo entre los puntos de datos sea uniforme, pero recomendamos que los puntos de datos se distribuyan en el rango x para mejorar la precisión de la interpolación y minimizar el impacto de los valores atípicos.

Métodos de Interpolación

  1. Interpolación de pasos 1: Interpolación plana directa.
    Los métodos de interpolación por pasos modelan la función desconocida plana/constante entre puntos de datos conocidos, usando el último valor conocido.
  1. Interpolación de pasos 2: Interpolación plana hacia atrás.
    En el caso del método plano hacia atrás, la función desconocida también se modela como plana/constante entre los puntos de datos conocidos, pero usa el nivel del siguiente punto de datos inmediato.
  1. Interpolación de pasos 3: interpolación del vecino más cercano.
    Con el método del vecino más cercano, la función desconocida aún se modela plana/constante, pero su nivel está determinado por el nivel del punto de datos más cercano.
  1. Interpolación Lineal:
    Con la interpolación lineal, conectamos cada punto de datos con sus vecinos mediante líneas rectas.

Tenga en cuenta que los valores de la función entre dos puntos de datos están determinados únicamente por esos dos puntos de datos.

  1. Spline cúbico: Spline natural
    Usando el método de spline cúbico, construimos un polinomio cúbico por partes en cada intervalo con derivadas primera y segunda coincidentes en los puntos de datos suministrados. Se elige que la segunda derivada sea cero en el primer punto y en el último punto.

La curva resultante es suave, pero no es “local”, lo que significa que si las funciones hacen un gran cambio (por ejemplo, x = 4), la curva alrededor de los puntos circundantes es “tambaleante” (es decir, se sobrepasa en los puntos intermedios).

  1. Spline cúbico: AKIMA Spline
    Para evitar la curva tambaleante de la spline cúbica natural, relajamos la continuidad de la segunda derivada alrededor de los puntos de datos (nudos), lo que da como resultado esquinas no redondeadas.

Para evitar la curva tambaleante de la spline cúbica natural, relajamos la continuidad de la segunda derivada alrededor de los puntos de datos (nudos), lo que da como resultado esquinas no redondeadas.

  1. Spline cúbico: Steffen Spline
    El Spline de Steffen agrega una nueva restricción: el segmento spline cúbico es monótono entre los puntos de datos. No hay tambaleo, punto.

La curva resultante es uniforme alrededor de los puntos de datos y no muestra ninguna oscilación entre ellos. Por lo tanto, los mínimos y máximos sólo pueden ocurrir exactamente en los puntos de datos.

Se garantiza que el spline de Steffen y su primera derivada sean continuos, pero la segunda derivada puede ser discontinua.

  1. Spline cúbico: Spline restringido (Kruger) Kruger propuso una spline cúbica restringida para evitar el exceso al sacrificar la suavidad, por lo que ya no necesitamos una segunda derivada continua en cada punto y calculamos el valor de la primera derivada numéricamente utilizando los puntos circundantes.

Usando la spline restringida (Kruger), evitamos el efecto oscilante de sobreimpulso de la spline cúbica y no necesitamos agregar restricciones de monotonicidad.

Hay otros tipos de splines cúbicos, pero sólo presentamos los que actualmente son compatibles con la versión 1.68 de NumXL.

Q: ¿Qué tipo de spline cúbico debo usar?

A: Depende de la naturaleza de sus datos y de la importancia de una curva suave y/o un efecto secundario de sobre impulso. En muchos casos, sugerimos elegir el spline cúbico restringido (Kruger) como una apuesta segura.

Q: Veo dos funciones de interpolación en NumXL: Interpolate(.) y NxINTRPL(.). ¿Cuál debo usar?

A: La función Interpolar(.) fue nuestra primera función de implementación, pero ahora está obsoleta. Todos los métodos de interpolación mencionados anteriormente están disponibles sólo en NxINTRPL(.), por lo que sólo debe usar esta función.

Q: TLa función NxINTRPL(.) acepta un valor único y una matriz para el argumento de destino. ¿Por qué?

A: El NxINTRPL(.) se ejecuta más rápido cuando se interpola para varios valores a la vez; en lugar de llamar por separado cada valor. Recomendamos pasar todos los valores de x en algunas llamadas funcionales.

Leave a Reply

Your email address will not be published.

We are glad you have chosen to leave a comment. Please keep in mind that comments are moderated according to our comment policy.

Categorías

Ver también