[SciPy-User] Cubic splines - MATLAB vs Scipy.interpolate

Charles R Harris charlesr.harris@gmail....
Tue Sep 27 14:32:30 CDT 2011


On Tue, Sep 27, 2011 at 1:04 PM, Jaidev Deshpande <
deshpande.jaidev@gmail.com> wrote:

> Hi
>
> *The big question*: Why does the MATLAB function spline operate faster
> than the cubic spline alternatives in Scipy, especially splrep and splev ?
>
> ------
>
> *The context*: I'm working on an algorithm that bottlenecks on spline
> interpolation.
>
> Some functions in Scipy return an interpolation *object function *depending
> on the input data which needs to be evaluated independently over the whole
> range.
>
> So I used 'lower order' functions like splrep and splev. Even that was too
> slow.
>
> Then I tried to write my own code for cubic splines, generating and solving
> a system of 4N simultaneous equations for interpolation between N+1 points.
>
> No matter what I do, the code is quite slow. How come the MATLAB function
> spline operate so fast? What am I missing? What can I do to speed it up?
>
>
I suspect it is because the scipy routines you reference are based on
b-splines, which are needed for least squares fits. Simple cubic spline
interpolation through a give set of points tends to be faster and I believe
that is what the Matlab spline function does. To get b-splines in Matlab you
need one of the toolboxes, it doesn't come with the core. I don't think
scipy has a simple cubic spline interpolation, but I may be wrong.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20110927/d44b7570/attachment.html 


More information about the SciPy-User mailing list