Spline-Interpolation

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:
\(\displaystyle s(x) = m \cdot x + b\), d.h.
\(\displaystyle s(x) = \dfrac{y_2 - y_1}{x_2 - x_1} \cdot x + y_1 - \dfrac{y_2 - y_1}{x_2 - x_1} \cdot x_1\) (mit \(\displaystyle m = \dfrac{y_2 - y_1}{x_2 - x_1}\) und \(\displaystyle b = y_1 - m \cdot x_1\))
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 \(\displaystyle f\) interpoliert werden.
Hierzu unterteilt man ein Intervall \(\displaystyle [a,b]\) durch \(\displaystyle a=x_0<x_1<\ldots<x_{n-1}<x_n=b\) und definiert die Stützstellen \(\displaystyle (x_i,f_i=f(x_i))\), \(\displaystyle i=0,\ldots,n\).
Auf jedem Teilintervall soll nun ein Polynom 3. Grades, das 2-fach stetig differenzierbar ist, angesetzt werden:
\(\displaystyle S_j(x) = a_j + b_j \cdot (x - x_j) + c_j \cdot (x-x_j)^2 + d_j \cdot (x-x_j)^3\) für \(\displaystyle x_j\leq x\leq x_{j+1}\) und \(\displaystyle j=0,\ldots,n-1\)
Um das Gleichungssystem eindeutig zu lösen werden \(\displaystyle 4n\) Bedingungen benötigt. Für jedes der \(\displaystyle n\) Intervalle sind zwei Interpolationsbedigungen zu erfüllen:
\(\displaystyle S_j(x_j) = f_j \) \(\displaystyle j=0,1,\ldots,n-1\)
\(\displaystyle S_j(x_{j+1}) = f_{j+1}\) \(\displaystyle j=0,1,\ldots,n-1\)
Dadurch entstehen \(\displaystyle 2n\) Bedingungen. Weitere \(\displaystyle 2n-2\) Bedingungen erhält man dadurch, dass der Spline an allen \(\displaystyle n-2\) inneren Stützstellen zweimal stetig differenzierbar sein muss:
\(\displaystyle S´_j(x_j) = S´_{j+1}(x_j) \) \(\displaystyle j=1,\ldots,n-1\)
\(\displaystyle S´´_j(x_j) = S´´_{j+1}(x_j)\) \(\displaystyle j=1,\ldots,n-1\)
Für die weiteren 2 Bedingungen (Randbedingungen) gibt es verschiedene Möglichkeiten, so z. B.:
  • freier Rand oder natürlicher Spline: \(\displaystyle S_0(x_0)=0,S_{n-1}(x_n)=0\)
  • eingespannter Rand: \(\displaystyle S_0'(x_0)=f_0',S_{n-1}'(x_n)=f_n'\) wobei \(\displaystyle f_0'\) und \(\displaystyle f_n'\) vorgegeben, normalerweise entweder durch die Ableitung der zu interpolierenden Funktion \(\displaystyle f\) oder durch eine Approximation derselben.
  • periodische Randbedinung: \(\displaystyle S_0'(x_0)=S_{n-1}'(x_n),\, S_0(x_0)=S_{n-1}(x_n)\)
  • not-a-knot: Die äußeren drei Punkte werden je durch ein Polynom interpoliert.
Die erste Ableitung (Steigung) sieht so aus:
\(\displaystyle S_j'(x) = b_j + {2 \cdot c_j} \cdot (x-x_j) + {{3 \cdot d_j} \cdot (x-x_j)^2}\).
Die zweite Ableitung (Krümmung) sieht so aus:
\(\displaystyle S_j(x) = 2 \cdot c_j + {6 \cdot d_j} \cdot (x-x_j)\).

Die Furcht vor der Mathematik steht der Angst erheblich näher als der Ehrfurcht.

Felix Auerbach

Copyright- und Lizenzinformationen: Diese Seite basiert dem Artikel Spline-Interpolation aus der frеiеn Enzyklοpädιe Wιkιpеdιa und stеht unter der Dοppellizеnz GNU-Lιzenz für freie Dokumentation und Crеative Commons CC-BY-SA 3.0 Unportеd (Kurzfassung). In der Wιkιpеdιa ist eine Listе dеr Autorеn des Originalartikels verfügbar. Da der Artikel geändert wurde, reicht die Angabe dieser Liste für eine lizenzkonforme Weiternutzung nicht aus!
Anbieterkеnnzeichnung: Mathеpеdιa von Тhοmas Stеιnfеld  • Dοrfplatz 25  •  17237 Blankеnsее  • Tel.: 01734332309 (Vodafone/D2)  •  Email: cο@maτhepedιa.dе