Spline-Interpolation
aus Wikipedia, der freien Enzyklopädie
Bei der Spline-Interpolation versucht man, eine Funktion mit Hilfe von Splines zu interpolieren. Die einfachste Methode dazu ist die Verwendung von Geraden zwischen jeweils zwei benachbarten Punkten. Je mehr Punkte man nimmt und die Entfernungen zwischen diesen verkürzt, desto genauer approximiert man die gegebene Funktion. Die Extrapolation kann allerdings teilweise sehr schlecht sein. Bei der Interpolation von z. B. Messwerten muss berücksichtigt werden, dass wirklich alle Punkte einbezogen werden, d. h. so genannte Ausreißer beeinflussen das Ergebnis.
[Bearbeiten] Einfacher Ansatz (Streckenzug)
Die Berechnung eines einfachen Splines als Streckenzug erfolgt auf die bekannte Weise, mit der man auch den Graphen zwischen zwei Punkten ermittelt:
, d.h.
(mit und )
Es ist klar, dass diese „einfachen“ Spline-Polynome – wie oben angesprochen – sehr ungenau sein können. Wesentlich bessere Ergebnisse liefern kubische Spline-Polynome.
[Bearbeiten] Der kubische Spline
Es soll eine Funktion f interpoliert werden.
Hierzu unterteilt man ein Intervall [a,b] durch und definiert die Stützstellen.
Auf jedem Teilintervall soll nun ein Polynom 3. Grades, das 2-fach stetig differenzierbar ist, angesetzt werden:
für und
Um das Gleichungssystem eindeutig zu lösen werden 4n Bedingungen benötigt. Für jedes der n Intervalle sind zwei Interpolationsbedigungen zu erfüllen:
Dadurch entstehen 2n Bedingungen. Weitere 2n − 2 Bedingungen erhält man dadurch, dass der Spline an allen n − 2 inneren Stützstellen zweimal stetig differenzierbar sein muss:
Für die weiteren 2 Bedingungen (Randbedingungen) gibt es verschiedene Möglichkeiten, so z. B.:
- freier Rand oder natürlicher Spline: S0''(x0) = 0,Sn − 1''(xn) = 0
- eingespannter Rand: S0'(x0) = f0',Sn − 1'(xn) = fn' wobei f0' und fn' vorgegeben, normalerweise entweder durch die Ableitung der zu interpolierenden Funktion f oder durch eine Approximation derselben.
- periodische Randbedinung: S0'(x0) = Sn − 1'(xn), S0''(x0) = Sn − 1''(xn)
- not-a-knot (verwendet zum Beispiel vom Programm "Matlab"): Die äußeren drei Punkte werden je durch ein Polynom interpoliert.
Die erste Ableitung (Steigung) sieht so aus:
Die zweite Ableitung (Krümmung) sieht so aus: