Scientific description of cubic spline (interpolation)

Dear all,
I am writing a scientific article (quantitative economics), and I need to describe the 'spline' method (cubic spline interpolation) as in griddedInterpolant. I can't find much, except the description:
"The interpolated value at a query point is based on a cubic interpolation of the values at neighboring grid points in each respective dimension. The interpolation is based on a cubic spline using not-a-knot end conditions."
Can anybody help me with a more scientific description? Is this some kind of standard algorithm? I found some formula for the one dimensional case, but I need a more general description for multiple dimensions (at least up to 4 dimensions).

9 Comments

Splines are a full branch of numerical methods of their own; the standard reference TMW lists is
[1] de Boor, Carl. A Practical Guide to Splines. Springer-Verlag, New York: 1978.
There's a discussion in the MATLAB doc on various end conditions at https://www.mathworks.com/help/curvefit/construct-cubic-spline-interpolants.html
Gargle has any number of hits; one that may be of interest for your purposes is at http://www.cs.tau.ac.il/~turkel/notes/numeng/spline_note.pdf
Thanks dpb, especially the book is interesting!
More information is still very welcome, because the Matlab documentation is minimal... especially how it deals with multiple dimensions.
In the spline interpolation the dimensions are treated independently. It is like a bunch of 1D-interpolations.
Did you read this already: https://en.wikipedia.org/wiki/Spline_interpolation
Thanks Jan, now I understand!! (I guess the ordering of the dimensions then matters?)
And yes, I had already checked wiki. Based on your comment I found this one, which clarifies quite a bit (even if it is a different method from what Matlab uses):
https://en.wikipedia.org/wiki/Tricubic_interpolation , which is based on Tricubic Interpolation in Three Dimensions (2005) by Lekien and Marsden.
(I guess the ordering of the dimensions then matters?)
Nope. It doesn't.
As an example,
A=rand(4);
x=3.7; y=1.2;
interp1( interp1(A,x,'spline') , y,'spline')
ans = 0.1894
interp1( interp1(A',y,'spline') , x,'spline')
ans = 0.1894
interpn(A,x,y,'spline')
ans = 0.1894
Another reference: Spline Functions: Basic Theory by Schumaker (3rd edition, 2007).
And by same author also "Spline Functions: Computational Methods" (SIAM, 2015)

Sign in to comment.

Answers (0)

Asked:

on 9 Nov 2021

Commented:

on 12 Nov 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!