8
$\begingroup$

Is possible to construct infinitely differentiable functions that interpolate through arbitrary points, the way polynomial splines do? If so, do they have a name and is there an algorithm for constructing the curves.

I suppose a infinite degree polynomial spline might qualify but I was hoping there might be something more like a bump function.

I definitely am a novice when it comes to this stuff, so please do not hesitate to correct me if I misusing any terminology.

  • 0
    As mentioned, the best solution is dependent on the configuration of your given points. Obviously if your point-set seems to be coming from an oscillatory function, a monotonic method would be unsuitable. The usual constraint I keep seeing in practice is that the local extrema in your interpolant should either be in the same place as the extrema of your data, or that the new extremum (e.g. for an interpolant between two points with near-identical ordinates) be of the same order of magnitude as the points in the neighborhood, viz. "locally monotonic".2010-08-12

4 Answers 4

1

You could build a generalized interpolating spline of any required degree of smoothness which passes through the n data points. Details are described in articles:

J. Duchon."Splines minimizing rotation-invariant semi-norms in Sobolev spaces" // Constructive Theory of Functions of Several Variables.Lecture Notes in Mathematics Volume 571, 1977, pp 85-100

В.К. Горбунов, В. В. Петрищев. "Развитие метода нормальной сплайн-коллокации для линейных дифференциальных уравнений" // Ж. вычисл. матем. и матем. физ., 2003, том 43, номер 8, страницы 1150–1159 (http://www.mathnet.ru/php/getFT.phtml?jrnid=zvmmf&paperid=974&what=fullt&option_lang=rus)

V.K. Gorbunov "The method of normal spline collocation" // USSR Computational Mathematics and Mathematical Physics, Volume 29, Issue 1, 1989, Pages 145–154

7

Yes - if you have a finite list of points on the plane that pass the vertical line test, you can make a smooth (infinitely differentiable) function that goes through all of them.

This can actually be done somewhat explicitly, using the formulas at [1]. Define:

f(x) = \begin{cases} 0 & x \leq 0 \\ e^{-1/x}& x > 0 \\ \end{cases}.

It can be proved that this is a smooth function. Then define

$ g(x) = \frac{f(x)}{f(x)+f(1-x)}. $

The function $g(x)$ is smooth, defined for all real $x$, and has the property that $g(x) = 0$ for all $x \leq 0$ while $g(x) = 1$ for all $x \geq 1$. By adding together shifted and scaled copies of $g(x)$, you can make a smooth function that goes through any finite list of points that pass the vertical line test.

1: http://en.wikipedia.org/wiki/Non-analytic_smooth_function

  • 0
    @ShreevatsaR: I tested it again, you're absolutely right. I didn't see it get converted properly in the preview until I put 4, so I assumed you needed to escape each one. I must not have been waiting long enough.2010-08-11
5

For n data points, there is a unique polynomial of degree n−1 that passes through the points; one way to get it is the Lagrange polynomial.

Another class of interpolating functions is the thin plate spline, which is typically used for 2D image warping, but can easily be applied to 1D interpolation as well, which is a strictly simpler problem. The Wikipedia article on polyharmonic splines, of which the thin plate spline is a special case, has examples of other infinitely differentiable splines.

I believe that in principle, you can choose any basis function whose translations are linearly independent, and find an interpolating function as a sum of translations and scalings of the basis. The above are essentially examples of particular basis functions people have used because of their other nice properties.

Edit: Sorry, thin plate splines and other examples in the article, apart from the Gaussian, are infinitely differentiable almost everywhere. However, if you really want infinite differentiability everywhere, you can use any infinitely differentiable function as basis instead, such as the Gaussian, or $x^2/\sqrt{x^2+1}$.

3

It's a bit disingenuous to say polynomial splines are infinitely differentiable; a spline with nth order pieces can only have at most C^{n-1} continuity. That being said, a different basis set (e.g. the Fourier basis or rational functions) would in principle be infinitely differentiable, but might be a very "wiggly" way to "connect the dots" so to speak. Polynomial interpolation, whatever method you use, will also suffer from this "wiggliness".

Why would you need your approximant to be infinitely differentiable anyway? Unless you're going to be doing something special I don't see it being a necessity.

  • 1
    An approximant based on sines and cosines (i.e. the Fourier basis) would in principle be infinitely differentiable, but again this is not always appropriate. For most physical applications anyway one is usually content with C^2 (to use a physical example, the usual quantities of interest are position, velocity, and acceleration; "jerk" not so much.); people who solve boundary-value problems might sometimes want a C^4 approximant (quintic splines are the usual basis), but SFAIK nobody bothers with higher orders of continuity in practice.2010-08-12