Parametrische Spline-Interpolation

Eine Spline-Interpolation, wie ich sie in Kubischer Spline veröffentlicht habe, hat den Nachteil, dass die Werte auf der Abszisse streng monoton steigend sein müssen. Schon im Falle eines einzigen übereinander liegenden Paares versagt die dort angewendete Mathematik wegen unendlicher Steigung. Die Lösung ist die Einführung eines Parameters. Angeregt von Professor Scheibls Spline-Interpolation im 2D wurde also die benötige tridiagonale Matrix auf Ordinate und Abszisse angewendet. Alle dafür nötigen Berechnungen wurden, soweit sie auf dem Tabellenblatt nicht notwendigerweise ersichtlich sein müssen, mittels Namen umgesetzt. Die Begrenzung eines Namens auf 255 Zeichen erzwang für Matrix und beide Vektoren eine entsprechende Aufteilung. Matrix “M” und Vektor “V” nutzen für die Funktion INDEX (vorteilhaft nicht volatil und als Bezugsversion verwendet) das “very hidden” Tabellenblatt “X”, damit bei einem eventuellen Umbau wegen gelöschter Zeilen oder/und Spalten keine Bezugsprobleme auftreten können.
Im Prinzip handelt es sich um eine Weiterentwicklung von Kubischer Spline mit folgenden Unterschieden:

  • x-Werte können nun beliebig gewählt werden
  • Für einen “runden” Verlauf im Diagramm sorgt jetzt die dafür erweiterte benutzerdefinierte Funktion SPLINE(X_Werte; S_Werte; Xs_Werte; Ss_Werte; [n_ZW]). Xs_Werte und Ss_Werte sind die Ableitungen nach dem Parameter, die via Namen berechnet werden.
  • Die Abfrage kann jetzt wahlweise für x- oder S(x)-Werte durchgeführt werden
  • Die Werte dafür werden von der benutzerdefinierten Funktion SPLINE_VAL(x; Sx; xs; Ssx; Wert; [Art]; [Aufsteigend]) geliefert. Wert ist die Basis der Abfrage, mit Art (optional mit Default = “x”) und aufsteigender Sortierung (optional mit Default = WAHR).
  • Für den Typ “periodisch” werden nun gleiche Ordinaten und Abszissen der Endpunkte vorausgesetzt, d. h. eine Bedingte Formatierung streicht die Wahl bei Nichterfüllung durch.

Der Vorteil eines parametrischen Splines wird beispielhaft sehr schön anhand einer verschlungenen geschlossen Figur gezeigt. Die Microsoft’sche Methode des Glättens kommt in solchen Fällen leider noch schlechter weg! Das Eck bei geschlossenen Figuren lässt sich überdies nur durch Tricksereien über eng benachbarte Punkte vermeiden.
Natürlich wäre es unsinnig zu erwarten, dass diese Methode bei sehr vielen Punkten angewendet werden würde! Aber dafür dürfte ich aus heutiger Sicht schon ein deutlich einfacheres und trotzdem funktionierendes Prinzip für eine Näherung mit den zwei Nachbarpunkten gefunden haben.
Bis zu dessen Veröffentlichung wünsche ich viel Freude mit der folgenden Datei:

PS: Die beim Öffnen auftretende Fehlermeldung ist scheinbar unvermeidlich.