Spline (FPScript)

21.09.2021

Interpole un ensemble de données avec une courbe spline et échantillonne cette courbe à des points définissables.

Syntaxe

Spline(DataSet, N, SamplingMode, [ V1 = 0 ] [ , Vn = 0 ])
ou
Spline(Amplitude, Time, N, SamplingMode, [ V1 = 0 ] [ , Vn = 0 ])

 

La syntaxe de la fonction Spline se compose des éléments suivants :

Section

Description

DataSet

L'ensemble de données avec un intervalle d'échantillonnage constant, qui est interpolé. Si vous spécifiez une série de données, la composante X sera générée automatiquement.

Les structures de données autorisées sont Séries de données, Matrice de données, Signal, Série de signaux et Série de signaux avec composante X bidimensionnelle. Tous les types de données numériques sont autorisés.

Pour les types de données complexes, un nombre est formé.

Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste.

Amplitude

La composante Y du signal à interpoler. Si vous spécifiez un signal, alors sa composante Y est utilisée.

Les structures de données autorisées sont Séries de données, Matrice de données et Signal. Tous les types de données numériques sont autorisés.

Pour les types de données complexes, un nombre est formé.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Time

La composante X du signal à interpoler. Si vous spécifiez un signal, alors sa composante Y est utilisée.

Les structures de données autorisées sont Séries de données, Matrice de données et Signal. Tous les types de données numériques sont autorisés.

Pour les types de données complexes, un nombre est formé.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

N

Spécifie le nombre total de points ou par intervalle X du signal.

Les structures de données autorisées sont Scalaire. Tous les types de données entiers sont autorisés.

La valeur doit être supérieure ou égale à 1.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

SamplingMode

Spécifie comment la courbe spline calculée doit être échantillonnée et quelles conditions limites sont utilisées.

L'argument SamplingMode peut avoir les valeurs suivantes :

Constante

Signification

SPLINE_EQUIDISTANT

N valeurs échantillonnées à équidistance.

SPLINE_INTERVAL

N valeurs par intervalle X initial. Le nombre de valeurs du résultat est (NumberOfRows(DataSet) - 1) * N + 1.

...plus une constante, qui détermine les conditions limites.

Constante

Signification

+ SPLINE_NOTAKNOT

Condition limite "Not-A-Knot" (V1 et Vn sont ignorées).

+ SPLINE_1DERIVATIVE

V1 et Vn sont interprétés comme la première dérivée au premier et dernier point.

+ SPLINE_2DERIVATIVE

V1 et Vn sont interprétés comme la deuxième dérivée au premier et dernier point.

+ SPLINE_3DERIVATIVE

V1 et Vn sont interprétés comme le troisième dérivé au premier et dernier point.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

V1

Détermine la condition limite au début de la courbe spline.

Les structures de données autorisées sont Scalaire. Tous les types de données réels sont autorisés.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut 0 .

Vn

Détermine la condition limite à la fin de la courbe spline.

Les structures de données autorisées sont Scalaire. Tous les types de données réels sont autorisés.

Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété.

Si l'argument n'est pas spécifié, il est défini à la valeur par défaut 0 .

Remarques

Le résultat est toujours du type de données Virgule flottante de 64 bits.

Le résultat a la même unité que l'argument DataSet.

Une courbe spline est constituée de polynômes cubiques qui sont ajoutés les uns aux autres pour fournir une variation aussi lisse que possible.

La composante Y de l'ensemble de données à interpoler doit contenir au moins 3 valeurs et la composante X doit être strictement croissante. Si ce n'est pas le cas (par exemple, avec un lieu géométrique), vous devez alors utiliser la fonction ParametricSpline. Les valeurs X, cependant, ne doivent pas être équidistantes. Avant l'interpolation spline, les valeurs invalides (void) dans la composante Y sont éliminées par interpolation linéaire.

Vous obtenez une courbe spline naturelle avec V1 et Vn comme des dérivées secondaires égaux à zéro.

L'illustration suivante montre des courbes spline avec différentes conditions aux limites. Les valeurs V1 et Vn sont respectivement égales à zéro.

Disponible dans

FlexPro Basic, Professional, Developer Suite

Exemples

Spline({0, 1, 0, 0, 1}, 20, SPLINE_EQUIDISTANT)
 

Il en résulte une courbe spline échantillonnée à équidistance avec 20 valeurs.

Spline({0, 1, 0, 0, 1}, 20, SPLINE_INTERVAL)
 

Il en résulte une courbe spline avec 81 valeurs.

Spline({0, 1, 0, 0, 1}, 20, SPLINE_EQUIDISTANT + SPLINE_1DERIVATIVE, -5, -5)
 

Il en résulte une courbe spline échantillonnée à équidistance avec 20 valeurs. La courbe a une pente de -5 sur les bords.

L'illustration suivante montre les courbes de cannelure pour les trois exemples :

Voir aussi

Fonction BicubicSpline

Fonction CompensatingSpline

Fonction ParametricSpline

Fonction PeriodicSpline

Fonction Spline2D

Objet d'analyse Interpolation Spline

Objet d'analyse Interpolation de surface

Littérature

[1] "Carl de Boor": "A Practical Guide to Splines, Revised Edition". "Springer-Verlag, New York",2001.ISBN 0-387-95366-3.

Partager l’article ou envoyer par mail :

Vous serez probablement intéressé par les articles suivants :