Diferencia entre revisiones de «Interpolación (Métodos Numéricos)»

De Cuba-Wiki
(traido de uno de los apuntes. Falta emprolijar)
 
Sin resumen de edición
Línea 1: Línea 1:
Muchas veces nos encontramos con un conjunto de puntos (xi , f (xi )) que provienen de una función descono-
Muchas veces nos encontramos con un conjunto de puntos $(x_i, f(x_i))$ que
cida f y nos gustaría poder “estimar” el valor de la función en algún punto ξ ∈ [x0 , xn ] para el cual no tenemos
provienen de una función desconocida $f$ y nos gustaría poder ``estimar''
datos. Otra razón para interpolar puede ser que la función original es demasiado complicada para tratar con ella
el valor de la función en algún punto $\xi \in [x_0,x_n]$ para el cual no tenemos datos.
y queremos simplificarla tomando sólo la información contenida en algunos puntos y “sintetizando” una función
Otra razón para interpolar puede ser que la función original es demasiado complicada
más simple. Las funciones interpoladoras hacen justamente lo que estamos buscando.
para tratar con ella y queremos simplificarla tomando sólo la información contenida
en algunos puntos y ``sintetizando'' una función más simple.
Las funciones interpoladoras hacen justamente lo que estamos buscando.


Es útil poder interpolar con polinomios porque son una clase de funciones muy conocida, que tiene derivadas
Es útil poder interpolar con polinomios porque son una clase de funciones
e integrales fáciles de calcular y que también son polinomios. Los polinomios de Taylor concentran su exactitud
muy conocida, que tiene derivadas e integrales fáciles de calcular
alrededor del punto sobre el que están centrados, pero a medida que se aleja del centro deja de ser una buena
y que también son polinomios.
aproximación, por lo que en general no sirven para intervalos medianamente grandes.
Los polinomios de Taylor concentran su exactitud alrededor del punto
sobre el que están centrados, pero a medida que se aleja del centro
deja de ser una buena aproximación, por lo que en general no sirven
para intervalos medianamente grandes.


Polinomio interpolador de Lagrange
\subsection{Polinomio interpolador de Lagrange}


8.1.
A partir de $n+1$ puntos ${x_0,x_1,\dots,x_n}$ podemos obtener
el polinomio de menor grado que pasa por todos ellos.
Se construye un cociente $L_{n,k}(x)$ con la propiedad de que $L_{n,k}(x_{i})=0$
cuando $i\neq k$ y $L_{n,k}(x_k)=1$. Un polinomio que
cumple esto es el siguiente:
\begin{displaymath}
L_{n,k}(x) =
\frac{(x-x_{0})(x-x_{1})\cdots(x-x_{k-1})(x-x_{k+1})\cdots(x-x_{n})}{(x_{k}-x_{0})(x_{k}-x_{1})\cdots(x_{k}-x_{k-1})(x_{k}-x_{k+1})\cdots(x_{k}-x_{n})} =
\prod_{\stackrel{i=0}{i\neq k}}^{n}\frac{(x-x_{i})}{(x_{k}-x_{i})}
\end{displaymath}


A partir de n + 1 puntos x0 , x1 , . . . , xn podemos obtener el polinomio de menor grado que pasa por todos
\begin{figure}[h]
ellos. Se construye un cociente Ln,k (x) con la propiedad de que Ln,k (xi ) = 0 cuando i = k y Ln,k (xk ) = 1. Un
\centering
polinomio que cumple esto es el siguiente:
\includegraphics[width=12cm]{burdenlnk.png}
\caption{Polinomio $L_{n,k}(x)$.}
\end{figure}


n
\begin{theorem}
∏ (x − xi )
Si ${x_0,x_1,\dots,x_n}$ son $n+1$ números distintos y si $f$
(x − x0 )(x − x1 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn )
es una función cuyos valores están dados en esos números, entonces
=
\textbf{existe} un \textbf{único} polinomio $P$ de grado a lo sumo $n$, con la propiedad
(xk − x0 )(xk − x1 ) · · · (xk − xk−1 )(xk − xk+1 ) · · · (xk − xn )
de que $f(x_{k})=P(x_{k})$ para $k=0,\ldots,n$. Este polinomio está dado
(xk − xi )
por:
i=0
\begin{displaymath}
P(x)=\sum_{k=0}^{n}f(x_i)L_{n,k}(x)
\end{displaymath}
\end{theorem}


Ln,k (x) =
\begin{theorem}
Sean ${x_0,x_1,\dots,x_n}$ en $[a,b]$, $f \in C^{n+1}[a,b]$
entonces para todo $x$ en $[a,b]$,
existe $\xi$ en $[a,b]$, que depende de $x$, tal que:
\begin{displaymath}
f(x)=P(x)+\frac{f^{(n+1)}(\xi(x))}{(n+1)!}\prod_{i=0}^n(x - x_i)
\end{displaymath}
\end{theorem}


i=k
El uso de los polinomios de Lagrange plantea dos problemas inmediatos:
uno es que el término del error es difícil de aplicar. El otro problema
es que teniendo una aproximación de grado $n$, si se quiere obtener
ahora la de grado $n+1$, no hay forma de aprovechar los cálculos
ya hechos para ahorrar trabajo en el cálculo del nuevo polinomio.
Como el polinomio es único, veremos que se puede encontrar otra forma
de construirlo que permita agregar más puntos en el futuro sin un
costo tan alto.


Figura 3: Polinomio Ln,k (x).
\begin{definition}
Sean $k$ números enteros distintos $m_1,\dots,m_k$ que cumplen
$0 \le m_i \le n$ para cada $i$, se define a
$P_{m_{1},m_{2},\dots,m_{k}}(x)$ como el polinomio interpolante en
los puntos $x_{m_{1}},x_{m_{2}},\dots,x_{m_k}$.
\end{definition}


Teorema 8.1. Si x0 , x1 , . . . , xn son n + 1 números distintos y si f es una función cuyos valores están dados
\begin{theorem}
en esos números, entonces existe un único polinomio P de grado a lo sumo n, con la propiedad de que
\label{recinterpol}
f (xk ) = P (xk ) para k = 0, . . . , n. Este polinomio está dado por:
Sea $f$ definida en $n+1$ puntos distintos $x_{0},\dots,x_{n}$
con $x_i$ y $x_j$ dos puntos del conjunto distintos entre si
y $P(x)$ el polinomio de Lagrange de grado a lo sumo $n$ que interpola a $f$
en esos $n+1$ puntos, entonces el polinomio puede expresarse como
$$P(x)=\frac{(x-x_{j})P_{0,1,\dots,j-1,j+1,\ldots,n}(x)-(x-x_{i})P_{0,1,\dots,i-1,i+1,\ldots,n}(x)}{(x_{i}-x_{j})}$$
\end{theorem}


n
De acuerdo con el \textbf{Teorema \ref{recinterpol}},
los polinomios interpolantes pueden generarse
de manera recursiva aprovechando polinomios ya calculados.


P (x) =
\subsection{Forma de Newton del polinomio interpolador}


k=0
\begin{definition}
La diferencia dividida cero de $f$ respecto
a $x_{i}$ se define como
$$f[x_{i}]= f(x_{i})$$
y la k-ésima diferencia
dividida relativa a $x_{i}, x_{i+1},\dots,x_{i+k}$ está dada por
$$f[x_{i},x_{i+1},\dots,x_{i+k}]=\frac{f[x_{i+1},x_{i+2},\dots,x_{i+k}]-f[x_{i},x_{i+1},\dots,x_{i+k-1}]}{x_{i+k}-x_{i}}$$
\end{definition}


f (xi )Ln,k (x)
\begin{theorem}
Se puede demostrar que el polinomio interpolador $P_{n}(x)$ se puede expresar como
$$P_{n}(x)=a_{0}+a_{1}(x-x_{0})+a_{2}(x-x_{0})(x-x_{1})+\dots+a_{n}(x-x_{0})(x-x_{1})\cdots(x-x_{n-1})$$
donde $a_{k}=f[x_{0},\dots,x_{k}]$.
\end{theorem}


Teorema 8.2. Sean x0 , x1 , . . . , xn en [a, b], f ∈ C n+1 [a, b] entonces para todo x en [a, b], existe ξ en [a, b], que
Usando esta definición se puede ir armando el polinomio interpolador
depende de x, tal que:
de una serie de puntos de forma incremental, de manera que para agregar
n
un punto más al polinomio se puede aprovechar lo ya calculado.
f (n+1) (ξ(x)) ∏
f (x) = P (x) +
(x − xi )
(n + 1)! i=0


9
\begin{figure}[h]
\centering
\includegraphics[width=16cm]{difdiv.png}
\caption{Diferencias divididas.}
\end{figure}


El uso de los polinomios de Lagrange plantea dos problemas inmediatos: uno es que el término del error es
\subsection{Splines}
difícil de aplicar. El otro problema es que teniendo una aproximación de grado n, si se quiere obtener ahora la
de grado n + 1, no hay forma de aprovechar los cálculos ya hechos para ahorrar trabajo en el cálculo del nuevo
polinomio. Como el polinomio es único, veremos que se puede encontrar otra forma de construirlo que permita
agregar más puntos en el futuro sin un costo tan alto.


Definición. Sean k números enteros distintos m1 , . . . , mk que cumplen 0 ≤ mi ≤ n para cada i, se define a
Los polinomios tienen una gran desventaja como interpoladores y es
Pm1 ,m2 ,...,mk (x) como el polinomio interpolante en los puntos xm1 , xm2 , . . . , xmk .
que cuanto mayor es el grado, más oscilan. Un procedimiento alternativo
consiste en dividir el intervalo en una serie de subintervalos y en
cada subintervalo construir un polinomio distinto de aproximación,
basándose en la idea de que si cada intervalo usa un polinomio de
un grado pequeño, se obtendrá un resultado mucho mejor que con Lagrange.


Teorema 8.3. Sea f definida en n + 1 puntos distintos x0 , . . . , xn con xi y xj dos puntos del conjunto distintos
La aproximación polinómica fragmentaria más simple consiste en unir
entre si y P (x) el polinomio de Lagrange de grado a lo sumo n que interpola a f en esos n + 1 puntos, entonces
una serie de puntos mediante una serie de segmentos de rectas. La
el polinomio puede expresarse como
aproximación por funciones lineales ofrece una desventaja, que no
se tiene la seguridad de que haya diferenciabilidad en los extremos
de los subintervalos lo cual geométricamente significa que la función
interpolante no es ``suave'' en esos puntos.


P (x) =
El tipo más simple de función de polinomio fragmentario diferenciable
en un intervalo entero $[x_{0},x_{n}]$ es la función obtenida al
ajustar un polinomio cuadrático entre cada par consecutivo de nodos.
Esto se hace construyendo una cuadrática en $[x_{0},x_{1}]$ que concuerde
con la función en $x_{0}$ y en $x_{1}$, otra cuadrática en $[x_{1},x_{2}]$
que concuerde con la función en $x_{1}$ y en $x_{2}$ y así sucesivamente.
Un polinomio cuadrático general tiene tres constantes arbitrarias,
y únicamente se requieren dos condiciones para ajustar los datos en
los extremos de cada intervalo, por ello existe una flexibilidad que
permite seleccionar la cuadrática de modo que la interpolante tenga
una derivada continua en $[x_{0},x_{n}]$. El problema se presenta
cuando hay que especificar las condiciones referentes a la derivada
de la interpolante en los extremos $x_{0}$ y $x_{n}$: no hay constantes
suficientes para cerciorarse de que se satisfagan las condiciones.


(x − xj )P0,1,...,j−1,j+1,...,n (x) − (x − xi )P0,1,...,i−1,i+1,...,n (x)
La aproximación polinómica fragmentaria más común utiliza polinomios
(xi − xj )
de grado tres entre cada par consecutivo de puntos y recibe el nombre
de interpolación por trazadores cúbicos (o spline cúbico). Un polinomio
cúbico general contiene cuatro constantes para variar, así ofrece
suficiente flexibilidad para garantizar que el interpolante no sólo
sea continuamente diferenciable en el intervalo, sino que además tenga
una segunda derivada continua en el intervalo, aunque no se espera
que las derivadas segundas coincidan con las de la función ni siquiera
en los nodos.


De acuerdo con el Teorema 8.3, los polinomios interpolantes pueden generarse de manera recursiva apro-
\paragraph{Definición:} Dada una función $f$ definida en $[a,b]$ y
vechando polinomios ya calculados.
un conjunto de nodos $a=x_{0}<x_{1}<\dots<x_{n}=b$ un spline cúbico
$S$ para $f$ es una función que cumple con las siguientes condiciones:


Forma de Newton del polinomio interpolador
\begin{enumerate}
\renewcommand{\labelenumi}{\alph{enumi}.}
\setlength{\itemsep}{0pt}
\item $S(x)$ es un polinomio cúbico denotado $S_{j}(x)$ en el subintervalo $[x_{j},x_{j+1}]$ para $j$ de $0$ a $n-1$
\item $S(x_{j})=f(x_{j})$ para $j$ de $0$ a $n$
\item $S_{j+1}(x_{j+1})=S_{j}(x_{j+1})$ para $j$ de $0$ a $n-2$
\item $S'_{j+1}(x_{j+1})=S'_{j}(x_{j+1})$ para $j$ de $0$ a $n-2$
\item $S{''}_{j+1}(x_{j+1})=S''_{j}(x_{j+1})$ para $j$ de $0$ a $n-2$
\item{
Se satisface una de las siguientes condiciones de frontera:
\begin{itemize}
\setlength{\itemsep}{0pt}
\item $S''(x_{0})=S''(x_{n})=0$ (spline libre o \textbf{natural})
\item $S'(x_{0})=f'(x_{0}) \textrm{\ y\ } S'(x_{n})=f'(x_{n}) $ (spline \textbf{sujeto})
\end{itemize}
}
\end{enumerate}


8.2.
Generalmente en las condiciones de frontera sujeta se logran aproximaciones
más exactas, ya que usan más información acerca de la función, pero
se requiere tener valores de la derivada en los extremos. Existen
también otras condiciones de frontera posibles además de la natural
o la sujeta.


Definición. La diferencia dividida cero de f respecto a xi se define como
Cuando deseo interpolar un conjunto de puntos $x_{0},\dots,x_{n}$, el
 
planteo de todas las condiciones mencionadas para $S(x)$ se puede
f [xi ] = f (xi )
llevar a la forma de un sistema de ecuaciones tridiagonal que queda
 
en función de uno de los cuatro coeficientes de cada spline y resulta
y la k-ésima diferencia dividida relativa a xi , xi+1 , . . . , xi+k está dada por
ser estrictamente diagonal dominante, por lo que tiene solución única,
 
puede almacenarse usando poco espacio y resolverse relativamente rápido.
f [xi , xi+1 , . . . , xi+k ] =
 
f [xi+1 , xi+2 , . . . , xi+k ] − f [xi , xi+1 , . . . , xi+k−1 ]
xi+k − xi
 
Teorema 8.4. Se puede demostrar que el polinomio interpolador Pn (x) se puede expresar como
 
Pn (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) + · · · + an (x − x0 )(x − x1 ) · · · (x − xn−1 )
 
donde ak = f [x0 , . . . , xk ].
 
Usando esta definición se puede ir armando el polinomio interpolador de una serie de puntos de forma
incremental, de manera que para agregar un punto más al polinomio se puede aprovechar lo ya calculado.
 
Splines
 
8.3.
 
Los polinomios tienen una gran desventaja como interpoladores y es que cuanto mayor es el grado, más
oscilan. Un procedimiento alternativo consiste en dividir el intervalo en una serie de subintervalos y en cada
subintervalo construir un polinomio distinto de aproximación, basándose en la idea de que si cada intervalo usa
un polinomio de un grado pequeño, se obtendrá un resultado mucho mejor que con Lagrange.
 
La aproximación polinómica fragmentaria más simple consiste en unir una serie de puntos mediante una
serie de segmentos de rectas. La aproximación por funciones lineales ofrece una desventaja, que no se tiene la
seguridad de que haya diferenciabilidad en los extremos de los subintervalos lo cual geométricamente significa
que la función interpolante no es “suave” en esos puntos.
 
El tipo más simple de función de polinomio fragmentario diferenciable en un intervalo entero [x0 , xn ] es
la función obtenida al ajustar un polinomio cuadrático entre cada par consecutivo de nodos. Esto se hace
construyendo una cuadrática en [x0 , x1 ] que concuerde con la función en x0 y en x1 , otra cuadrática en [x1 , x2 ]
que concuerde con la función en x1 y en x2 y así sucesivamente. Un polinomio cuadrático general tiene tres
constantes arbitrarias, y únicamente se requieren dos condiciones para ajustar los datos en los extremos de cada
intervalo, por ello existe una flexibilidad que permite seleccionar la cuadrática de modo que la interpolante tenga
una derivada continua en [x0 , xn ]. El problema se presenta cuando hay que especificar las condiciones referentes
 
10
 
Figura 4: Diferencias divididas.
 
a la derivada de la interpolante en los extremos x0 y xn : no hay constantes suficientes para cerciorarse de que
se satisfagan las condiciones.
 
La aproximación polinómica fragmentaria más común utiliza polinomios de grado tres entre cada par con-
secutivo de puntos y recibe el nombre de interpolación por trazadores cúbicos (o spline cúbico). Un polinomio
cúbico general contiene cuatro constantes para variar, así ofrece suficiente flexibilidad para garantizar que el
interpolante no sólo sea continuamente diferenciable en el intervalo, sino que además tenga una segunda deri-
vada continua en el intervalo, aunque no se espera que las derivadas segundas coincidan con las de la función
ni siquiera en los nodos.
 
Definición: Dada una función f definida en [a, b] y un conjunto de nodos a = x0 < x1 < . . . < xn = b un
spline cúbico S para f es una función que cumple con las siguientes condiciones:
 
a. S(x) es un polinomio cúbico denotado Sj (x) en el subintervalo [xj , xj+1 ] para j de 0 a n − 1
 
b. S(xj ) = f (xj ) para j de 0 a n
 
c. Sj+1 (xj+1 ) = Sj (xj+1 ) para j de 0 a n − 2
 
d. Sj+1 (xj+1 ) = Sj (xj+1 ) para j de 0 a n − 2
 
j+1 (xj+1 )
 
e. S
 
f. Se satisface una de las siguientes condiciones de frontera:
 
S (x0 ) = S (xn ) = 0 (spline libre o natural)
S (x0 ) = f (x0 ) y S (xn ) = f (xn ) (spline sujeto)
 
Generalmente en las condiciones de frontera sujeta se logran aproximaciones más exactas, ya que usan más
información acerca de la función, pero se requiere tener valores de la derivada en los extremos. Existen también
otras condiciones de frontera posibles además de la natural o la sujeta.
 
Cuando deseo interpolar un conjunto de puntos x0 , . . . , xn , el planteo de todas las condiciones mencionadas
para S(x) se puede llevar a la forma de un sistema de ecuaciones tridiagonal que queda en función de uno de
los cuatro coeficientes de cada spline y resulta ser estrictamente diagonal dominante, por lo que tiene solución
única, puede almacenarse usando poco espacio y resolverse relativamente rápido.
 
= Sj (xj+1 ) para j de 0 a n − 2
 
11

Revisión del 03:58 10 oct 2010

Muchas veces nos encontramos con un conjunto de puntos $(x_i, f(x_i))$ que provienen de una función desconocida $f$ y nos gustaría poder ``estimar el valor de la función en algún punto $\xi \in [x_0,x_n]$ para el cual no tenemos datos. Otra razón para interpolar puede ser que la función original es demasiado complicada para tratar con ella y queremos simplificarla tomando sólo la información contenida en algunos puntos y ``sintetizando una función más simple. Las funciones interpoladoras hacen justamente lo que estamos buscando.

Es útil poder interpolar con polinomios porque son una clase de funciones muy conocida, que tiene derivadas e integrales fáciles de calcular y que también son polinomios. Los polinomios de Taylor concentran su exactitud alrededor del punto sobre el que están centrados, pero a medida que se aleja del centro deja de ser una buena aproximación, por lo que en general no sirven para intervalos medianamente grandes.

\subsection{Polinomio interpolador de Lagrange}

A partir de $n+1$ puntos ${x_0,x_1,\dots,x_n}$ podemos obtener el polinomio de menor grado que pasa por todos ellos. Se construye un cociente $L_{n,k}(x)$ con la propiedad de que $L_{n,k}(x_{i})=0$ cuando $i\neq k$ y $L_{n,k}(x_k)=1$. Un polinomio que cumple esto es el siguiente: \begin{displaymath} L_{n,k}(x) = \frac{(x-x_{0})(x-x_{1})\cdots(x-x_{k-1})(x-x_{k+1})\cdots(x-x_{n})}{(x_{k}-x_{0})(x_{k}-x_{1})\cdots(x_{k}-x_{k-1})(x_{k}-x_{k+1})\cdots(x_{k}-x_{n})} = \prod_{\stackrel{i=0}{i\neq k}}^{n}\frac{(x-x_{i})}{(x_{k}-x_{i})} \end{displaymath}

\begin{figure}[h] \centering \includegraphics[width=12cm]{burdenlnk.png} \caption{Polinomio $L_{n,k}(x)$.} \end{figure}

\begin{theorem} Si ${x_0,x_1,\dots,x_n}$ son $n+1$ números distintos y si $f$ es una función cuyos valores están dados en esos números, entonces \textbf{existe} un \textbf{único} polinomio $P$ de grado a lo sumo $n$, con la propiedad de que $f(x_{k})=P(x_{k})$ para $k=0,\ldots,n$. Este polinomio está dado por: \begin{displaymath} P(x)=\sum_{k=0}^{n}f(x_i)L_{n,k}(x) \end{displaymath} \end{theorem}

\begin{theorem} Sean ${x_0,x_1,\dots,x_n}$ en $[a,b]$, $f \in C^{n+1}[a,b]$ entonces para todo $x$ en $[a,b]$, existe $\xi$ en $[a,b]$, que depende de $x$, tal que: \begin{displaymath} f(x)=P(x)+\frac{f^{(n+1)}(\xi(x))}{(n+1)!}\prod_{i=0}^n(x - x_i) \end{displaymath} \end{theorem}

El uso de los polinomios de Lagrange plantea dos problemas inmediatos: uno es que el término del error es difícil de aplicar. El otro problema es que teniendo una aproximación de grado $n$, si se quiere obtener ahora la de grado $n+1$, no hay forma de aprovechar los cálculos ya hechos para ahorrar trabajo en el cálculo del nuevo polinomio. Como el polinomio es único, veremos que se puede encontrar otra forma de construirlo que permita agregar más puntos en el futuro sin un costo tan alto.

\begin{definition} Sean $k$ números enteros distintos $m_1,\dots,m_k$ que cumplen $0 \le m_i \le n$ para cada $i$, se define a $P_{m_{1},m_{2},\dots,m_{k}}(x)$ como el polinomio interpolante en los puntos $x_{m_{1}},x_{m_{2}},\dots,x_{m_k}$. \end{definition}

\begin{theorem} \label{recinterpol} Sea $f$ definida en $n+1$ puntos distintos $x_{0},\dots,x_{n}$ con $x_i$ y $x_j$ dos puntos del conjunto distintos entre si y $P(x)$ el polinomio de Lagrange de grado a lo sumo $n$ que interpola a $f$ en esos $n+1$ puntos, entonces el polinomio puede expresarse como $$P(x)=\frac{(x-x_{j})P_{0,1,\dots,j-1,j+1,\ldots,n}(x)-(x-x_{i})P_{0,1,\dots,i-1,i+1,\ldots,n}(x)}{(x_{i}-x_{j})}$$ \end{theorem}

De acuerdo con el \textbf{Teorema \ref{recinterpol}}, los polinomios interpolantes pueden generarse de manera recursiva aprovechando polinomios ya calculados.

\subsection{Forma de Newton del polinomio interpolador}

\begin{definition} La diferencia dividida cero de $f$ respecto a $x_{i}$ se define como $$f[x_{i}]= f(x_{i})$$ y la k-ésima diferencia dividida relativa a $x_{i}, x_{i+1},\dots,x_{i+k}$ está dada por $$f[x_{i},x_{i+1},\dots,x_{i+k}]=\frac{f[x_{i+1},x_{i+2},\dots,x_{i+k}]-f[x_{i},x_{i+1},\dots,x_{i+k-1}]}{x_{i+k}-x_{i}}$$ \end{definition}

\begin{theorem} Se puede demostrar que el polinomio interpolador $P_{n}(x)$ se puede expresar como $$P_{n}(x)=a_{0}+a_{1}(x-x_{0})+a_{2}(x-x_{0})(x-x_{1})+\dots+a_{n}(x-x_{0})(x-x_{1})\cdots(x-x_{n-1})$$ donde $a_{k}=f[x_{0},\dots,x_{k}]$. \end{theorem}

Usando esta definición se puede ir armando el polinomio interpolador de una serie de puntos de forma incremental, de manera que para agregar un punto más al polinomio se puede aprovechar lo ya calculado.

\begin{figure}[h] \centering \includegraphics[width=16cm]{difdiv.png} \caption{Diferencias divididas.} \end{figure}

\subsection{Splines}

Los polinomios tienen una gran desventaja como interpoladores y es que cuanto mayor es el grado, más oscilan. Un procedimiento alternativo consiste en dividir el intervalo en una serie de subintervalos y en cada subintervalo construir un polinomio distinto de aproximación, basándose en la idea de que si cada intervalo usa un polinomio de un grado pequeño, se obtendrá un resultado mucho mejor que con Lagrange.

La aproximación polinómica fragmentaria más simple consiste en unir una serie de puntos mediante una serie de segmentos de rectas. La aproximación por funciones lineales ofrece una desventaja, que no se tiene la seguridad de que haya diferenciabilidad en los extremos de los subintervalos lo cual geométricamente significa que la función interpolante no es ``suave en esos puntos.

El tipo más simple de función de polinomio fragmentario diferenciable en un intervalo entero $[x_{0},x_{n}]$ es la función obtenida al ajustar un polinomio cuadrático entre cada par consecutivo de nodos. Esto se hace construyendo una cuadrática en $[x_{0},x_{1}]$ que concuerde con la función en $x_{0}$ y en $x_{1}$, otra cuadrática en $[x_{1},x_{2}]$ que concuerde con la función en $x_{1}$ y en $x_{2}$ y así sucesivamente. Un polinomio cuadrático general tiene tres constantes arbitrarias, y únicamente se requieren dos condiciones para ajustar los datos en los extremos de cada intervalo, por ello existe una flexibilidad que permite seleccionar la cuadrática de modo que la interpolante tenga una derivada continua en $[x_{0},x_{n}]$. El problema se presenta cuando hay que especificar las condiciones referentes a la derivada de la interpolante en los extremos $x_{0}$ y $x_{n}$: no hay constantes suficientes para cerciorarse de que se satisfagan las condiciones.

La aproximación polinómica fragmentaria más común utiliza polinomios de grado tres entre cada par consecutivo de puntos y recibe el nombre de interpolación por trazadores cúbicos (o spline cúbico). Un polinomio cúbico general contiene cuatro constantes para variar, así ofrece suficiente flexibilidad para garantizar que el interpolante no sólo sea continuamente diferenciable en el intervalo, sino que además tenga una segunda derivada continua en el intervalo, aunque no se espera que las derivadas segundas coincidan con las de la función ni siquiera en los nodos.

\paragraph{Definición:} Dada una función $f$ definida en $[a,b]$ y un conjunto de nodos $a=x_{0}<x_{1}<\dots<x_{n}=b$ un spline cúbico $S$ para $f$ es una función que cumple con las siguientes condiciones:

\begin{enumerate} \renewcommand{\labelenumi}{\alph{enumi}.} \setlength{\itemsep}{0pt} \item $S(x)$ es un polinomio cúbico denotado $S_{j}(x)$ en el subintervalo $[x_{j},x_{j+1}]$ para $j$ de $0$ a $n-1$ \item $S(x_{j})=f(x_{j})$ para $j$ de $0$ a $n$ \item $S_{j+1}(x_{j+1})=S_{j}(x_{j+1})$ para $j$ de $0$ a $n-2$ \item $S'_{j+1}(x_{j+1})=S'_{j}(x_{j+1})$ para $j$ de $0$ a $n-2$ \item $S{}_{j+1}(x_{j+1})=S_{j}(x_{j+1})$ para $j$ de $0$ a $n-2$ \item{ Se satisface una de las siguientes condiciones de frontera: \begin{itemize} \setlength{\itemsep}{0pt} \item $S(x_{0})=S(x_{n})=0$ (spline libre o \textbf{natural}) \item $S'(x_{0})=f'(x_{0}) \textrm{\ y\ } S'(x_{n})=f'(x_{n}) $ (spline \textbf{sujeto}) \end{itemize} } \end{enumerate}

Generalmente en las condiciones de frontera sujeta se logran aproximaciones más exactas, ya que usan más información acerca de la función, pero se requiere tener valores de la derivada en los extremos. Existen también otras condiciones de frontera posibles además de la natural o la sujeta.

Cuando deseo interpolar un conjunto de puntos $x_{0},\dots,x_{n}$, el planteo de todas las condiciones mencionadas para $S(x)$ se puede llevar a la forma de un sistema de ecuaciones tridiagonal que queda en función de uno de los cuatro coeficientes de cada spline y resulta ser estrictamente diagonal dominante, por lo que tiene solución única, puede almacenarse usando poco espacio y resolverse relativamente rápido.