J'ai des ensembles de données de champ multipoint, chaque ensemble de données de point concerne une seule cellule d'un maillage non structuré. Le but est d'interpoler les données au centre de la cellule, directement ou indirectement, de la manière la plus précise.
Si j'utilise l'interpolation pondérée par la distance inverse, dans le cas où la distance entre la source et la cible (centre de la cellule) est très petite, je peux me retrouver avec une exception à virgule flottante.
Pour ce type d'interpolation sur un maillage structuré, une interpolation pondérée en fonction du volume est utilisée. Cela ne se traduit pas directement par une cellule maillée de forme arbitraire.
L'introduction d'une tolérance pour une interpolation IDW pour contourner le SIGFPE n'a de sens que si je n'introduis aucun test qui pourrait rendre l'interpolation inefficace. L'ajout d'un suffisamment petit au dénominateur pour chaque poids est-il une option possible avec l'interpolation IDW? Quelles méthodes d'interpolation adaptées à ce problème connaissez-vous?
Information additionnelle:
Pour l'interpolation du maillage aux points, j'utilise une interpolation basée sur les coordonnées barcycentriques . Chaque cellule polyédrique du maillage est décomposée en tétraèdres. Le champ centré sur la cellule est interpolé aux points de cellule à l'aide d'une interpolation IDW . Une recherche est effectuée pour chaque point pour trouver le tétraèdre dans lequel il se trouve, et les valeurs sont interpolées en utilisant l'interpolation barycentrique .
Réponses:
Des liens vers divers progiciels d'interpolation de données dispersées se trouvent sur ma page Web http://www.mat.univie.ac.at/~neum/stat.html#fit
Le livre
GE Fasshauer, Meshfree Approximation Methods using MATLAB, World Scienti fi c 2007.
présente un état de l'art complet (en date de 2006).
Quelques articles plus récents sur l'interpolation de données dispersées:
http://www.stanford.edu/group/uq/pdfs/journals/jcp_scattered_2010.pdf
http://www.math.auckland.ac.nz/~waldron/Preprints/ Boîte-splines / box-splines.pdf
La méthode à utiliser dépend beaucoup de l'utilisation faite de l'interpolant résultant. Les méthodes de krigeage sont basées sur un modèle stochastique et sont donc bonnes si les données à interpoler sont quelque peu bruyantes. Les fonctions de base radiales sont à privilégier si (implémentées de manière stable) et qu'un résultat visuellement agréable est souhaité (interpolation à faible courbure).
la source
Ci-dessous, je donnerai un exemple comment interpoler d'un ensemble de points à un autre, sur un maillage de volume fini.
J'ai colocalisé la disposition des variables - les données que je stocke en mémoire représentent des valeurs aux centres cellulaires. Je stocke les variables de champ et leurs gradients. Les gradients sont trouvés à partir des valeurs environnantes résolvant un problème des moindres carrés (avec QR via les réflexions du maître de maison).
Votre arrangement peut différer mais le principe est le même.
...
Ensuite j'écris
Vous avez donc besoin d'un ensemble de valeurs de champ et de dégradés à ces points. Vous devez décider quels points environnants contribueront à votre point interpolé, ainsi que les vecteurs de distance de ces points au point auquel nous interpolons.
Par exemple: si l'on stocke des données représentatives des valeurs aux sommets des cellules, vous utilisez cette équation pour trouver des valeurs au centre de la cellule, etc., tout cela en fonction de votre situation.
Donc, cela est basé sur la série Taylor autour du point. On peut aussi utiliser des dérivées secondes pour dériver une expression plus précise.
la source