Spline (matemáticas)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Función matemática definida a la pieza por polinomios
Los nudos individuales al 1/3 y 2/3 establecen una línea de tres polinomios cúbicos reunidos con C2 continuidad paramétrica. Los nudos triples en ambos extremos del intervalo aseguran que la curva interpole los puntos finales

En matemáticas, una spline es una función especial definida por partes mediante polinomios. En problemas de interpolación, a menudo se prefiere la interpolación spline a la interpolación polinomial porque produce resultados similares, incluso cuando se utilizan polinomios de bajo grado, evitando al mismo tiempo el fenómeno de Runge para grados más altos.

En los subcampos de informática del diseño asistido por ordenador y los gráficos por ordenador, el término spline se refiere con mayor frecuencia a una curva polinómica (paramétrica) por partes. Las splines son curvas populares en estos subcampos debido a la simplicidad de su construcción, su facilidad y precisión de evaluación y su capacidad para aproximar formas complejas mediante el ajuste de curvas y el diseño de curvas interactivo.

El término spline proviene de los dispositivos flexibles utilizados por los constructores navales y dibujantes para dibujar formas suaves.

Introducción

El término "spline" se utiliza para referirse a una amplia clase de funciones que se utilizan en aplicaciones que requieren interpolación y/o suavizado de datos. Los datos pueden ser unidimensionales o multidimensionales. Las funciones spline para interpolación normalmente se determinan como minimizadores de medidas adecuadas de rugosidad (por ejemplo, curvatura cuadrática integral) sujetas a las restricciones de interpolación. Los splines de suavizado pueden verse como generalizaciones de los splines de interpolación donde las funciones se determinan para minimizar una combinación ponderada del error de aproximación cuadrático promedio sobre los datos observados y la medida de rugosidad. Para una serie de definiciones significativas de la medida de rugosidad, se encuentra que las funciones spline son de dimensión finita por naturaleza, lo cual es la razón principal de su utilidad en los cálculos y la representación. Durante el resto de esta sección, nos centraremos completamente en splines polinomiales unidimensionales y utilizaremos el término "spline" en este sentido restringido.

Definición

Comenzamos limitando nuestra discusión a los polinomios en una variable. En este caso, una estilina es una función polinómica a base de piezas. Esta función, llámalo S, toma valores de un intervalo [a,b] y los mapas a R{displaystyle mathbb {R}, el conjunto de números reales,

S:[a,b]→ → R.{displaystyle S:[a,b]to mathbb {R}

Queremos que S se defina por partes. Para lograr esto, deje que el intervalo [a,b] esté cubierto por k subintervalos ordenados y disjuntos,

[ti,ti+1],i=0,...... ,k− − 1{displaystyle [t_{i},t_{i+1} {mbox{ }i=0,ldotsk-1}
[a,b]=[t0,t1)∪ ∪ [t1,t2)∪ ∪ ⋯ ⋯ ∪ ∪ [tk− − 2,tk− − 1)∪ ∪ [tk− − 1,tk)∪ ∪ [tk]{displaystyle [a,b]=[t_{0},t_{1})cup [t_{1},t_{2})cup cdots cup [t_{k-2},t_{k-1})cup [t_{k-1},t_{k})cup [t_{k]}
a=t0≤ ≤ t1≤ ≤ ⋯ ⋯ ≤ ≤ tk− − 1≤ ≤ tk=b{displaystyle a=t_{0}leq t_{1}leq cdots leq t_{k-1}leq T_{k}=b}
Did you mean:

On each of these k n#34;pieces " of [a,b], we want to define a polynomial, call it Pi.

Pi:[ti,ti+1]→ → R{displaystyle P_{i}:[t_{i},t_{i+1}to mathbb {R}.
Did you mean:

On the in</ith subinterval of [a,b], S is defined by Pi,

<math alttext="{displaystyle S(t)=P_{0}(t){mbox{ }}t_{0}leq tS()t)=P0()t),t0≤ ≤ t.t1,{displaystyle S(t)=P_{0}(t){mbox{ }t_{0}leq No lo sé.<img alt="{displaystyle S(t)=P_{0}(t){mbox{ }}t_{0}leq t
<math alttext="{displaystyle S(t)=P_{1}(t){mbox{ }}t_{1}leq tS()t)=P1()t),t1≤ ≤ t.t2,{displaystyle S(t)=P_{1}(t){mbox{ }t_{1}leq No lo sé.<img alt="{displaystyle S(t)=P_{1}(t){mbox{ }}t_{1}leq t
⋮ ⋮ {displaystyle vdots }
S()t)=Pk− − 1()t),tk− − 1≤ ≤ t≤ ≤ tk.{displaystyle S(t)=P_{k-1}(t){mbox{ No.

El dado k+1 puntos ti se llaman nudos. El vector t=()t0,...... ,tk){displaystyle {mathbf}=(t_{0},dotst_{k}} se llama vector para el estilismo. Si los nudos se distribuyen equitativamente en el intervalo [a,b# Decimos que el estilismo es uniforme, de lo contrario decimos que es no uniforme.

Si las piezas polinómicas Pi cada uno tiene un grado en la mayoría n, entonces se dice que la espalina es de grado ≤ ≤ n{displaystyle leq n} (o de orden n+1).

Si S▪ ▪ Cri{displaystyle Sin C^{r_{i}} en un barrio ti, entonces se dice que la línea de suavidad (al menos) Cri{displaystyle C^{r_{i}} a ti. Eso es, a ti las dos piezas polinómicas Pi-1 y Pi compartir común valores derivados del derivado del orden 0 (valor de función) a través del derivado del orden ri (en otras palabras, las dos piezas polinómicas adyacentes se conectan con pérdida de suavidad of at most n - ri)

Pi− − 1()0)()ti)=Pi()0)()ti){displaystyle P_{i-1} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif}
Pi− − 1()1)()ti)=Pi()1)()ti){displaystyle P_{i-1}{(1)}(t_{i})=P_{i}{(1)}(t_{i}}
⋮ ⋮ {displaystyle vdots }
Pi− − 1()ri)()ti)=Pi()ri)()ti){displaystyle ¿Por qué?.

Un vector r=()r1,...... ,rk− − 1){displaystyle {mathbf}=(r_{1},dotsr_{k-1}} tal que el estilismo tiene suavidad Cri{displaystyle C^{r_{i}} a ti para i=1,...... ,k− − 1{displaystyle i=1,ldotsk-1} se llama vector de suavidad para el estilismo.

Dado un vector de nudo t{displaystyle {Mathbf}}, un grado n, y un vector de suavidad r{displaystyle {Mathbf}} para t{displaystyle {Mathbf}}, se puede considerar el conjunto de todas las líneas de grado ≤ ≤ n{displaystyle leq n} de nudo vector t{displaystyle {Mathbf}} vector de suavidad r{displaystyle {Mathbf}}. Equipado con el funcionamiento de añadir dos funciones (adicionamiento puntual) y tomar múltiples funciones reales, este conjunto se convierte en un espacio vectorial real. Esto espacio en línea es comúnmente denotado por Snr()t){displaystyle - Sí..

En el estudio matemático de los splines polinomiales, la cuestión de qué sucede cuando dos nudos, diga ti y ti+1, se acostumbran a acercarse y volverse coincidentes tiene fácil respuesta. La pieza polinómica Pi(t) desaparece, y los pedazos Pi−1(t) y P yo+1(t) unirse con la suma de las pérdidas de suavidad para ti y ti+1. Eso es,

S()t)▪ ▪ Cn− − ji− − ji+1[ti=ti+1],{displaystyle S(t)in C^{n- j_{i}-j_{i+1} [t_{i}=t_{i+1} Donde ji=n− − ri{displaystyle J_{i}=n-r_{i}

Esto conduce a una comprensión más general de un vector de nudo. La pérdida de continuidad en cualquier punto puede considerarse como el resultado de múltiples nudos ubicados en ese punto, y un tipo spline puede ser completamente caracterizado por su grado n y su vector de nudo extendido

()t0,t1,⋯ ⋯ ,t1,t2,⋯ ⋯ ,t2,t3,⋯ ⋯ ,tk− − 2,tk− − 1,⋯ ⋯ ,tk− − 1,tk){displaystyle (t_{0},t_{1},cdotst_{1},t_{2},cdotst_{2},t_{3},cdotst_{k-2},t_{k-1},cdotst_{k-1},t_{k})}

Donde ti se repite ji veces para i=1,...... ,k− − 1{displaystyle i=1,dotsk-1}.

Una curva paramétrica en el intervalo [a,b]

G()t)=()X()t),Y()t)),t▪ ▪ [a,b]{displaystyle G(t)=(X(t),Y(t){mbox{ }tin [a,b]}

es una curva spline si tanto X como Y son funciones spline del mismo grado con los mismos vectores de nudos extendidos en ese intervalo.

Ejemplos

Supongamos que el intervalo [a,b] es [0,3] y los subintervalos son [0,1], [1,2] y [2,3]. Supongamos que las piezas del polinomio son ser de grado 2, y las piezas en [0,1] y [1,2] deben unirse en valor y primera derivada (en t=1) mientras que las piezas en [1,2] y [2,3] se unen simplemente en valor (en t = 2). Esto definiría un tipo de spline S(t) para el cual

<math alttext="{displaystyle S(t)=P_{0}(t)=-1+4t-t^{2}{mbox{ }}0leq tS()t)=P0()t)=− − 1+4t− − t2,0≤ ≤ t.1{displaystyle S(t)=P_{0}(t)=-1+4t-t^{2}{mbox{ }0leq tse1}<img alt="{displaystyle S(t)=P_{0}(t)=-1+4t-t^{2}{mbox{ }}0leq t
<math alttext="{displaystyle S(t)=P_{1}(t)=2t{mbox{ }}1leq tS()t)=P1()t)=2t,1≤ ≤ t.2{displaystyle S(t)=P_{1}(t)=2t{mbox{ }1leq tse2}<img alt="{displaystyle S(t)=P_{1}(t)=2t{mbox{ }}1leq t
S()t)=P2()t)=2− − t+t2,2≤ ≤ t≤ ≤ 3{displaystyle S(t)=P_{2}(t)=2-t+t^{2}{mbox{ }2leq tleq 3}

sería un miembro de ese tipo, y también

<math alttext="{displaystyle S(t)=P_{0}(t)=-2-2t^{2}{mbox{ }}0leq tS()t)=P0()t)=− − 2− − 2t2,0≤ ≤ t.1{displaystyle S(t)=P_{0}(t)=-2t^{2}{mbox{ }0leq tse1}<img alt="{displaystyle S(t)=P_{0}(t)=-2-2t^{2}{mbox{ }}0leq t
<math alttext="{displaystyle S(t)=P_{1}(t)=1-6t+t^{2}{mbox{ }}1leq tS()t)=P1()t)=1− − 6t+t2,1≤ ≤ t.2{displaystyle S(t)=P_{1}(t)=1-6t+t^{2}{mbox{ }1leq tse2}<img alt="{displaystyle S(t)=P_{1}(t)=1-6t+t^{2}{mbox{ }}1leq t
S()t)=P2()t)=− − 1+t− − 2t2,2≤ ≤ t≤ ≤ 3{displaystyle S(t)=P_{2}(t)=-1+t-2t^{2}{mbox{ }2leq tleq 3}

sería un miembro de ese tipo. (Nota: si bien la parte polinómica 2t no es cuadrática, el resultado aún se llama spline cuadrático. Esto demuestra que el grado de una spline es el grado máximo de sus partes polinómicas). El vector de nudo extendido para este tipo de spline sería (0, 1, 2, 2, 3).

El spline más simple tiene grado 0. También se le llama función escalonada. La siguiente spline más simple tiene grado 1. También se llama spline lineal. Una spline lineal cerrada (es decir, el primer nudo y el último son iguales) en el plano es solo un polígono.

Un spline común es el spline cúbico natural. Un spline cúbico tiene grado 3 con continuidad C2, es decir, los valores y la primera y segunda derivada son continuos. Natural significa que las segundas derivadas de los polinomios spline son cero en los puntos finales del intervalo de interpolación.

S.()a)=S.()b)=0.{displaystyle S''(a),=S'(b)=0.}

Por lo tanto, la gráfica del spline es una línea recta fuera del intervalo, pero aún suave.

Algoritmo para calcular splines cúbicos naturales

Las líneas cúbicas son de la forma Sj()x)=aj+bj()x− − xj)+cj()x− − xj)2+dj()x− − xj)3{displaystyle {S}_{j}left(xright)=a_{j}+b_{j}left(x-x_{j}right)+c_{j}{j}{x-x_{j}}}{2}+d_{j}{j}{x-x_{j}right)}}}{3}}}}}} {}}} {}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}.
Dado conjunto de coordenadas C=[()x0,Sí.0),()x1,Sí.1),....,()xn,Sí.n)]{displaystyle C=left[x}_{0},{y}_{0}right),left({x}_{1},{y}_{1}right),....,left({x}_{n},{y}_{n}right)}right)}} deseamos encontrar un conjunto de n{displaystyle n,} splines Si()x){displaystyle {S}left(xright)} para i=0,...... ,n− − 1.{displaystyle i=0,ldotsn-1.}

Estos deben satisfacer:

  • Si()xi)=Sí.i=Si− − 1()xi),i=1,...... ,n− − 1.{displaystyle S_{i}left(x_{i}right)=y_{i}=S_{i-1}left(x_{i}right),i=1,ldotsn-1.}
  • S0()x0)=Sí.0.{displaystyle Sí.
  • Sn− − 1()xn)=Sí.n.{displaystyle Sí.
  • S.i()xi)=S.i− − 1()xi),i=1,...... ,n− − 1.{displaystyle {S'}left(x_{i}right)={S'}_{i-1}left(x_{i}right),i=1,ldotsn-1.}
  • S.i()xi)=S.i− − 1()xi),i=1,...... ,n− − 1.{displaystyle {S'}_{i}left(x_{i}right)={S'}_{i-1}left(x_{i}right),i=1,ldotsn-1.}
  • S.0()x0)=S.n− − 1()xn)=0{displaystyle {S'}_{0}left(x_{0}right)={S'}_{n-1}left(x_{n}right)=0}.

Definimos una escolina cúbica S{displaystyle S,} como un 5-tuple ()a,b,c,d,xt){displaystyle (a,b,c,d,x_{t},} Donde a,b,c{displaystyle a,b,c} y d{displaystyle d,} corresponde a coeficientes en el formulario mostrado anteriormente y xt{displaystyle # es igual a xj.{displaystyle x_{j}.

Algoritm for computing Natural Cubic Splines:
Entrada: conjunto de coordenadas C{displaystyle C,}, con SilencioCSilencio=n+1{displaystyle left¦
Producto: líneas fijas que se componen de n 5-tuples.

  1. Crear nuevo array a de tamaño n + 1 y para i=0,...... ,n{displaystyle i=0,ldotsn} set ai=Sí.i{displaystyle a_{i}=y_{i},}
  2. Crear nuevos arrays b y d cada uno de tamaño n.
  3. Crear nuevo array h de tamaño n y para i=0,...... ,n− − 1{displaystyle i=0,ldotsn-1} set hi=xi+1− − xi{displaystyle ¿Qué?
  4. Crear nuevo array α de tamaño n y para i=1,...... ,n− − 1{displaystyle i=1,ldotsn-1} set α α i=3hi()ai+1− − ai)− − 3hi− − 1()ai− − ai− − 1){displaystyle {fnMicrosoft} }_{i}={frac {3}{i}}}}left({a}_{i+1}-{i}_{i}right)-{frac} {3} {fn}}}left({a}-{a}_{i-1}right)}.
  5. Crear nuevos arrays c, l, μ, y z cada uno de tamaño n+1{displaystyle n+1,}.
  6. Set l0=1,μ μ 0=z0=0{displaystyle l_{0}=1,{mu }
  7. Para i=1,...... ,n− − 1{displaystyle i=1,ldotsn-1,}
    1. Set li=2()xi+1− − xi− − 1)− − hi− − 1μ μ i− − 1{displaystyle {I}_{i}=2left({x}_{i+1}-{i-1}right)-{h}_{i-1}{i-1}{mu} }_{i-1}.
    2. Set μ μ i=hili{displaystyle {fnMicrosoft {fnMicrosoft {fnMicrosoft {fnMicrosoft {fnMicrosoft {fnMicrosoft {\fnMicrosoft {fnMicrosoft {fnMicrosoft {\fnMicrosoft {\\fnMicrosoft {\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ }_{i}={frac {fn} {}} {}}} {}} {}}} {}}} {}}} {}}} {}} {}}}} {}}}}} {}}}}} {}}}}} {}}}}} {}}} {}} {}}}}} {}}}}}} {}}}}}}} {}}}}}}} {}}}}}}}}}}}}}} {} {}}}} {}}}}}} {}}}}} {}}}}}}} {}}}}}} {}}}}} {}}}}}}}}}}}}} {}}}}}} {}}}}} {}}} {} {}}}}}} {}}}}}} {}}}}}}}}}}} {}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}}}}}.
    3. Set zi=α α i− − hi− − 1zi− − 1li{displaystyle {fnMicroc} {fnMicrosoft {fnMicrosoft {fnMicrosoft {fnMicrosoft {\fnMicrosoft {f} {fnMicrosoft {\fnMicrosoft {fnMicrosoft {fnMicrosoft {\fnMicrosoft {\\fnMicrosoft {\\fnMicrosoft}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ {fn} {fn}}} {fn}} {fn}}}} {f}}.
  8. Set ln=1;zn=cn=0.{displaystyle l_{n}=1;z_{n}=c_{n}=0.
  9. Para j=n− − 1,n− − 2,...... ,0{displaystyle J=n-1,n-2,ldots0}
    1. Set cj=zj− − μ μ jcj+1{displaystyle C_{j}=z_{j}-{mu} }
    2. Set bj=aj+1− − ajhj− − hj()cj+1+2cj)3{displaystyle B_{j}={frac {fn}- {fn}- {f} {fn}} {f}} {fn} {fnK}} {f}} {f}} {f}} {fn}}}} {fn}}} {f}} {f} {f}}} {f}}} {f}}}} {f}}}}}}}} {f}}}} {f}}}}}}}}}} {\f}} {f}}}} {\f} {f}} {f}}} {f}}}}}}}}}} {f}}} {f}} {f}}}} {f}}}} {f}}}} {f} {f}f}}}}}}}}}}}}}}}}}}}}} {f}}}}}}}}} {f}}}}}}}} {h}_{j}} {3}}}
    3. Set dj=cj+1− − cj3hj{displaystyle ♪♪{j}={frac {c} {c}}} {c}}} {}}}}} {}}} {}}} {}}} {}}} {}}}}} {}}} {}}} {}}} {}}} {}}}} {}}}} {}}}}} {}}}} {}}}}}}}} {}}}} {}}}}}} {}}}}}}}}}}} {}}}}}}}}}}}}}} {}}}}}}}}}}} {}}}}}}}}}}}} {}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}} {}}}}}}}}}}} {}}}}}}}}}}}}}}}}}} {}}}}}}}}}}}}}}}}}}}}}}
  10. Crear nuevos Splines set y llamarlo output_set. Popularlo con n splines S.
  11. Para i=0,...... ,n− − 1{displaystyle i=0,ldotsn-1}
    1. Set Si,a = ai
    2. Set Si,b = bi
    3. Set Si,c = ci
    4. Set Si,d = di
    5. Set Si,x = xi
  12. Resultado_set

Expresión general para un spline cúbico de interpolación C2

La expresión general para el iésimo C2 interpolando el spline cúbico en un punto x con el natural La condición se puede encontrar usando la fórmula.

Representaciones y Nombres

Para un intervalo dado [a,b] y un vector de nudo extendido dado en ese intervalo, las splines de grado n forman un espacio vectorial. Brevemente, esto significa que sumar dos splines cualesquiera de un tipo determinado produce un spline de ese tipo determinado, y multiplicar un spline de un tipo determinado por cualquier constante produce un spline de ese tipo determinado. la dimensión de el espacio que contiene todas las splines de un determinado tipo se puede contar a partir del vector de nudo extendido:

Historia

Antes de que se utilizaran las computadoras, los cálculos numéricos se hacían a mano. Aunque se utilizaron funciones definidas por partes como la función de signo o la función de paso, generalmente se prefirieron los polinomios porque era más fácil trabajar con ellos. Con la llegada de las computadoras, los splines han ganado importancia. Primero se utilizaron como reemplazo de los polinomios en la interpolación y luego como herramienta para construir formas suaves y flexibles en gráficos por computadora.

Contenido relacionado

Conjunto vacío

En matemáticas, el conjunto vacío es el conjunto único que no tiene elementos; su tamaño o cardinalidad es cero. Algunas teorías axiomáticas de...

Historia de la lógica

La historia de la lógica se ocupa del estudio del desarrollo de la ciencia de la inferencia válida tal como se encuentran en el Organon, encontraron una...

Menor que <

El signo menor que es un símbolo matemático que denota una desigualdad entre dos valores. La forma ampliamente adoptada de dos trazos de igual longitud que...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save