Diferencia entre revisiones de «Interpolación (Métodos Numéricos)»
Sin resumen de edición |
Sin resumen de edición |
||
Línea 1: | Línea 1: | ||
Muchas veces nos encontramos con un conjunto de puntos | Muchas veces nos encontramos con un conjunto de puntos <math>(x_i, f(x_i))</math> que | ||
provienen de una función desconocida | provienen de una función desconocida <math>f</math> y nos gustaría poder ``estimar'' | ||
el valor de la función en algún punto | el valor de la función en algún punto <math>\xi \in [x_0,x_n]</math> para el cual no tenemos datos. | ||
Otra razón para interpolar puede ser que la función original es demasiado complicada | 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 | para tratar con ella y queremos simplificarla tomando sólo la información contenida | ||
en algunos puntos y | en algunos puntos y "sintetizando" una función más simple. | ||
Las funciones interpoladoras hacen justamente lo que estamos buscando. | Las funciones interpoladoras hacen justamente lo que estamos buscando. | ||
Línea 15: | Línea 15: | ||
para intervalos medianamente grandes. | para intervalos medianamente grandes. | ||
A partir de | ==Polinomio interpolador de Lagrange== | ||
A partir de <math>n+1</math> puntos <math>{x_0,x_1,\dots,x_n}</math> podemos obtener | |||
el polinomio de menor grado que pasa por todos ellos. | el polinomio de menor grado que pasa por todos ellos. | ||
Se construye un cociente | Se construye un cociente <math>L_{n,k}(x)</math> con la propiedad de que <math>L_{n,k}(x_{i})=0</math> | ||
cuando | cuando <math>i\neq k</math> y <math>L_{n,k}(x_k)=1</math>. Un polinomio que | ||
cumple esto es el siguiente: | cumple esto es el siguiente: | ||
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})} = | <center><math>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})} | ||
\prod_{\stackrel{i=0}{i\neq k}}^{n}\frac{(x-x_{i})}{(x_{k}-x_{i})} | </math></center> | ||
\begin{figure}[h] | \begin{figure}[h] | ||
\centering | \centering | ||
\includegraphics[width=12cm]{burdenlnk.png} | \includegraphics[width=12cm]{burdenlnk.png} | ||
\caption{Polinomio | \caption{Polinomio <math>L_{n,k}(x)</math>.} | ||
\end{figure} | \end{figure} | ||
=== Teorema === | |||
Si | Si <math>{x_0,x_1,\dots,x_n}</math> son <math>n+1</math> números distintos y si <math>f</math> | ||
es una función cuyos valores están dados en esos números, entonces | es una función cuyos valores están dados en esos números, entonces | ||
'''existe''' un '''único''' polinomio <math>P</math> de grado a lo sumo <math>n</math>, con la propiedad | |||
de que | de que <math>f(x_{k})=P(x_{k})</math> para <math>k=0,\ldots,n</math>. Este polinomio está dado | ||
por: | por: | ||
\ | |||
Sean | <center><math>P(x)=\sum_{k=0}^{n}f(x_i)L_{n,k}(x)</math></center> | ||
entonces para todo | |||
existe | |||
f(x)=P(x)+\frac{f^{(n+1)}(\xi(x))}{(n+1)!}\prod_{i=0}^n(x - x_i) | === Teorema === | ||
Sean <math>{x_0,x_1,\dots,x_n}</math> en <math>[a,b]</math>, <math>f \in C^{n+1}[a,b]</math> | |||
entonces para todo <math>x</math> en <math>[a,b]</math>, | |||
existe <math>\x_i</math> en <math>[a,b]</math>, que depende de <math>x</math>, tal que: | |||
<center><math>f(x)=P(x)+\frac{f^{(n+1)}(\xi(x))}{(n+1)!}\prod_{i=0}^n(x - x_i)</math></center> | |||
El uso de los polinomios de Lagrange plantea dos problemas inmediatos: | 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 | uno es que el término del error es difícil de aplicar. El otro problema | ||
es que teniendo una aproximación de grado | es que teniendo una aproximación de grado <math>n</math>, si se quiere obtener | ||
ahora la de grado | ahora la de grado <math>n+1</math>, no hay forma de aprovechar los cálculos | ||
ya hechos para ahorrar trabajo en el cálculo del nuevo polinomio. | ya hechos para ahorrar trabajo en el cálculo del nuevo polinomio. | ||
Como el polinomio es único, veremos que se puede encontrar otra forma | Como el polinomio es único, veremos que se puede encontrar otra forma | ||
Línea 63: | Línea 65: | ||
costo tan alto. | costo tan alto. | ||
=== Definición === | |||
Sean | Sean <math>k</math> números enteros distintos <math>m_1,\dots,m_k</math> que cumplen | ||
<math>0 \le m_i \le n</math> para cada <math>i</math>, se define a | |||
<math>P_{m_{1},m_{2},\dots,m_{k}}(x)</math> como el polinomio interpolante en | |||
los puntos | los puntos <math>x_{m_{1}},x_{m_{2}},\dots,x_{m_k}</math>. | ||
\ | |||
=== Teorema recinterpol === | |||
Sea <math>f</math> definida en <math>n+1</math> puntos distintos <math>x_{0},\dots,x_{n}</math> | |||
con <math>x_i</math> y <math>x_j</math> dos puntos del conjunto distintos entre si | |||
y <math>P(x)</math> el polinomio de Lagrange de grado a lo sumo <math>n</math> que interpola a <math>f</math> | |||
en esos <math>n+1</math> puntos, entonces el polinomio puede expresarse como | |||
<center><math>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})}</math></center> | |||
De acuerdo con el | De acuerdo con el '''Teorema recinterpol''', | ||
los polinomios interpolantes pueden generarse | los polinomios interpolantes pueden generarse | ||
de manera recursiva aprovechando polinomios ya calculados. | de manera recursiva aprovechando polinomios ya calculados. | ||
==Forma de Newton del polinomio interpolador== | |||
=== Definición === | |||
La diferencia dividida cero de <math>f</math> respecto | La diferencia dividida cero de <math>f</math> respecto | ||
a <math>x_{i}</math> se define como | a <math>x_{i}</math> se define como <math>f[x_{i}]= f(x_{i})</math> | ||
<math>f[x_{i}]= f(x_{i})</math> | |||
y la k-ésima diferencia | y la k-ésima diferencia | ||
dividida relativa a <math>x_{i}, x_{i+1},\dots,x_{i+k}</math> está dada por | dividida relativa a <math>x_{i}, x_{i+1},\dots,x_{i+k}</math> está dada por | ||
<math>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}}</math> | <center><math>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}}</math> </center> | ||
<math>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})</math> | === Teorema === | ||
Se puede demostrar que el polinomio interpolador <math>P_{n}(x)</math> se puede expresar como | |||
<center><math>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})</math></center> | |||
donde <math>a_{k}=f[x_{0},\dots,x_{k}]</math>. | donde <math>a_{k}=f[x_{0},\dots,x_{k}]</math>. | ||
Usando esta definición se puede ir armando el polinomio interpolador | Usando esta definición se puede ir armando el polinomio interpolador | ||
Línea 116: | Línea 118: | ||
\end{figure} | \end{figure} | ||
==Splines== | |||
Los polinomios tienen una gran desventaja como interpoladores y es | Los polinomios tienen una gran desventaja como interpoladores y es | ||
Línea 130: | Línea 133: | ||
se tiene la seguridad de que haya diferenciabilidad en los extremos | se tiene la seguridad de que haya diferenciabilidad en los extremos | ||
de los subintervalos lo cual geométricamente significa que la función | de los subintervalos lo cual geométricamente significa que la función | ||
interpolante no es | interpolante no es "suave" en esos puntos. | ||
El tipo más simple de función de polinomio fragmentario diferenciable | El tipo más simple de función de polinomio fragmentario diferenciable | ||
en un intervalo entero | en un intervalo entero <math>[x_{0},x_{n}]</math> es la función obtenida al | ||
ajustar un polinomio cuadrático entre cada par consecutivo de nodos. | ajustar un polinomio cuadrático entre cada par consecutivo de nodos. | ||
Esto se hace construyendo una cuadrática en | Esto se hace construyendo una cuadrática en <math>[x_{0},x_{1}]</math> que concuerde | ||
con la función en | con la función en <math>x_{0}</math> y en <math>x_{1}</math>, otra cuadrática en <math>[x_{1},x_{2}]</math> | ||
que concuerde con la función en | que concuerde con la función en <math>x_{1}</math> y en <math>x_{2}</math> y así sucesivamente. | ||
Un polinomio cuadrático general tiene tres constantes arbitrarias, | Un polinomio cuadrático general tiene tres constantes arbitrarias, | ||
y únicamente se requieren dos condiciones para ajustar los datos en | y únicamente se requieren dos condiciones para ajustar los datos en | ||
los extremos de cada intervalo, por ello existe una flexibilidad que | los extremos de cada intervalo, por ello existe una flexibilidad que | ||
permite seleccionar la cuadrática de modo que la interpolante tenga | permite seleccionar la cuadrática de modo que la interpolante tenga | ||
una derivada continua en | una derivada continua en <math>[x_{0},x_{n}]</math>. El problema se presenta | ||
cuando hay que especificar las condiciones referentes a la derivada | cuando hay que especificar las condiciones referentes a la derivada | ||
de la interpolante en los extremos | de la interpolante en los extremos <math>x_{0}</math> y <math>x_{n}</math>: no hay constantes | ||
suficientes para cerciorarse de que se satisfagan las condiciones. | suficientes para cerciorarse de que se satisfagan las condiciones. | ||
Línea 157: | Línea 160: | ||
en los nodos. | en los nodos. | ||
=== Definición === | |||
un conjunto de nodos | Dada una función <math>f</math> definida en <math>[a,b]</math> y | ||
un conjunto de nodos <math>a=x_{0}<x_{1}<\dots<x_{n}=b</math> un spline cúbico | |||
<math>S</math> para <math>f</math> es una función que cumple con las siguientes condiciones: | |||
* <math>S(x)</math> es un polinomio cúbico denotado <math>S_{j}(x)</math> en el subintervalo <math>[x_{j},x_{j+1}]</math> para <math>j</math> de <math>0</math> a <math>n-1</math> | |||
* <math>S(x_{j})=f(x_{j})</math> para <math>j</math> de <math>0</math> a <math>n</math> | |||
* <math>S_{j+1}(x_{j+1})=S_{j}(x_{j+1})</math> para <math>j</math> de <math>0</math> a <math>n-2</math> | |||
* <math>S'_{j+1}(x_{j+1})=S'_{j}(x_{j+1})</math> para <math>j</math> de <math>0</math> a <math>n-2</math> | |||
* <math>S{''}_{j+1}(x_{j+1})=S''_{j}(x_{j+1})</math> para <math>j</math> de <math>0</math> a <math>n-2</math> | |||
* Se satisface una de las siguientes condiciones de frontera: | |||
** <math>S''(x_{0})=S''(x_{n})=0</math> (spline libre o '''natural''') | |||
** <math>S'(x_{0})=f'(x_{0}) \textrm{\ y\ } S'(x_{n})=f'(x_{n}) </math> (spline '''sujeto''') | |||
Se satisface una de las siguientes condiciones de frontera: | |||
Generalmente en las condiciones de frontera sujeta se logran aproximaciones | Generalmente en las condiciones de frontera sujeta se logran aproximaciones | ||
Línea 185: | Línea 180: | ||
o la sujeta. | o la sujeta. | ||
Cuando deseo interpolar un conjunto de puntos | Cuando deseo interpolar un conjunto de puntos <math>x_{0},\dots,x_{n}</math>, el | ||
planteo de todas las condiciones mencionadas para | planteo de todas las condiciones mencionadas para <math>S(x)</math> se puede | ||
llevar a la forma de un sistema de ecuaciones tridiagonal que queda | 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 | 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, | ser estrictamente diagonal dominante, por lo que tiene solución única, | ||
puede almacenarse usando poco espacio y resolverse relativamente rápido. | puede almacenarse usando poco espacio y resolverse relativamente rápido. |
Revisión actual - 14:33 29 nov 2012
Muchas veces nos encontramos con un conjunto de puntos Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle (x_i, f(x_i))} que provienen de una función desconocida Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f} y nos gustaría poder ``estimar el valor de la función en algún punto Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \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.
Polinomio interpolador de Lagrange
A partir de Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n+1} puntos Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle {x_0,x_1,\dots,x_n}} podemos obtener el polinomio de menor grado que pasa por todos ellos. Se construye un cociente Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle L_{n,k}(x)} con la propiedad de que Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle L_{n,k}(x_{i})=0} cuando Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle i\neq k} y Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle L_{n,k}(x_k)=1} . Un polinomio que cumple esto es el siguiente:
\begin{figure}[h] \centering \includegraphics[width=12cm]{burdenlnk.png} \caption{Polinomio Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle L_{n,k}(x)} .} \end{figure}
Teorema
Si Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle {x_0,x_1,\dots,x_n}} son Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n+1} números distintos y si Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f} es una función cuyos valores están dados en esos números, entonces existe un único polinomio Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle P} de grado a lo sumo Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n} , con la propiedad de que Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f(x_{k})=P(x_{k})} para Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle k=0,\ldots,n} . Este polinomio está dado por:
Teorema
Sean Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle {x_0,x_1,\dots,x_n}} en Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle [a,b]} , Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f \in C^{n+1}[a,b]} entonces para todo Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle x} en Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle [a,b]} , existe Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \x_i} en Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle [a,b]} , que depende de Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle x} , tal que:
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 Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n} , si se quiere obtener ahora la de grado Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle 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 Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle k} números enteros distintos Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle m_1,\dots,m_k} que cumplen Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle 0 \le m_i \le n} para cada Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle i} , se define a Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle P_{m_{1},m_{2},\dots,m_{k}}(x)} como el polinomio interpolante en los puntos Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle x_{m_{1}},x_{m_{2}},\dots,x_{m_k}} .
Teorema recinterpol
Sea Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f} definida en Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n+1} puntos distintos Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle x_{0},\dots,x_{n}} con Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle x_i} y Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle x_j} dos puntos del conjunto distintos entre si y Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle P(x)} el polinomio de Lagrange de grado a lo sumo Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n} que interpola a Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f} en esos Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n+1} puntos, entonces el polinomio puede expresarse como
De acuerdo con el Teorema recinterpol,
los polinomios interpolantes pueden generarse
de manera recursiva aprovechando polinomios ya calculados.
Forma de Newton del polinomio interpolador
Definición
La diferencia dividida cero de Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f} respecto a Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle x_{i}} se define como Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle f[x_{i}]= f(x_{i})}
y la k-ésima diferencia dividida relativa a Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle x_{i}, x_{i+1},\dots,x_{i+k}} está dada por
Teorema
Se puede demostrar que el polinomio interpolador se puede expresar como
donde .
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}
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 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 que concuerde con la función en y en , otra cuadrática en que concuerde con la función en y en 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 . El problema se presenta cuando hay que especificar las condiciones referentes a la derivada de la interpolante en los extremos y : 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.
Definición
Dada una función definida en y un conjunto de nodos un spline cúbico para es una función que cumple con las siguientes condiciones:
- es un polinomio cúbico denotado en el subintervalo para de a
- para de Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle 0} a Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n}
- Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle S_{j+1}(x_{j+1})=S_{j}(x_{j+1})} para Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle j} de Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle 0} a Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n-2}
- Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle S'_{j+1}(x_{j+1})=S'_{j}(x_{j+1})} para Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle j} de Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle 0} a Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n-2}
- Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle S{''}_{j+1}(x_{j+1})=S''_{j}(x_{j+1})} para Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle j} de Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle 0} a Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle n-2}
- Se satisface una de las siguientes condiciones de frontera:
- Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle S''(x_{0})=S''(x_{n})=0} (spline libre o natural)
- Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle S'(x_{0})=f'(x_{0}) \textrm{\ y\ } S'(x_{n})=f'(x_{n}) } (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 Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle x_{0},\dots,x_{n}} , el planteo de todas las condiciones mencionadas para Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle 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.