Spline (FPScript)
Interpoliert einen Datensatz durch eine Spline-Kurve und tastet diese an vorgebbaren Stellen ab.
Syntax
Spline(DataSet, N, SamplingMode, [ V1 = 0 ] [ , Vn = 0 ])
oder
Spline(Amplitude, Time, N, SamplingMode, [ V1 = 0 ] [ , Vn = 0 ])
Die Syntax der Spline-Funktion besteht aus folgenden Teilen:
Teil |
Beschreibung |
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DataSet |
Der Datensatz mit konstantem Abtastintervall, welcher interpoliert wird. Wenn Sie eine Datenreihe angeben, wird die X-Komponente automatisch generiert. Erlaubte Datenstrukturen sind Datenreihe, Datenmatrix, Signal, Signalreihe und Signalreihe mit zweidimensionaler X-Komponente. Es sind alle numerischen Datentypen erlaubt. Bei komplexen Datentypen erfolgt eine Betragsbildung. Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste. |
||||||||||||||||
Amplitude |
Die Y-Komponente des zu interpolierenden Signals. Wenn Sie ein Signal angeben, wird dessen Y-Komponente verwendet. Erlaubte Datenstrukturen sind Datenreihe, Datenmatrix und Signal. Es sind alle numerischen Datentypen erlaubt. Bei komplexen Datentypen erfolgt eine Betragsbildung. Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. |
||||||||||||||||
Time |
Die X-Komponente des zu interpolierenden Signals. Wenn Sie ein Signal angeben, wird dessen Y-Komponente verwendet. Erlaubte Datenstrukturen sind Datenreihe, Datenmatrix und Signal. Es sind alle numerischen Datentypen erlaubt. Bei komplexen Datentypen erfolgt eine Betragsbildung. Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. |
||||||||||||||||
N |
Gibt die Anzahl der Punkte insgesamt bzw. pro X-Intervall des Signals an. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle ganzzahligen Datentypen erlaubt. Der Wert muss größer gleich 1 sein. Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. |
||||||||||||||||
SamplingMode |
Gibt an, wie die berechnete Spline-Kurve abgetastet werden soll und welche Randbedingungen verwendet werden. Das Argument SamplingMode kann folgende Werte haben:
...plus einer Konstanten, die die Randbedingungen bestimmt.
Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. |
||||||||||||||||
V1 |
Bestimmt die Randbedingung am Anfang der Spline-Kurve. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt. Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert 0 gesetzt. |
||||||||||||||||
Vn |
Bestimmt die Randbedingung am Ende der Spline-Kurve. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt. Ist das Argument eine Liste, dann wird deren erstes Element entnommen. Ist dies wieder eine Liste, dann wird der Vorgang wiederholt. Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert 0 gesetzt. |
Anmerkungen
Das Ergebnis ist immer vom Datentyp 64-Bit Fließkomma.
Das Ergebnis hat die gleiche Einheit wie das Argument DataSet.
Eine Spline-Kurve besteht aus kubischen Polynomen, die so aneinander gehängt werden, dass ein möglichst glatter Verlauf entsteht.
Die Y-Komponente des zu interpolierenden Datensatzes muss mindestens 3 Werte enthalten und die X-Komponente muss streng monoton wachsend sein. Ist letzteres nicht der Fall (z. B. bei einer Ortskurve), so sollten Sie dieParametricSpline-Funktion verwenden. Die X-Werte müssen jedoch nicht äquidistant sein. Vor der Spline-Interpolation werden ungültige Werte in der Y-Komponente durch lineare Interpolation eliminiert.
Eine natürliche Spline-Kurve erhalten Sie mit V1 und Vn als 2. Ableitungen gleich Null.
Die folgende Grafik zeigt Spline-Kurven mit verschiedenen Randbedingungen. Die Werte V1 und Vn sind jeweils gleich Null.
Verfügbarkeit
FlexPro Basic, Professional, Developer Suite
Beispiele
Spline({0, 1, 0, 0, 1}, 20, SPLINE_EQUIDISTANT)
Ergibt eine äquidistant abgetastete Spline-Kurve mit 20 Werten.
Spline({0, 1, 0, 0, 1}, 20, SPLINE_INTERVAL)
Ergibt eine Spline-Kurve mit 81 Werten.
Spline({0, 1, 0, 0, 1}, 20, SPLINE_EQUIDISTANT + SPLINE_1DERIVATIVE, -5, -5)
Ergibt eine äquidistant abgetastete Spline-Kurve mit 20 Werten. Die Kurve hat an den Rändern die Steigung -5.
Die folgende Grafik zeigt die Spline-Kurven der drei Beispiele:
Siehe auch
Analyseobjekt Spline-Interpolation
Analyseobjekt Oberflächeninterpolation
Literatur
[1] "Carl de Boor": "A Practical Guide to Splines, Revised Edition". "Springer-Verlag, New York",2001.ISBN 0-387-95366-3.