Hermite interpolation
In numerical analysis, Hermite interpolation, named after Charles Hermite, is a method of polynomial interpolation, which generalizes Lagrange interpolation. Lagrange interpolation allows computing a polynomial of degree less than n that takes the same value at n given points as a given function. Instead, Hermite interpolation computes a polynomial of degree less than n such that the polynomial and its first few derivatives have the same values at m (fewer than n) given points as the given function and its first few derivatives at those points. The number of pieces of information, function values and derivative values, must add up to Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle n} .
Hermite's method of interpolation is closely related to the Newton's interpolation method, in that both can be derived from the calculation of divided differences. However, there are other methods for computing a Hermite interpolating polynomial. One can use linear algebra, by taking the coefficients of the interpolating polynomial as unknowns, and writing as linear equations the constraints that the interpolating polynomial must satisfy. For another method, see Chinese remainder theorem § Hermite interpolation. For yet another method, see,[1] which uses contour integration.
Statement of the problem
In the restricted formulation studied in,[2] Hermite interpolation consists of computing a polynomial of degree as low as possible that matches an unknown function both in observed value, and the observed value of its first m derivatives. This means that n(m + 1) values
Let us consider a polynomial P(x) of degree less than n(m + 1) with indeterminate coefficients; that is, the coefficients of P(x) are n(m + 1) new variables. Then, by writing the constraints that the interpolating polynomial must satisfy, one gets a system of n(m + 1) linear equations in n(m + 1) unknowns.
In general, such a system has exactly one solution. In,[1] Charles Hermite used contour integration to prove that this is effectively the case here, and to find the unique solution, provided that the xi are pairwise different. A method for computing the solution is described below.[3]
Method
Simple case when all k=2
When using divided differences to calculate the Hermite polynomial of a function f, the first step is to copy each point m times. (Here we will consider the simplest case for all points.) Therefore, given data points , and values and for a function that we want to interpolate, we create a new dataset
Now, we create a divided differences table for the points . However, for some divided differences,
A more general case when k>2
In the general case, suppose a given point has k derivatives. Then the dataset contains k identical copies of . When creating the table, divided differences of identical values will be calculated as
For example,
A fast algorithm for the fully general case is given in.[4] A a slower but more numerically stable algorithm is described in.[5]
Example
Consider the function . Evaluating the function and its first two derivatives at , we obtain the following data:
x | f(x) | f′(x) | f″(x) |
---|---|---|---|
−1 | 2 | −8 | 56 |
0 | 1 | 0 | 0 |
1 | 2 | 8 | 56 |
Since we have two derivatives to work with, we construct the set . Our divided difference table is then:
Quintic Hermite interpolation
The quintic Hermite interpolation based on the function ( ), its first ( ) and second derivatives ( ) at two different points ( and ) can be used for example to interpolate the position of an object based on its position, velocity and acceleration. The general form is given by
Error
Call the calculated polynomial H and original function f. Consider first the real-valued case. Evaluating a point Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x \in [x_0, x_n]} , the error function is Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(x) - H(x) = \frac{f^{(K)}(c)}{K!} \prod_{i}(x - x_i)^{k_i},} where c is an unknown within the range Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle [x_0, x_N]} , K is the total number of data-points, and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle k_i} is the number of derivatives known at each Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x_i} . The degree of the polynomial on the right is thus one higher than the degree bound for Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle H(x)} . Furthermore, the error and all its derivatives up to the Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle k_i-1} st order is zero at each node, as it should be.
In the complex case, as described for example on p. 360 in,[5] Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(z) - H(z) = \frac{w(z)}{2\pi i} \oint_C \frac{f(\zeta)}{w(\zeta)(\zeta-z)}d\zeta} where the contour encloses Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle z} and all the nodes Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle x_i} , and the node polynomial is Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle w(z) = \prod_{i}(z - x_i)^{k_i}} .
See also
References
- ^ 1.0 1.1 Hermite, Charles (1878). "Sur la formule d'interpolation de Lagrange". J. Reine Angew. Math.: 70–79.
- ^ Traub, J. F. (December 1964). "On Lagrange—Hermite interpolation". J. Society for Industrial and Applied Mathematics. 12 (4): 886–891.
- ^ Spitzbart, A (January 1960). "A Generalization of Hermite Interpolation". American Mathematical Monthly. 67 (1): 42–46. Retrieved 2 June 2024.
- ^ Schneider, C; Werner, W (1991). "Hermite Interpolation: The Barycentric Approach". Computing. 46: 35–51.
- ^ 5.0 5.1 Corless, Robert M; Fillion, Nicolas (2013). A Graduate Introduction to Numerical Methods. New York: Springer. ISBN 978-1-4614-8452-3.
External links
- Hermites Interpolating Polynomial at Mathworld