Investigamos por diferentes espacios para traerte la respuesta a tu duda, en caso de alguna difcultad deja la pregunta y te contestamos con gusto, porque estamos para ayudarte.
Solución:
Una spline cúbica es solo una string de piezas cúbicas unidas entre sí de modo que (normalmente) las uniones sean suaves. Los valores de los argumentos en los que se producen las uniones se denominan “nudos”, y la colección de nodos se denomina “secuencia de nudos” o “vector de nudos”.
Tomemos la secuencia de nudos para arreglar, por un tiempo. Luego, el conjunto de todas las splines cúbicas (con estos nudos dados) forma un espacio vectorial, y resulta que algunas cosas llamadas funciones de base b-spline forman una base para este espacio vectorial. Si no sabe nada sobre espacios vectoriales, esto solo significa que puede escribir cualquier spline únicamente como una combinación lineal de estas funciones básicas. Cuando escribe una curva spline como una combinación lineal de funciones base b-spline de esta manera, se denomina “b-spline”. Entonces, los b-splines no son un nuevo tipo de spline, son simplemente una forma diferente de expresar cualquier spline existente, de la misma manera que “XVI” es una forma diferente de expresar el número dieciséis. Y el punto importante es que ningún El polinomio por partes (es decir, cualquier spline) se puede escribir como b-spline.
Las funciones $ B_0 $, $ B_1 $, $ B_2 $, $ B_3 $ que describiste son las piezas que se utilizan para formar funciones base en el caso especial de splines cúbicos con uniforme nudos La palabra “uniforme” simplemente significa que los nudos están igualmente espaciados, por lo que, por lo general, se toman como números enteros … 0,1,2,3,4, … Lo bueno de los nudos uniformes es que todos los Las funciones base resultantes tienen una forma idéntica, por lo que cualquiera de ellas puede obtenerse simplemente traduciendo una primaria (moviéndola hacia la izquierda o hacia la derecha). Y, debido a que el espaciado de nodos es tan simple, es fácil escribir fórmulas explícitas para estas funciones de base uniformes.
Esta imagen muestra los gráficos de sus cuatro funciones:
Entonces, aquí, nos enfocamos en el intervalo PS[0,1]PS. Las funciones están etiquetadas $ a $, $ b $, $ c $, $ d $, en vez de $ B_0 $, $ B_1 $, $ B_2 $, $ B_3 $.
begin align * a (u) & = tfrac16 u ^ 3 \ b (u) & = tfrac16 left (1 + 3u + 3u ^ 2 – 3u ^ 3 right) \ c (u) & = tfrac16 left (4 – 6u ^ 2 + 3u ^ 3 right) \ d (u) & = tfrac16 left (1 – 3u + 3u ^ 2 – u ^ 3 right) end align *
Para formar cualquier función básica, cambie estas piezas y péguelas juntas, como se muestra aquí:
Unos pocos cálculos sencillos, utilizando la continuidad, muestran que, de hecho, $ h = 2/3 $ y $ k = 1/6 $. Esta curva compuesta es $ C_2 $. Como mencioné anteriormente, puede obtener cualquier otra función de base (uniforme) desplazándola hacia la derecha o hacia la izquierda.
Si los nodos no son uniformes, entonces las funciones básicas son mucho más complejas y la gente no suele escribir fórmulas cerradas para ellos. En cambio, son generados de forma recursiva por el algoritmo deBoor-Cox, comenzando con el grado cero y trabajando hacia arriba a grados más altos.
Para obtener más información, mire aquí, especialmente en “unidad 6”, o aquí, o aquí.
Splines como curvas de interpolación de curvatura mínima
Para curvas con curvatura moderada, la segunda derivada es un buen indicador de la curvatura real (inversa del radio de curvatura).
Una spline es el minimizador del problema variacional para interpolar un conjunto dado de puntos mientras se minimiza la segunda derivada: $$ y = mathop arg min _ u in H ^ 2 ([a,b]) int_a ^ b | u ” (x) | _2 ^ 2 , dx qquad text st qquad begin split u (x_k) = x_k, quad k = 1,2 , …, n \ a le x_1
- cúbico a trozos en intervalos $[x_i,x_i+1]PS
- lineal en $[a,x_1]$ y $[x_n,b]PS
- continua hasta la segunda derivada, y
- tiene la fórmula general $$ y (x) = a + bx + sum_ k = 1 ^ n c_k , (x-x_k) _ + ^ 3 $$
B-splines
La B-spline cúbica (spline base) centrada en $ x = 0 $ es
$$ beta_3 (x) = frac16 left[(x+2)_+^3-4,(x+1)_+^3+6,(x)_+^3-4,(x-1)_+^3+(x-2)_+^3right]$$
(el gráfico tiene una escala incorrecta, demasiado alto en un factor de 6)
lo que obviamente invalida que los valores de la función en los números enteros sean solo 0 y 1. Pero aún así es una función spline con soporte compacto, mínimamente así, con nodos en los números enteros.
Localmente, cada spline cúbico con nodos enteros se puede expresar como una combinación lineal $ sum_ k = m ^ nc_k beta_3 (xk) $ de B-splines.
Curvas de Bezier
Las curvas de Bezier, a veces llamadas splines de Bezier, tienen la fórmula $$ y (x) = (1-x) ^ 3P_0 + 3 (1-x) ^ 2xC_0 + 3 (1-x) x ^ 2C_1 + x ^ 3P_1 $$ por $ x in[0,1]PS
En el contexto de spline general, se pueden usar para expresar un segmento de un spline. No todas las concatenaciones de dichos segmentos dan como resultado un spline, se debe garantizar la continuidad de la primera y segunda derivadas.
La buena propiedad de las curvas de Bézier es que pueden evaluarse como combinaciones convexas de combinaciones convexas de … Si $[A,B]_x = (1-x) A + xB $ luego $$ y (x) = Bigl[bigl[,[P_0,C_0]_X,[C_0,C_1]_x , bigr]_x, , bigl[,[C_0,C_1]_X,[C_1,P_1]_x , bigr]_x Bigr]_x $$
Otras parametrizaciones de segmentos cúbicos
Sus funciones básicas, también en el intervalo $[0,1]$, toma los valores $$ begin array B_k (x) & B’_k (x) & B ” _ k (x) & B_k (0) & B’_k (0) & B ” _ k (0) & B_k (1) & B ‘ _k (1) & B ” _ k (1) \ hline tfrac16 (1-x) ^ 3 & – tfrac12 (1-x) ^ 2 & (1-x) & tfrac16 & – tfrac12 & 1 & 0 & 0 & 0 \ tfrac16 ( 3x ^ 3-6x ^ 2 + 4) & tfrac12 (3x ^ 2-4x) & (3x-2) & tfrac23 & 0 & -2 & tfrac16 & – tfrac12 & 1 \ tfrac16 (-3x ^ 3 + 3x ^ 2 + 3x + 1) & tfrac12 (-3x ^ 2 + 2x + 1) & (- 3x + 1) & tfrac16 & tfrac12 & 1 & tfrac23 & 0 & -2 \ tfrac16x ^ 3 & tfrac12x ^ 2 & x & 0 & 0 & 0 & tfrac16 & tfrac12 & 1 end array $$ donde se puede ver que los valores y derivados en $ x = 0 $ coinciden con los de $ x = 1 $ en la siguiente línea. Consulte la actualización a continuación para saber cómo interpretar esto con más detalle.
Las parametrizaciones útiles son, en mi opinión, $$ y (x) = (1-x) , y (0) + x , y (1) – tfrac16x (1-x) (2-x) , y ” (0) – tfrac16x (1-x) (1 + x) , y ” (1) $$ y $$ y (x) = (1-x) ^ 2 (1 + 2x) , y (0) + x ^ 2 (3-2x) , y (1) + x (1-x) ^ 2y ‘(0) -x ^ 2 (1-x) y’ (1) $$
Actualizar: Según la respuesta de bubbas anterior, ahora veo que $ B_k $ son las piezas de la spline de base cúbica $ β_3 (x) $. Entonces, por $ x in[0,1]$, begin align d (x) = B_0 (x) & = beta_3 (x + 1) = tfrac16 beta_3 (-1-x) = tfrac16 [(1-x)^3]\ c (x) = B_1 (x) & = beta_3 (x quad ; ,) = tfrac16 [(x+2)^3-4(x+1)^3-6x^3]= tfrac16 [3x^3-6x^2+4]\ b (x) = B_2 (x) & = beta_3 (x-1) = tfrac16 [(x+1)^3-4x^3]= tfrac16 [-3x^3+3x^2+3x+1]\ a (x) = B_3 (x) & = beta_3 (x-2) = tfrac16 [x^3]\ end align
Comentarios y valoraciones del tutorial
Acuérdate de que tienes la opción de añadir una estimación certera si diste con la respuesta.