Zum Inhalt springen

Spline-Interpolation

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 25. Mai 2007 um 15:59 Uhr durch 195.141.74.196 (Diskussion) (Der kubische Spline). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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.

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.

Der kubische Spline

Es soll eine Funktion interpoliert werden.

Hierzu unterteilt man ein Intervall 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 Bedingungen benötigt. Für jedes der Intervalle sind zwei Interpolationsbedigungen zu erfüllen:

Dadurch entstehen Bedingungen. Weitere Bedingungen erhält man dadurch, dass der Spline an allen 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:
  • eingespannter Rand: wobei und vorgegeben, normalerweise entweder durch die Ableitung der zu interpolierenden Funktion f oder durch eine Approximation derselben.
  • periodische Randbedinung: ,
  • not-a-knot (verwendet zum Beispiel vom Programm "Matlab"): Die äußeren drei Punkte werden je durch ein Polynom interpoliert.
  • In der Programmiersprache wird die Funktion mit dem Befehl CSpline() abgekürzt. Sie ist ebenfalls Besandteil der IEC1131.

Die erste Ableitung (Steigung) sieht so aus:

Die zweite Ableitung (Krümmung) sieht so aus:

Online-Tool zum Berechnen von kubischen Splines