A cubic spline is a smooth, connected sequence of cubic curves passing through a given sequence of points. This module implements a straightforward spline generation algorithm based on solving tridiagonal systems of linear equations.
- solveTriDiagonal :: Fractional a => [a] -> [a] -> [a] -> [a] -> [a]
- solveCyclicTriDiagonal :: Fractional a => [a] -> [a] -> [a] -> [a] -> a -> a -> [a]
- solveCubicSplineDerivatives :: Fractional a => [a] -> [a]
- solveCubicSplineDerivativesClosed :: Fractional a => [a] -> [a]
- solveCubicSplineCoefficients :: Fractional a => Bool -> [a] -> [[a]]
Solving for spline coefficents
Solves a system of the form 'A*X=D' for
A is an
n matrix with
bs as the main diagonal and
as the diagonal below and
cs the diagonal above.
Solves a system similar to the tri-diagonal system using a special case
of the Sherman-Morrison formula http://en.wikipedia.org/wiki/Sherman-Morrison_formula.
This code is based on Numerical Recpies in C's
cyclic function in section 2.7.
Use the tri-diagonal solver with the appropriate parameters for an open cubic spline.
Use the cyclic-tri-diagonal solver with the appropriate parameters for a closed cubic spline.