# Spline

Een spline is een functie die bestaat uit een aaneenschakeling van stukjes van polynomen. De hoogste graad van de voorkomende polynomen noemt men de graad van de spline. Met behulp van splines kunnen op relatief eenvoudige wijze krommen beschreven en bewerkt worden. Als er sprake is van eerstegraads polynomen ontstaat een lineaire spline en wordt de kromme benaderd door aaneengesloten rechte lijnstukjes.
De scheeps- of jachtontwerper gebruikte vroeger strooklatten ('splines') om de lijnentekening van de romp te stroken. Met gewichtjes ('ducks') werd de strooklat op zijn plaats gehouden. Op de werkvloer werd de lijnentekening vaak op ware grootte uitgeslagen ('lofting'). Ook hier werden strooklatten gebruikt. Door zeer nauwkeurig te werken, kon uit de spantentekening de vorm van de 'gangen' (de planken die de huid van de romp vormden) worden 'uitgekruist' met de stelling van Pythagoras.
Bij de toepassing van splines als beschrijving van een kromme, zal vaak geëist worden dat de spline in de deelpunten een gegeven waarde aanneemt en dat de aansluiting van de stukjes polynoom voldoende glad zal verlopen.

## Definitie

Een spline van de graad $n$ op het interval $[a,b]$ is een functie $S$ op dat interval, bestaande uit een aaneenschakeling van $k$ veeltermen $S_{i}$ gedefinieerd op een deelinterval $[x_{i-1},x_{i}]$ van $[a,b]$. Dus
    $S(x)={\begin{cases}S_{0}(x)&x\in [x_{0},x_{1}]\\S_{1}(x)&x\in [x_{1},x_{2}]\\\vdots &\vdots \\S_{k-1}(x)&x\in [x_{k-1},x_{k}]\end{cases}}$
Daarbij geldt voor de deelintervallen:
    $a=x_{0}<x_{1}<...<x_{k-1}<x_{k}=b$
en is $S_{i}(x)$ een veelterm van ten hoogste de graad $n.$
De deelpunten $x_{i}$ worden knooppunten genoemd. Een spline is een continue functie, doordat in de definitie geëist is dat in de knooppunten geldt:
    $S_{i-1}(x_{i})=S_{i}(x_{i})$,

## Lineaire spline

De eenvoudigste spline is van de graad $n=1$, een aaneenschakeling van rechte lijnstukken. De spline door de punten $(x_{i},y_{i})$ wordt gegeven door:
    $S_{i}(x)=y_{i}+{\frac {y_{i+1}-y_{i}}{x_{i+1}-x_{i}}}(x-x_{i})$
De grafiek van deze spline ontstaat door de punten $(x_{i},y_{i})$ opeenvolgend met elkaar te verbinden. Daaruit is al te zien dat een spline van de eerste graad in het algemeen niet differentieerbaar is in de knooppunten.

## Kwadratische spline

Meer mogelijkheden dan een lineaire spline biedt een kwadratische spline, dus van de graad $n=2.$ Op elk van de $k$ deelintervallen is de spline een tweedegraadspolynoom, dus met 3 coëfficiënten. In totaal $3k$ vrijheidsgraden. Van een kwadratische spline wordt meestal geëist dat de delen in de knooppunten glad op elkaar aansluiten, d.w.z. dezelfde afgeleide hebben. De spline is dan differentieerbaar. Dat betekent voor elk van de eindpunten 1 vergelijking en in de overige $k-1$ knooppunten 3 vergelijkingen. In totaal dus $3k-1$ lineaire vergelijkingen en $3k$ onbekenden. Er blijft 1 vrijheidsgraad over, die gebruikt kan worden om de afgeleide in een van de eindpunten of een ander knooppunt vast te leggen.
De voorwaarden zijn dan:
    $S_{0}(x_{0})=y_{0}$
    $S_{i-1}(x_{i})=S_{i}(x_{i})=y_{i},\quad i=1,\ldots ,k-1$
    $S'_{i-1}(x_{i})=S'_{i}(x_{i}),\quad i=1,\ldots ,k-1$
    $S_{k-1}(x_{k})=y_{k}$
Daaraan wordt voldaan door
    $S_{i}(x)=y_{i}+c_{i}(x-x_{i})+{\frac {c_{i+1}-c_{i}}{2(x_{i+1}-x_{i})}}(x-x_{i})^{2}$
waarin de coëfficiënten $c_{i}$ bepaald worden door:
    $c_{i+1}=-c_{i}+2{\frac {y_{i+1}-y_{i}}{x_{i+1}-x_{i}}}$
De verschillende facetten van een kwadratische spline kunnen eenvoudig begrepen worden aan de hand van de kwadratische spline met de knooppunten $-1,0$ en $1$ en in elk van deze punten de waarde 0. Het algemene geval kan hieruit afgeleid worden door herschaling en bijtellen van een eerstegraadsspline. De eenvoudigste tweedegraadsspline is uiteraard constant 0. De algemene vorm bestaat uit de polynomen
    $S_{0}(x)=c\,x(1+x)$ en $S_{1}(x)=c\,x(1-x).$
De resterende vrijheidsgraad bestaat uit de keuze van de constante $c.$

## Kubische spline

Weer meer mogelijkheden dan de kwadratische spline geeft de derdegraads- of kubische spline ($n=3$). Op elk van de $k$ deelintervallen is de spline een derdedegraadspolynoom, dus met 4 coëfficiënten. In totaal $4k$ vrijheidsgraden. Van een kubische spline kan geëist worden dat de delen in de knooppunten zo glad op elkaar aansluiten dat zowel de eerste als de tweede afgeleide in de tussengelegen knooppunten overeenkomen. De spline is dan tweemaal differentieerbaar. Dat betekent voor elk van de eindpunten 1 vergelijking en in de overige $k-1$ knooppunten 4 vergelijkingen. In totaal dus $4k-2$ lineaire vergelijkingen en $4k$ onbekenden. Er blijven nu 2 vrijheidsgraden over, die gebruikt kunnen worden om afgeleiden in een of meer van de eindpunten of andere knooppunten vast te leggen.
De voorwaarden zijn nu:
    $S_{0}(x_{0})=y_{0}$
    $S_{i-1}(x_{i})=S_{i}(x_{i})=y_{i},\quad i=1,\ldots ,k-1$
    $S'_{i-1}(x_{i})=S'_{i}(x_{i}),\quad i=1,\ldots ,k-1$
    $S''_{i-1}(x_{i})=S''_{i}(x_{i}),\quad i=1,\ldots ,k-1$
    $S_{k-1}(x_{k})=y_{k}$

## Natuurlijke spline

Derde- en hogeregraadssplines hebben nog ten minste 2 graden van vrijheid. Dat geeft de mogelijkheid nog extra (rand)voorwaarden aan de spline op te leggen, bijvoorbeeld de raaklijnen in begin en eindpunt.
Wordt de eis opgelegd dat de tweede afgeleide in de eindpunten gelijk is aan 0, dan wordt de spline een natuurlijke spline genoemd.

## Voorbeeld
### Punten

Hier de punten waartussen we een kromme, Spline willen geconstrueerd zien:

### Lineair

Hierbij verbinden we simpelweg de punten. Je ziet snel dat er geen vrijheidsgraden zijn, ieder stukje is vast bepaald.

### Kwadratisch

Zoals hierboven besproken, blijft er één vrijheidsgraad over, die naar wens ingevuld kan worden (ergens raaklijn definiëren, of in een eindpunt de tweede afgeleide nul stellen).