I am trying to interpolate/extrapolate on the basis of a known collection of (finitely many) points. I'm wondering if there is a way to formalize this intuitive notion: find a 'smoothest' function which passes through each of the points. Of course I general the function would not have a nice form.

The idea is similar to that of Bézier curves (ad would be closer still, if I used a parametric curve rather than a function) and essentially opposite to the Lagrange interpolating polynomial, where fitting more than a few points usually produces wild oscillations.

Any idea how to make an idea like this work?


There are many ways to define "smooth", and only you know which definition fits your needs. But, anyway, here are a few things to think about.

The typical mathematical definition of "smooth" says something about how many continuous derivatives the function has. But these sorts of definitions bear little relationship to the intuitive notion of "smoothness" of a curve. Polynomial curves are $C^\infty$, but, as you noted, if they are constructed by Lagrange interpolation, they often wiggle all over the place, and no-one (except a mathematician) would call them "smooth". Also, any statement about continuity of derivatives is dependent on the parameterization of the curve, whereas smoothness is usually considered to be a purely geometric property that is independent of parameterization.

There are numerous techniques for improving curve smoothness by minimizing some "energy" function. The idea is that the curve is analogous to a thin beam, which will try its best to assume a smooth shape by "relaxing" its internal energy. As the other answer pointed out, cubic splines are based on one such energy minimization idea. In fact, before mathematicians started studying them, "splines" were thin strips of wood used to define smooth shapes for ship hulls and aircraft fuselages. One reference is here, but you can find many others by searching for the term "minimum energy spline".

Another idea, common in product design, is that a curve is "smooth" if its curvature varies in some very simple way. Nice-looking curves either have monotone curvature, or a curvature function that has a single maximum. So, from this point of view, the smoothest curves are straight lines and circular arcs. Conic section curves are also popular in design, since their curvature functions are simple and predictable.

Carlo Sequin and his students have studied "MVC" curves (minimum variation of curvature). See the list of papers here, and especially Henry Moreton's thesis.

A curve whose curvature is a linear function of arclength is an Euler spiral. There is a nice thesis by Raphael Levien that discusses these types of curves and related topics.


Interpolation and extrapolation are two very different games.

For interpolation, the natural cubic spline minimizes the $L^2$ norm of the second derivative among all $C^2$ functions passing through the given points. This can be interpreted as the least possible amount of wiggling in between, e.g., maximal "smoothness" of some sort (though the spline is only $C^2$ smooth, not $C^3$). My blog post has a few pictures and the description of the algorithm (of course it's also in many other places).

Since the natural cubic spline has zero second derivative at the endpoints, it can be $C^2$-smoothly extended by half-lines.

However, when doing extrapolation, one typically does not attempt to precisely reproduce the given points: I don't think that the half-line extension of the cubic spline is particularly meaningful. The main goal of extrapolation to find some pattern underlying the data, rather than reproduce every detail of it. The process goes by the name of curve fitting, and involves choosing a model to which parameters can be fit with the least squares method.