Spline2D (FPScript)

21.09.2021

Interpole un ensemble de données bidimensionnelles à travers une grille de courbes splines et échantillonne ces courbes à des points définissables.

Syntaxe

Spline2D(Surface, NX, NZ, SamplingMode, [ VX1 = 0 ], [ VXn = 0 ], [ VZ1 = 0 ] [ , VZn = 0 ])
ou
Spline2D(DataMatrix, LocusX, LocusZ, NX, NZ, SamplingMode, [ VX1 = 0 ], [ VXn = 0 ], [ VZ1 = 0 ] [ , VZn = 0 ])

 

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

Section

Description

Surface

La matrice de données ou série de signaux avec une composante Z et un intervalle d'échantillonnage constant, qui est interpolée. Si les composantes X et Z sont manquantes, elles seront générées automatiquement.

Les structures de données autorisées sont Matrice de données et Série de signaux. 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.

DataMatrix

Matrice de données avec la composante Y de la série de signaux à interpoler. Si vous spécifiez une série de signaux, alors sa composante Y est utilisée.

Les structures de données autorisées sont Matrice de données et Série de signaux. 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é.

LocusX

Séries de données avec la composante X de la série de signaux à 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 et Signal. Tous les types de données numériques 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é.

LocusZ

Séries de données avec la composante Z de la série de signaux à 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 et Signal. Tous les types de données numériques 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é.

NX

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 à 0.

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é.

NZ

Spécifie le nombre total de points ou par intervalle Z 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 à 0.

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" (VX1, VZ1, VXn et VZn sont ignorées).

+ SPLINE_1DERIVATIVE

VX1, VZ1, VXn et VZn sont interprétés comme un gradient (dérivée 1) dans le premier et le dernier point dans la direction X ou Z.

+ SPLINE_2DERIVATIVE

VX1, VZ1, VXn et VZn sont interprétés comme une courbure (2e dérivée) au premier et au dernier point dans la direction X ou Z.

+ SPLINE_3DERIVATIVE

VX1, VZ1, VXn et VZn sont interprétés comme la troisième dérivée dans le premier et le dernier point dans la direction X ou Z.

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é.

VX1

Détermine la condition limite au bord gauche.

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 .

VXn

Détermine la condition limite au bord droit.

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 .

VZ1

Détermine la condition limite au bord arrière.

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 .

VZn

Détermine la condition limite au bord avant.

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.

Tout d'abord, pour chaque ligne de la grille couverte par la composante Y de l'ensemble de données, une courbe spline est modélisée et évaluée aux positions Z souhaitées. Ce type de courbe spline est constitué de polynômes cubiques, qui sont ajoutés les uns aux autres pour obtenir la variation le plus lisse possible. Ensuite, pour chaque colonne de la matrice de données ainsi calculée, une courbe spline est modélisée et évaluée aux positions X souhaitées. Avant chaque interpolation spline, les valeurs invalides (void) dans les lignes ou les colonnes sont éliminées par interpolation linéaire. La composante Y de l'ensemble de données à interpoler doit contenir au moins 3 x 3 valeurs et les composantes X et Z doivent être strictement croissantes.

Vous obtenez une courbe spline naturelle avec V1 et Vn comme dérivées secondes égales à zéro.

Disponible dans

FlexPro Basic, Professional, Developer Suite

Exemples

Dim data = {{0, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, -1, 0}, {0, 0, 0, 0}}
Spline2D(data, 100, 100, SPLINE_EQUIDISTANT + SPLINE_NOTAKNOT)
 

Interpole la matrice à travers une grille de courbes splines sans conditions limites.

Les illustrations suivantes montrent une courbe spline 2D et les données sur lesquelles elle repose :

Spline2D(data, 100, 100, SPLINE_EQUIDISTANT + SPLINE_1DERIVATIVE, -10, 10, -10, 10)
 

Interpolation de la matrice avec les conditions limites. VX1, VZ1, VXn et VZn sont interprétés comme un gradient (1ère dérivée) dans le premier et le dernier point dans la direction X ou Z.

Voir aussi

Fonction Clip2D

Fonction Spline

Fonction CompensatingSpline

Fonction CompensatingSpline2D

Fonction ParametricSpline

Fonction PeriodicSpline

Fonction BicubicSpline

Objet d'analyse Interpolation Spline

Objet d'analyse Interpolation de surface

Objet d'analyse Approximation 2D

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 :