https://www.cubawiki.com.ar/index.php?title=Interpolaci%C3%B3n_(M%C3%A9todos_Num%C3%A9ricos)&feed=atom&action=historyInterpolación (Métodos Numéricos) - Historial de revisiones2024-03-28T14:33:26ZHistorial de revisiones de esta página en la wikiMediaWiki 1.39.2https://www.cubawiki.com.ar/index.php?title=Interpolaci%C3%B3n_(M%C3%A9todos_Num%C3%A9ricos)&diff=8636&oldid=prevJsackmann en 14:33 29 nov 20122012-11-29T14:33:08Z<p></p>
<a href="https://www.cubawiki.com.ar/index.php?title=Interpolaci%C3%B3n_(M%C3%A9todos_Num%C3%A9ricos)&diff=8636&oldid=8634">Mostrar los cambios</a>Jsackmannhttps://www.cubawiki.com.ar/index.php?title=Interpolaci%C3%B3n_(M%C3%A9todos_Num%C3%A9ricos)&diff=8634&oldid=prevLtaravilse en 23:34 27 nov 20122012-11-27T23:34:15Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="es">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Revisión anterior</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revisión del 23:34 27 nov 2012</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l86">Línea 86:</td>
<td colspan="2" class="diff-lineno">Línea 86:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\begin{definition}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\begin{definition}</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>La diferencia dividida cero de <del style="font-weight: bold; text-decoration: none;">$</del>f<del style="font-weight: bold; text-decoration: none;">$ </del>respecto</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>La diferencia dividida cero de <ins style="font-weight: bold; text-decoration: none;"><math></ins>f<ins style="font-weight: bold; text-decoration: none;"></math> </ins>respecto</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>a <del style="font-weight: bold; text-decoration: none;">$</del>x_{i}<del style="font-weight: bold; text-decoration: none;">$ </del>se define como</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>a <ins style="font-weight: bold; text-decoration: none;"><math></ins>x_{i}<ins style="font-weight: bold; text-decoration: none;"></math> </ins>se define como</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">$$</del>f[x_{i}]= f(x_{i})<del style="font-weight: bold; text-decoration: none;">$$</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><math></ins>f[x_{i}]= f(x_{i})<ins style="font-weight: bold; text-decoration: none;"></math></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>y la k-ésima diferencia</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>y la k-ésima diferencia</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>dividida relativa a <del style="font-weight: bold; text-decoration: none;">$</del>x_{i}, x_{i+1},\dots,x_{i+k}<del style="font-weight: bold; text-decoration: none;">$ </del>está dada por</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>dividida relativa a <ins style="font-weight: bold; text-decoration: none;"><math></ins>x_{i}, x_{i+1},\dots,x_{i+k}<ins style="font-weight: bold; text-decoration: none;"></math> </ins>está dada por</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">$$</del>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}}<del style="font-weight: bold; text-decoration: none;">$$</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><math></ins>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}}<ins style="font-weight: bold; text-decoration: none;"></math></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\end{definition}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\end{definition}</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\begin{theorem}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\begin{theorem}</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Se puede demostrar que el polinomio interpolador $P_{n}(x)$ se puede expresar como</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Se puede demostrar que el polinomio interpolador $P_{n}(x)$ se puede expresar como</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">$$</del>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})<del style="font-weight: bold; text-decoration: none;">$$</del></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>donde <del style="font-weight: bold; text-decoration: none;">$</del>a_{k}=f[x_{0},\dots,x_{k}]<del style="font-weight: bold; text-decoration: none;">$</del>.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"><math></ins>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})<ins style="font-weight: bold; text-decoration: none;"></math></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> </div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>donde <ins style="font-weight: bold; text-decoration: none;"><math></ins>a_{k}=f[x_{0},\dots,x_{k}]<ins style="font-weight: bold; text-decoration: none;"></math></ins>.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\end{theorem}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>\end{theorem}</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>Ltaravilsehttps://www.cubawiki.com.ar/index.php?title=Interpolaci%C3%B3n_(M%C3%A9todos_Num%C3%A9ricos)&diff=8124&oldid=prev201.231.172.253 en 03:58 10 oct 20102010-10-10T03:58:34Z<p></p>
<a href="https://www.cubawiki.com.ar/index.php?title=Interpolaci%C3%B3n_(M%C3%A9todos_Num%C3%A9ricos)&diff=8124&oldid=8123">Mostrar los cambios</a>201.231.172.253https://www.cubawiki.com.ar/index.php?title=Interpolaci%C3%B3n_(M%C3%A9todos_Num%C3%A9ricos)&diff=8123&oldid=prev201.231.172.253: traido de uno de los apuntes. Falta emprolijar2010-10-10T03:55:51Z<p>traido de uno de los apuntes. Falta emprolijar</p>
<p><b>Página nueva</b></p><div>Muchas veces nos encontramos con un conjunto de puntos (xi , f (xi )) que provienen de una función descono-<br />
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<br />
datos. Otra razón para interpolar puede ser que la función original es demasiado complicada para tratar con ella<br />
y queremos simplificarla tomando sólo la información contenida en algunos puntos y “sintetizando” una función<br />
más simple. Las funciones interpoladoras hacen justamente lo que estamos buscando.<br />
<br />
Es útil poder interpolar con polinomios porque son una clase de funciones muy conocida, que tiene derivadas<br />
e integrales fáciles de calcular y que también son polinomios. Los polinomios de Taylor concentran su exactitud<br />
alrededor del punto sobre el que están centrados, pero a medida que se aleja del centro deja de ser una buena<br />
aproximación, por lo que en general no sirven para intervalos medianamente grandes.<br />
<br />
Polinomio interpolador de Lagrange<br />
<br />
8.1.<br />
<br />
A partir de n + 1 puntos x0 , x1 , . . . , xn podemos obtener el polinomio de menor grado que pasa por todos<br />
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<br />
polinomio que cumple esto es el siguiente:<br />
<br />
n<br />
∏ (x − xi )<br />
(x − x0 )(x − x1 ) · · · (x − xk−1 )(x − xk+1 ) · · · (x − xn )<br />
=<br />
(xk − x0 )(xk − x1 ) · · · (xk − xk−1 )(xk − xk+1 ) · · · (xk − xn )<br />
(xk − xi )<br />
i=0<br />
<br />
Ln,k (x) =<br />
<br />
i=k<br />
<br />
Figura 3: Polinomio Ln,k (x).<br />
<br />
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<br />
en esos números, entonces existe un único polinomio P de grado a lo sumo n, con la propiedad de que<br />
f (xk ) = P (xk ) para k = 0, . . . , n. Este polinomio está dado por:<br />
<br />
n<br />
∑<br />
<br />
P (x) =<br />
<br />
k=0<br />
<br />
f (xi )Ln,k (x)<br />
<br />
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<br />
depende de x, tal que:<br />
n<br />
f (n+1) (ξ(x)) ∏<br />
f (x) = P (x) +<br />
(x − xi )<br />
(n + 1)! i=0<br />
<br />
9<br />
<br />
El uso de los polinomios de Lagrange plantea dos problemas inmediatos: uno es que el término del error es<br />
difícil de aplicar. El otro problema es que teniendo una aproximación de grado n, si se quiere obtener ahora la<br />
de grado n + 1, no hay forma de aprovechar los cálculos ya hechos para ahorrar trabajo en el cálculo del nuevo<br />
polinomio. Como el polinomio es único, veremos que se puede encontrar otra forma de construirlo que permita<br />
agregar más puntos en el futuro sin un costo tan alto.<br />
<br />
Definición. Sean k números enteros distintos m1 , . . . , mk que cumplen 0 ≤ mi ≤ n para cada i, se define a<br />
Pm1 ,m2 ,...,mk (x) como el polinomio interpolante en los puntos xm1 , xm2 , . . . , xmk .<br />
<br />
Teorema 8.3. Sea f definida en n + 1 puntos distintos x0 , . . . , xn con xi y xj dos puntos del conjunto distintos<br />
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<br />
el polinomio puede expresarse como<br />
<br />
P (x) =<br />
<br />
(x − xj )P0,1,...,j−1,j+1,...,n (x) − (x − xi )P0,1,...,i−1,i+1,...,n (x)<br />
(xi − xj )<br />
<br />
De acuerdo con el Teorema 8.3, los polinomios interpolantes pueden generarse de manera recursiva apro-<br />
vechando polinomios ya calculados.<br />
<br />
Forma de Newton del polinomio interpolador<br />
<br />
8.2.<br />
<br />
Definición. La diferencia dividida cero de f respecto a xi se define como<br />
<br />
f [xi ] = f (xi )<br />
<br />
y la k-ésima diferencia dividida relativa a xi , xi+1 , . . . , xi+k está dada por<br />
<br />
f [xi , xi+1 , . . . , xi+k ] =<br />
<br />
f [xi+1 , xi+2 , . . . , xi+k ] − f [xi , xi+1 , . . . , xi+k−1 ]<br />
xi+k − xi<br />
<br />
Teorema 8.4. Se puede demostrar que el polinomio interpolador Pn (x) se puede expresar como<br />
<br />
Pn (x) = a0 + a1 (x − x0 ) + a2 (x − x0 )(x − x1 ) + · · · + an (x − x0 )(x − x1 ) · · · (x − xn−1 )<br />
<br />
donde ak = f [x0 , . . . , xk ].<br />
<br />
Usando esta definición se puede ir armando el polinomio interpolador de una serie de puntos de forma<br />
incremental, de manera que para agregar un punto más al polinomio se puede aprovechar lo ya calculado.<br />
<br />
Splines<br />
<br />
8.3.<br />
<br />
Los polinomios tienen una gran desventaja como interpoladores y es que cuanto mayor es el grado, más<br />
oscilan. Un procedimiento alternativo consiste en dividir el intervalo en una serie de subintervalos y en cada<br />
subintervalo construir un polinomio distinto de aproximación, basándose en la idea de que si cada intervalo usa<br />
un polinomio de un grado pequeño, se obtendrá un resultado mucho mejor que con Lagrange.<br />
<br />
La aproximación polinómica fragmentaria más simple consiste en unir una serie de puntos mediante una<br />
serie de segmentos de rectas. La aproximación por funciones lineales ofrece una desventaja, que no se tiene la<br />
seguridad de que haya diferenciabilidad en los extremos de los subintervalos lo cual geométricamente significa<br />
que la función interpolante no es “suave” en esos puntos.<br />
<br />
El tipo más simple de función de polinomio fragmentario diferenciable en un intervalo entero [x0 , xn ] es<br />
la función obtenida al ajustar un polinomio cuadrático entre cada par consecutivo de nodos. Esto se hace<br />
construyendo una cuadrática en [x0 , x1 ] que concuerde con la función en x0 y en x1 , otra cuadrática en [x1 , x2 ]<br />
que concuerde con la función en x1 y en x2 y así sucesivamente. Un polinomio cuadrático general tiene tres<br />
constantes arbitrarias, y únicamente se requieren dos condiciones para ajustar los datos en los extremos de cada<br />
intervalo, por ello existe una flexibilidad que permite seleccionar la cuadrática de modo que la interpolante tenga<br />
una derivada continua en [x0 , xn ]. El problema se presenta cuando hay que especificar las condiciones referentes<br />
<br />
10<br />
<br />
Figura 4: Diferencias divididas.<br />
<br />
a la derivada de la interpolante en los extremos x0 y xn : no hay constantes suficientes para cerciorarse de que<br />
se satisfagan las condiciones.<br />
<br />
La aproximación polinómica fragmentaria más común utiliza polinomios de grado tres entre cada par con-<br />
secutivo de puntos y recibe el nombre de interpolación por trazadores cúbicos (o spline cúbico). Un polinomio<br />
cúbico general contiene cuatro constantes para variar, así ofrece suficiente flexibilidad para garantizar que el<br />
interpolante no sólo sea continuamente diferenciable en el intervalo, sino que además tenga una segunda deri-<br />
vada continua en el intervalo, aunque no se espera que las derivadas segundas coincidan con las de la función<br />
ni siquiera en los nodos.<br />
<br />
Definición: Dada una función f definida en [a, b] y un conjunto de nodos a = x0 < x1 < . . . < xn = b un<br />
spline cúbico S para f es una función que cumple con las siguientes condiciones:<br />
<br />
a. S(x) es un polinomio cúbico denotado Sj (x) en el subintervalo [xj , xj+1 ] para j de 0 a n − 1<br />
<br />
b. S(xj ) = f (xj ) para j de 0 a n<br />
<br />
c. Sj+1 (xj+1 ) = Sj (xj+1 ) para j de 0 a n − 2<br />
<br />
d. Sj+1 (xj+1 ) = Sj (xj+1 ) para j de 0 a n − 2<br />
<br />
j+1 (xj+1 )<br />
<br />
e. S<br />
<br />
f. Se satisface una de las siguientes condiciones de frontera:<br />
<br />
S (x0 ) = S (xn ) = 0 (spline libre o natural)<br />
S (x0 ) = f (x0 ) y S (xn ) = f (xn ) (spline sujeto)<br />
<br />
Generalmente en las condiciones de frontera sujeta se logran aproximaciones más exactas, ya que usan más<br />
información acerca de la función, pero se requiere tener valores de la derivada en los extremos. Existen también<br />
otras condiciones de frontera posibles además de la natural o la sujeta.<br />
<br />
Cuando deseo interpolar un conjunto de puntos x0 , . . . , xn , el planteo de todas las condiciones mencionadas<br />
para S(x) se puede llevar a la forma de un sistema de ecuaciones tridiagonal que queda en función de uno de<br />
los cuatro coeficientes de cada spline y resulta ser estrictamente diagonal dominante, por lo que tiene solución<br />
única, puede almacenarse usando poco espacio y resolverse relativamente rápido.<br />
<br />
= Sj (xj+1 ) para j de 0 a n − 2<br />
<br />
11</div>201.231.172.253