# Solved – Explanation of cubic spline interpolation

Can someone explain to me what a cubic spline is, and how we could use it to interpolate a function?

I have searched on the internet but I would like a simple explanation.

Contents

If you have a function \$f(x)\$ on some interval \$[a,b]\$, which is divided on \$[x_{i-1}, x_i]\$ such as \$a=x_0< x_1< … <x_N=b\$ then you can interpolate this function by a cubic spline \$S(x)\$. \$S(x)\$ is a piecewise function: on each \$h_i = x_i – x_{i-1}\$ it's a cubic polynomial, which can be written for simplicity as \$S_i(x) = a_i + b_i(x – x_i) + {c_iover2}(x-x_i)^2 + {d_iover6}(x – x_i)^3 ,!\$. It has to satisfy the next constraints:

1) passing through the knots : \$S_ileft(x_{i}right) = f(x_{i})\$

2) be continuous up to the 2nd derivative:

\$S_ileft(x_{i-1}right) = S_{i-1}(x_{i-1}) \ S'_ileft(x_{i-1}right) = S'_{i-1}(x_{i-1}) \ S''_ileft(x_{i-1}right) = S''_{i-1}(x_{i-1})\$

3) for natural splines:

\$S''(a) = S''(b) = 0.\$

These equations will uniquely define spline coefficients.

A good way to understand this is to take e.g. 3 points and manually solve systems for coefficients of \$S_1(x)\$ and \$S_2(x)\$

Finally you should get the next system:

\$a_i = fleft(x_{i}right) ,!\$

\$h_ic_{i-1} + 2(h_i + h_{i+1})c_i + h_{i+1}c_{i+1} = 6left({{f_{i+1} – f_i}over{h_{i+1}}} – {{f_{i} – f_{i-1}}over{h_{i}}}right) ,!\$

\$d_i = {{c_i – c_{i-1}}over{h_i}} ,!\$

\$b_i = {1over2}h_ic_i – {1over6}h_i^2d_i + {{f_i – f_{i-1}}over{h_i}}= {{f_i – f_{i-1}}over{h_i}} + {{h_i(2c_i + c_{i-1})}over6} ,!\$

Rate this post