5 votos

Interpolación de Hermite de $e^x$. Extraño comportamiento a la hora de aumentar el número de derivados en la interpolación de puntos.

Estoy tratando de entender la Interpolación de Hermite. Aquí está mi pedagógica ejemplo.

Quiero aproximado de $f(x)=e^x$ sobre el dominio $[-1,1]$ el uso de la interpolación de Hermite.

Yo elijo el de Chebyshev ceros de $T_{n+1}(x)$ como la interpolación de puntos, es decir, los puntos de $x_0,x_1,\dots,x_n$, donde, $$ x_i = \text{cos}\left(\left(k+\frac{1}{2}\right)\frac{\pi }{n+1}\right). $$

At each point $x_i$ I construct the list $f(x_i),f'(x_i),...,f^{(m)}(x_i)$ for $i=0,\dots,n$. That is I want to use not only the values of $f$ at the points $x_i$ but also its first $m$ derivatives at these points. The error in the approximation by the Hermite Interpolation Polynomial $P_n(x)$ is given by,

$$ E_{n}(x)=f(x)-P_{n}(x)=\frac{f^{(n+1)}(\xi_{x})}{(n+1)!}\prod_{k=0}^{n}(x-x_{i})^{m} $$

where where $\xi_x \en [-1,1]$. For $f(x)=e^x$ this can be easily bounded,

$$ \left|E_{n}(x)\right|\leq\frac{e}{(n+1)!}\prod_{k=0}^{n}(x-x_{i})^{m} $$

Of course if $m=0$ then the Hermite interpolating polynomial is just the Lagrange Interpolating polynomial. The problem occurs when I increase $m$. The number of derivatives to include in the interpolation procedure at each point $x_i$.

For example suppose $n=15$ and $m=10$, then according to the bound the error at $x=1$ should be less than 10^-35 (or something ridiculously small). However the resulting Hermite polynomial oscillates wildly and grows without bound in the interval $[-1,1]$. This reminds me much of Runges phenomenon, but this contradicts the error bound for the Hermite interpolating polynomial $P_n(x)$ and I am using the chebyshev zeros as the interpolating points. I observed the same behaviour when trying to approximate $tan(x)$ on a closed sub-interval of $(-\pi/2,\pi/2)$ and the inverse error function using Hermite interpolation.

Has anyone else observed this? Is this expected behaviour? Or have I overlooked something. As it stands it would "seem" Hermite interpolation is not very useful, but I would have expected it to be better than Lagrange interpolation. Have I missed the point?? Can anyone shed some light please??

Incidentally I build the Hermite Interpolating polynomials using Mathematica's built in function InterpolatingPolynomial[] as follows.

n = 15; m = 10;
x[k_] := N[Cos[(k + 1/2) \[Pi]/(n + 1)]]    
interpolationPoints = 
  Table[Join[{{N[x[j]]}}, Table[D[Exp[y], {y, k}] /. y -> x[j], {k, 0, m}]], {j, 0, n}] ;
hermiteP[x_] = InterpolatingPolynomial[interpolationPoints, x];
Plot[{Exp[x], hermiteP[x]}, {x, -1, 1}]
Plot[Exp[x] - hermiteP[x], {x, -1, 1}]

If I reduce the number of derivatives $m$ the result gets better. But I thought the result should get better as I increase $m$ no la otra manera alrededor.

4voto

Brabster Puntos 133

He encontrado la causa, parece que la Interpolación de Hermite como otros métodos de Interpolación más probable es inestable en el sentido de que si $\left(\tilde{x}_{i},\tilde{f}(\tilde{x}_{i})\right)$ son los perturbado valores de $(x_i,f(x_i))$ decir que debido a redondear error de medición o el resultado de la interpolación de polinomios se salvajemente desviarse de la verdad de la Interpolación de Hermite polinomio (que por supuesto es único). Especialmente cuando el Lebesgue constante es grande. Para remediar este aumento de la precisión de trabajo en la segunda línea del código anterior

x[k_] := N[Cos[(k + 1/2) \[Pi]/(n + 1)],20] 

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X