Tengo conjuntos de datos de campo multipunto, cada conjunto de datos de punto se relaciona con una sola celda de una malla no estructurada. El objetivo es interpolar los datos al centro celular, directa o indirectamente, de la manera más precisa.
Si uso la interpolación ponderada de distancia inversa, en el caso de que la distancia entre la fuente y el objetivo (centro de la celda) sea muy pequeña, podría terminar con una excepción de coma flotante.
Para este tipo de interpolación en una malla estructurada, se utiliza una interpolación ponderada por volumen. Esto no se traduce directamente a una celda de malla de forma arbitraria.
Introducir una tolerancia para una interpolación IDW para eludir el SIGFPE tiene sentido solo si no introduzco ninguna prueba que pueda hacer que la interpolación sea ineficiente. ¿Agregar una suficientemente pequeña al denominador para cada peso es una opción posible con la interpolación IDW? ¿Qué métodos de interpolación adecuados para este problema conoces?
Información adicional:
Para la interpolación de la malla a los puntos, estoy usando una interpolación basada en las coordenadas barcycentric . Cada celda poliédrica de la malla se descompone en tetraedros. El campo centrado en la celda se interpola a los puntos de la celda usando la interpolación IDW . Se realiza una búsqueda para cada punto para encontrar el tetraedro en el que se encuentra, y los valores se interpolan utilizando la interpolación baricéntrica .
fuente
Respuestas:
Los enlaces a diversos paquetes de software para la interpolación de datos dispersos se encuentran en mi página web http://www.mat.univie.ac.at/~neum/stat.html#fit
El libro
GE Fasshauer, Métodos de aproximación sin malla utilizando MATLAB, World Scienti fi c 2007.
ofrece un estado de arte integral (a partir de 2006).
Algunos documentos más recientes sobre interpolación de datos dispersos:
http://www.stanford.edu/group/uq/pdfs/journals/jcp_scattered_2010.pdf
http://www.math.auckland.ac.nz/~waldron/Preprints/ Box-splines / box-splines.pdf
El método a utilizar depende mucho del uso que se haga del interpolante resultante. Los métodos de Kriging se basan en un modelo estocástico, por lo tanto, son buenos si los datos a interpolar son algo ruidosos. Las funciones de base radial son preferibles si (implementado de manera estable) y se desea un resultado visualmente agradable (interpolación de baja curvatura).
fuente
A continuación daré un ejemplo de cómo interpolar de un conjunto de puntos a otro, en una malla de volumen finito.
He colocado la disposición de las variables: los datos que almaceno en la memoria representan valores en los centros de células. Almaceno variables de campo y sus gradientes. Los gradientes se encuentran a partir de valores circundantes que resuelven un problema de mínimos cuadrados (con QR a través de reflexiones de Householder).
Su disposición puede diferir, pero el principio es el mismo.
...
Entonces escribo
Por lo tanto, necesita un conjunto de valores de campo y gradientes en esos puntos. Debe decidir qué puntos circundantes contribuirán a su punto interpolado, así como los vectores de distancia desde estos puntos hasta el punto al que interpolamos.
Por ejemplo: si uno almacena datos representativos de valores en vértices de celda, use esta ecuación para encontrar valores de centro de celda, etc., todo dependiendo de la situación que tenga.
Entonces esto se basa en la serie de Taylor alrededor del punto. También se pueden usar segundas derivadas para derivar una expresión más precisa.
fuente