Wie funktioniert die Spline-Interpolation mit kubischen Splines?

2 Antworten

Gehe mal in eine Leihbücherei, und halte nach dem folgenden Buch Ausschau :

Hans Rudolf Schwarz, "Numerische Mathematik", Teubner - Verlag

Ich habe die 3-te Auflage davon zu Hause, wie sich die 5-te Auflage gegenüber der 3-ten unterscheidet, weiß ich nicht.

Du solltest aber auch nach noch mehr Büchern Ausschau halten.

In Kapitel 3.7 geht es um die Spline-Interpolation.

Abgehandelt wird :

- natürliche kubische Spline-Funktion

- allgemeine kubische Spline-Interpolation (NOT-A-KNOT - Bedingung)

- periodische kubische Spline-Interpolation

- glatte zweidimensionale Kurvendarstellung

Außerdem kenne ich diese Webseite schon seit langem :

http://www.arndt-bruenner.de/mathe/scripts/kubspline.htm

Hier können die Endbedingungen S"(x0) und S"(xn) vorgegeben werden.

Sollte die Webseite nicht funktionieren, dann liegt das normalerweise daran, weil du Java-Script in deinem Webbrowser deaktiviert hast.

Hier noch mal eine andere Webseite, die die NOT-A-KNOT-Bedingung umsetzt :

http://www.akiti.ca/CubicSpline.html

Diese Webseite hat den Makel, dass die Spline-Funktionen dort nicht angezeigt werden.

Das Ergebnis dieser Webseite unterscheidet sich von der Webseite von Ardt Brünner, wegen der NOT-A-KNOT-Bedingung.

Hier noch eine Webseite :

http://tools.timodenk.com/cubic-spline-interpolation

Die Ergebnisse dieser Webseite stimmen mit der von Arndt Brünner für S"(x0) = 0 und S"(xn) = 0 überein.

----------------------------------------------------------------------------------------------------

Im Prinzip besteht die Spline - Interpolation mit dem Computer aus mehr oder weniger 7 wesentlichen Schritten.

1.) Eingabe der Stützstellen und Stützwerte

2.) Festlegung der Randbedingungen, d.h ob es ein natürlicher Spline sein soll, die Randbedingungen S"(x0)  und S"(xn) vom Benutzer vorgebbar sein sollen, oder ob Splines mit der NOT-A-KNOT-Bedingung verwendet werden sollen.

3.) Ein funktionierendes Unterprogramm, welches große lineare Gleichungssysteme genau genug berechnen kann.

4.) Korrektes Aufstellen des linearen Gleichungssystems, dass zu der Art der unter 2.) genannten Randbedingungen passt.

5.) Lösen des Gleichungssystems mit dem in 3.) erwähnten Unterprogramm

6.) Ein Unterprogramm welches den richtigen Intervallen die korrekte Spline-Funktion zuweist und Interpolationswerte für x berechnen kann.

7.) Wenn gewünscht, eine Anzeige der Spline-Funktion für das jeweilige Intervall.

Mehr kann ich dir nicht helfen, weil das schon jetzt den Rahmen hier sprengt, also besorge dir Bücher, so viele, bis du eines gefunden hast, in dem du das verstehst, was dort geschrieben steht.

Eine Interpolation versucht aufgrund von Stützwerten eine Funktion zu finden, die optimal durch die Stützwerte verläuft. "Optimal" heist, dass z.B. die Summe der Fehler zwischen Stützwert und Funktionswert minimal wird.

Die Interpolation von Funktionswerten wird umso schlechter, je grösser der Definitionsbereich (x-Werte) ist. Klar, denn umso schwerer wird es, eine einizge Funktion zu finden, die alle Vorgaben erfüllt.

Bei der Spline-Interpolation wird der Definitionsbereich in mehrere Intervalle eingeteilt. Die Interpolation erfolgt also nicht für den gesamten Definitionsbereich, sondern für jedes Intervall unabhängig. Damit entsteht für jedes Intervall eine ganz eigene Interpolations-Funktion.

Die Spline-Interpolation gewährleistet zusätzlich, dass die Randwerte an den Intervallen identisch sind, also keine Sprünge auftreten. Ausserdem muss die erste oder auch die zweite Ableitung an den Randstellen identisch sein. Damit erreicht man einen "glatten" Funktionsverlauf an den Randstellen der Intervalle.