pythonscipysplinecubic

Cubic spline coefficients from Scipy Interpolate


I'm trying to get the coefficient of cubic spline poly from scipy interpolate Cubic Spline with the point (0,0),(1,1), (2,0). The coefficients I got are different from the values from site: https://tools.timodenk.com/cubic-spline-interpolation inserting the same points. I would like to know why. Thanks

from scipy.interpolate import CubicSpline

x=[0,1,2]
y=[0,1,0]

myCS=CubicSpline(x,y,axis=0,bc_type=((2,0),(2,0)))

print(myCS.c)

Expected: -0.5, 0, 1,5, 0 0.5,-3, 4.5, -1


Solution

  • We have to use the definition of the PPoly Class. This tells us that the coefficients outputted must first be first transformed using their formula to give the desired polynomial

    For i=0 (aka the first polynomial) we subtract x[0] which is 0 so here they are the same.

    For the second polynomial (i = 1) we have

    0.5(x - 1.0)^3 - 1.5(x - 1.0)^2 + 0.0(x - 1.0)^1 + 1.0(x - 1.0)^0
    

    which when expanded gives the same coefficients as the website