10 votos

Splines cúbicos naturales vs. Splits de Hermite a pedacitos

Recientemente, yo estaba leyendo acerca de un "Natural Trozos de Hermite Splines" en la Programación del Juego Gemas 5 (debajo de la Spline Basado en el Control de Tiempo de la Animación). Este particular spline se utiliza para la generación de un C2 de Hermite splines para adaptarse a algunos de los datos dados. Yo un poco entender cómo la naturaleza cubic spline de interpolación de las obras (es decir: la instalación de una matriz tridiagonal, resolver Ax=b, donde x es el vector de 2 de derivados). Sin embargo, no acabo de entender cómo este libro calcula las pendientes de una spline.

Aquí es lo que su sistema de ecuaciones se parece a: $$ \begin{multline} \begin{bmatrix} 2 & 1 & 0 &\ldots & 0\\ \Delta t_0 & 2(\Delta t_0 + \Delta t_1) & \Delta t_1 & \ldots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots\\ 0 & \ldots & \Delta t_{n-2} & 2(\Delta t_{n-2} + \Delta t_{n-1}) & \Delta t_{n-1} \\ 0 & \ldots & 0 & 1 & 2 \end{bmatrix} \begin{bmatrix} y{\prime}_0 \\ y{\prime}_1\\ \vdots\\ y{\prime}_{n-1}\\ y{\prime}_n \end{bmatrix} = \\ \begin{bmatrix} \frac{3}{\Delta t_0}(y_1-y_0)\\ \frac{3}{\Delta t_0 \Delta t_1}[\Delta t_0^{2} (y_2-y_1) + \Delta t_1^{2} (y_1-y_0)] \\ \vdots \\ \frac{3}{\Delta t_{n-2} \Delta t_{n-1}}[\Delta t_{n-2}^{2} (y_n-y_{n-1}) + \Delta t_{n-1}^{2} (y_{n-1}-y_{n-2})] \\ \frac{3}{\Delta t_{n-1}}(y_n-y_{n-1}) \end{bmatrix} \end{multline} $$

dado los datos de entrada de $(x_i,y_i)$ donde $ \Delta t_i = x_{i+1}-x_i$.

Lo que me confunde es que normalmente el desconocido es un conjunto de 2 de derivados, pero aquí, son la solución para el primer derivados. La tridiagonal que he normalmente visto naturales estrías también tiene la primera fila igual a $\begin{bmatrix} 1, & 0, & \ldots \end{bmatrix}$ y la última igual a $\begin{bmatrix} 0, & \ldots, & 1\end{bmatrix}$.

¿Alguien entiende cómo esta ecuación podría haber sido derivados? Además, hay mucha ventaja para el uso de un natural por tramos de Hermite con C2 continuidad a lo largo de una spline cúbico? He podido encontrar nada en línea trozos de Hermite curvas con C2.

Gracias.

PS: yo no soy de matemáticas gurú, así que disculpas si mis palabras o ecuaciones parecen fuera.

9voto

Andrew Puntos 140

Un $C^2$ trozos de Hermite interpolant y un spline cúbico son uno y el mismo!

Recuerde que lo que se hace derivar el sistema tridiagonal: se requiere que en un punto de unión, la segunda a la izquierda de derivados y la segunda a la derecha derivado debe ser igual.

A tal fin, considerar la forma habitual de un cúbicos de Hermite interpolant en el intervalo de $(x_i,x_{i+1})$:

$$y_i+y_i^{\prime}\left(x-x_i\right)+c_i\left(x-x_i\right)^2+d_i\left(x-x_i\right)^3$$

donde

$$\begin{align*}c_i&=\frac{3s_i-2y_i^\prime-y_{i+1}^\prime}{x_{i+1}-x_i}\\ d_i&=\frac{y_i^\prime+y_{i+1}^\prime-2s_i}{\left(x_{i+1}-x_i\right)^2}\\ s_i&=\frac{y_{i+1}-y_i}{x_{i+1}-x_i}\end{align*}$$

y $\{y_i^\prime,y_{i+1}^\prime\}$ son las pendientes (derivado de los valores) de su interpolant en los puntos correspondientes $(x_i,y_i)$, $(x_{i+1},y_{i+1})$.

Tomar la segunda derivada de la interpolant $(x_{i-1},x_i)$ evaluado en $x=x_i$ y la segunda derivada de la interpolant $(x_i,x_{i+1})$ evaluado en $x=x_i$ y les corresponden a rendimiento (dejando $h_i=x_{i+1}-x_i$):

$$c_{i-1}-c_i+3d_{i-1}h_{i-1}=0$$

La sustitución de $c$ $d$ con sus expresiones explícitas y reordenando se obtiene:

$$h_i y_{i-1}^{\prime}+2(h_{i-1}+h_i)y_i^{\prime}+h_{i-1} y_{i+1}^{\prime}=3(h_i s_{i-1}+h_{i-1} s_i)$$

lo que puede ser demostrado ser equivalente a una de las ecuaciones de su sistema tridiagonal al $h$ $s$ son reemplazados con expresiones en términos de $x$$y$.

Por supuesto, uno podría en lugar de considerar el cúbicos interpolant en la siguiente forma:

$$y_i+\beta_i\left(x-x_i\right)+\frac{y_i^{\prime\prime}}{2}\left(x-x_i\right)^2+\delta_i\left(x-x_i\right)^3$$

donde

$$\begin{align*}\beta_i&=s_i-\frac{h_i(2y_i^{\prime\prime}+y_{i+1}^{\prime\prime})}{6}\\\delta_i&=\frac{y_{i+1}^{\prime\prime}-y_i^{\prime\prime}}{6h_i}\end{align*}$$

Haciendo una operación similar como se hizo para el Hermite interpolant a esta forma (excepto los de aquí, equivale primeras derivadas en lugar de las segundas derivadas) los rendimientos

$$h_{i-1} y_{i-1}^{\prime\prime}+2(h_{i-1}+h_i)y_i^{\prime\prime}+h_i y_{i+1}^{\prime\prime}=6(s_i-s_{i-1})$$

que puede ser la forma que estamos acostumbrados.


Para completar esta respuesta, vamos a considerar la condición de frontera de la "natural" spline, $y_1^{\prime\prime}=0$ (y lo mismo para el otro extremo): para la formulación de donde resolver la tridiagonal para el segundo derivados, la sustitución es muy sencilla.

Para el caso de Hermite, uno necesita un poco de trabajo para imponer esta condición para la segunda derivada. Tomando la segunda derivada de la interpolant en $(x_1,x_2)$ evaluado en $x_1$ e igualando que a 0 rendimientos de la condición de $c_1=0$; esto se expande a

$$\frac{3s_1-2y_1^\prime-y_2^\prime}{x_2-x_1}=0$$

que se simplifica a

$$2y_1^\prime+y_2^\prime=3s_1$$

que es la primera ecuación en el sistema tridiagonal se dio. (La derivación para el otro extremo es similar).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X