# Interpolación tricúbica

En el campo matemático del análisis numérico, la interpolación tricúbica es un método para obtener valores en puntos arbitrarios en el espacio tridimensional de una función definida en un retículo regular. El enfoque implica aproximar la función localmente mediante una expresión de la forma
    $f(x,y,z)=\sum _{i=0}^{3}\sum _{j=0}^{3}\sum _{k=0}^{3}a_{ijk}x^{i}y^{j}z^{k}.$
Esta forma tiene 64 coeficientes $a_{ijk}$. Requerir que la función tenga un valor dado o derivada direccional dada en un punto impone una restricción lineal a los 64 coeficientes.
El término interpolación tricúbica se utiliza en más de un contexto. Algunos experimentos miden tanto el valor de una función como sus derivadas espaciales, y es deseable interpolar preservando los valores y las derivadas medidas en los puntos de la cuadrícula. Estos proporcionan 32 restricciones sobre los coeficientes, y se pueden proporcionar otras 32 restricciones exigiendo suavidad en derivadas más altas.
En otros contextos, se pueden obtener los 64 coeficientes considerando una cuadrícula de 3×3×3 pequeños cubos que rodean al cubo dentro del cual se evalúa la función, y ajustando la función en los 64 puntos en las esquinas de esta cuadrícula.
El artículo interpolador cúbico de Hermite indica que el método es equivalente a una aplicación secuencial de interpoladores cúbicos unidimensionales. Sea $\mathrm {CINT} _{x}(a_{-1},a_{0},a_{1},a_{2})$ el valor de un polinomio cúbico monovariable (por ejemplo, restringido por valores, $a_{-1}$, $a_{0}$, $a_{1}$, $a_{2}$ de puntos consecutivos de la cuadrícula) evaluado en $x$. En muchos casos útiles, estos polinomios cúbicos tienen la forma $\mathrm {CINT} _{x}(u_{-1},u_{0},u_{1},u_{2})=\mathbf {v} _{x}\cdot \left(u_{-1},u_{0},u_{1},u_{2}\right)$ para algún vector $\mathbf {v} _{x}$, que es una función de $x$ únicamente. El interpolador tricúbico equivale a:
    ${\begin{aligned}s(i,j,k)&={\text{ El valor en el punto de la cuadrícula }}(i,j,k)\\t(i,j,z)&=\mathrm {CINT} _{z}\left(s(i,j,-1),s(i,j,0),s(i,j,1),s(i,j,2)\right)\\u(i,y,z)&=\mathrm {CINT} _{y}\left(t(i,-1,z),t(i,0,z),t(i,1,z),t(i,2,z)\right)\\f(x,y,z)&=\mathrm {CINT} _{x}\left(u(-1,y,z),u(0,y,z),u(1,y,z),u(2,y,z)\right)\end{aligned}}$
donde $i,j,k\in \{-1,0,1,2\}$ y $x,y,z\in [0,1]$.
A primera vista, podría parecer más conveniente utilizar las 21 llamadas a $\mathrm {CINT}$ descritas anteriormente en lugar de la matriz de ${64\times 64}$ descrita en Lekien y Marsden. Sin embargo, una implementación adecuada utilizando un formato disperso para la matriz (que es bastante disperso), hace que esta última sea más eficiente. Este aspecto es aún mucho más pronunciado cuando se necesita obtener una interpolación en varios lugares dentro del mismo cubo. En este caso, la matriz ${64\times 64}$ se usa una vez para calcular los coeficientes de interpolación para todo el cubo. Luego, los coeficientes se almacenan y se utilizan para la interpolación en cualquier ubicación dentro del cubo. En comparación, el uso secuencial de integradores unidimensionales $\mathrm {CINT} _{x}$ funciona extremadamente mal para interpolaciones repetidas, porque cada paso computacional debe repetirse para cada nueva ubicación.