Saltar navegación

Documentación de FlexPro 2025

Spline2D

Interpola un conjunto de datos bidimensional a través de una cuadrícula de curvas spline y los muestrea en puntos predefinidos.

Sintaxis

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

 

La sintaxis de la función Spline2D consta de los siguientes elementos:

Parte

Descripción

Surface

La matriz de datos o la serie de señales con componente Z con un intervalo de muestreo constante, que se interpola. Si faltan los componentes X y Z, se generan automáticamente.

Las estructuras de datos permitidas son Matriz de datos y Serie de señales. Se permiten todos los tipos de datos numéricos.

En los tipos de datos complejos se calcula un valor absoluto.

Si el argumento es una lista, la función se ejecuta para cada elemento de la lista y el resultado también es una lista.

DataMatrix

Matriz de datos con el componente Y de la serie de señales que se va a interpolar. Si especifica una serie de señales, se utiliza su componente Y.

Las estructuras de datos permitidas son Matriz de datos y Serie de señales. Se permiten todos los tipos de datos numéricos.

En los tipos de datos complejos se calcula un valor absoluto.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

LocusX

Serie de datos con el componente X de la serie de señales que se va a interpolar. Si especifica una señal, se utiliza su componente Y.

Las estructuras de datos permitidas son Serie de datos y Señal. Se permiten todos los tipos de datos numéricos.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

LocusZ

Serie de datos con el componente Z de la serie de señales que se va a interpolar. Si especifica una señal, se utiliza su componente Y.

Las estructuras de datos permitidas son Serie de datos y Señal. Se permiten todos los tipos de datos numéricos.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

NX

Especifica el número total de puntos o por intervalo X de la señal.

Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos enteros.

El valor debe ser mayor o igual que 0.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

NZ

Especifica el número total de puntos o por intervalo Z de la señal.

Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos enteros.

El valor debe ser mayor o igual que 0.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

SamplingMode

Especifica cómo debe muestrearse la curva spline calculada y qué condiciones de contorno deben utilizarse.

El argumento SamplingMode puede tener los siguientes valores:

Constante

Significado

SPLINE_EQUIDISTANT

N valores muestreados equidistantes.

SPLINE_INTERVAL

N valores por intervalo X original. El número de valores del resultado es (NumberOfRows(DataSet) - 1) * N + 1.

...más una constante que determina las condiciones de contorno.

Constante

Significado

+ SPLINE_NOTAKNOT

Condición de contorno "Not-A-Knot" (VX1, VZ1, VXn y VZn se ignoran).

+ SPLINE_1DERIVATIVE

VX1, VZ1, VXn y VZn se interpretan como pendiente (1.ª derivada) en el primer y último punto en las direcciones X y Z respectivamente.

+ SPLINE_2DERIVATIVE

VX1, VZ1, VXn y VZn se interpretan como curvaturas (2.ª derivada) en el primer y último punto en las direcciones X y Z respectivamente.

+ SPLINE_3DERIVATIVE

VX1, VZ1, VXn y VZn se interpretan como 3.ª derivada en el primer y último punto en las direcciones X y Z.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

VX1

Determina la condición de contorno en el borde izquierdo.

Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos reales.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

Se establece el valor predeterminado 0 si no se especifica el argumento.

VXn

Determina la condición de contorno en el borde derecho.

Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos reales.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

Se establece el valor predeterminado 0 si no se especifica el argumento.

VZ1

Determina la condición de contorno en el borde posterior.

Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos reales.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

Se establece el valor predeterminado 0 si no se especifica el argumento.

VZn

Determina la condición de contorno en el borde frontal.

Las estructuras de datos permitidas son Valor escalar. Se permiten todos los tipos de datos reales.

Si el argumento es una lista, se toma su primer elemento. Si se trata de nuevo de una lista, se repite el proceso.

Se establece el valor predeterminado 0 si no se especifica el argumento.

Notas

El resultado es siempre el tipo de datos En coma flotante de 64 bits.

En primer lugar, se modela una curva spline para cada fila de la cuadrícula abarcada por el componente Y del conjunto de datos y se evalúa en las posiciones Z deseadas. Una curva spline de este tipo está formada por polinomios cúbicos unidos entre sí de forma que la curva sea lo más suave posible. A continuación, se modela una curva spline para cada columna de la matriz de datos calculada y se evalúa en las posiciones X deseadas. Antes de cada interpolación de spline, los valores no válidos de las filas o columnas se eliminan mediante interpolación lineal. El componente Y del conjunto de datos que se va a interpolar debe contener al menos 3 x 3 valores y los componentes X y Z deben ser estrictamente monótono creciente.

Puede obtener una curva spline natural con V1 y Vn como 2.ª derivadas son iguales a cero.

Disponibilidad

FlexPro Basic, Professional, Developer Suite

Ejemplos

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)
 

Interpola la matriz a través de una cuadrícula de curvas spline sin condiciones de contorno.

Los siguientes gráficos muestran una curva spline 2D y los datos subyacentes:

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

Interpola la matriz con las condiciones de contorno. VX1, VZ1, VXn y VZn se interpretan como pendiente (1.ª derivada) en el primer y último punto en las direcciones X y Z respectivamente.

Véase también

Función Clip2D

Función Spline

Función SmoothingSpline

Función SmoothingSpline2D

Función ParametricSpline

Función PeriodicSpline

Función BicubicSpline

Objeto de análisis Interpolación de spline

Objeto de análisis Interpolación de superficie

Objeto de análisis Aproximación 2D

Bibliografía

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