IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

Interpolation à partir d'un nuage de points


Sujet :

Fortran

  1. #1
    Membre du Club Avatar de phy4me
    Inscrit en
    Octobre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 116
    Points : 61
    Points
    61
    Par défaut Interpolation à partir d'un nuage de points
    bonjour,

    Je veux utiliser un nuage de points (deux dimensions) dans une interpolation; j'ai pensé leur générer un maillage triangulaire et ensuite chercher le triangle auquel appartient mon point pour utiliser les trois valeurs associées aux nœuds de ce triangle. Je demande votre avis sur cette procédure.

    J'ai trouvé aussi une autre interpolation très recommandée dans ce cas, Interpolation de Kriging, mais vu mes besoins, je suis pas très motivé de voir leur théorie et tout ... votre avis aussi ?

    Merci beaucoup pour votre passage

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    Tu devrais peut-être préciser tes besoins, mais à première vue, construire un maillage triangulaire complet peut-être un assez gros travail (bien qu'il y ait surement des librairies de maillage de-ci de-là). Si il s'agit de faire de très nombreuses interpolations, pourquoi pas, mais si tu dois ensuite seulement extraire (interpoler) une valeur ou deux, ce n'est pas très rentable.

    Je ne connais pas particulièrement la méthode de Kriging, ci ce n'est que c'est lié au moindres carrées ... et d'ailleurs, on pourrait également imaginer faire une interpolation du type moindre carrés: tu te fixes une 'forme' générique, par exemple localement bilinéaire, puis tu prends les points dans un rayon (prédéfini) du point où tu souhaites réaliser ton interpolation, et tu t'appuies sur ces derniers pour obtenir ta valeur interpolée.

    Bonne continuation.

  3. #3
    Membre du Club Avatar de phy4me
    Inscrit en
    Octobre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 116
    Points : 61
    Points
    61
    Par défaut
    bonjour,
    Merci Ehouarn pour ta réponse, déjà tu me rajoute une autre solution qui me semble bonne. pour expliquer mieux voila ce que je veux faire, tout simplement c'est d'interpoler la profondeur des nœuds d'une grille d'une lagune en utilisant un nuage de point mesurées (environ 2000 points).
    J'ai trouvé beaucoup d'autre méthode, Rectangular interpolation, La méthode Inverse distance weighting , La méthode Triangulation with smoothing ...

  4. #4
    Membre du Club Avatar de phy4me
    Inscrit en
    Octobre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 116
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par Ehouarn Voir le message
    Je ne connais pas particulièrement la méthode de Kriging,
    voici une petite définition

    Merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Et bien au vu de la référence cité sur cette page (et de la version anglaise un peu plus étoffée), il semble bien que le 'krigeage' soit particulièrement adaptée à ton cas.
    Reste à implémenter tout ça...

  6. #6
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    Je veux utiliser un nuage de points (deux dimensions) dans une interpolation
    Le mot interpolation signifiant ce qu'il signifie, tu cherches une fonction dont le graphe passe par tous les points. C'est Bien ça ?

    Jean-Marc Blanc

  7. #7
    Membre du Club Avatar de phy4me
    Inscrit en
    Octobre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 116
    Points : 61
    Points
    61
    Par défaut
    Bonjour Jeaun Marc !
    Comme même je ne demande pas cette fonction. Mais je ne serais que hypercontent s'il est possible de l'avoir, vous avez une idée ?

  8. #8
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !

    La notion de "nuage de points" n'est pas claire. Si tu notes (x1,y1); (x2,y2); (x3,y3); (x4,y4); etc., est-ce que tu as toujours x1<x2<x3<x4, etc.

    Oui ou non ?

    Jean-Marc Blanc

  9. #9
    Membre du Club Avatar de phy4me
    Inscrit en
    Octobre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 116
    Points : 61
    Points
    61
    Par défaut
    salut ,
    non non ! je dispose des points M1(x1,y1),M2(x2,y2),M3(x3,y3), se ne sont pas ordonnées, et d'ailleurs comment peut on ordonner un nuage de point dans un espace 2D ?

    Merci

  10. #10
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    OK, tu as raison !
    ne sont pas ordonnées
    c'est bien ce que je pensais, mais on rencontre tellement de formulations imprécises sur ces forums que je préférais en être sur. Maintenant, il y a une autre chose:
    Sur chaque point (x_k, y_k) tu as une valeur f_k d'une certaine fonction f(x,y) et ce que tu appelles interpolation consiste à trouver une valeur plausible de cette fonction en tout autre point (x,y), au moins à l'intérieur de ton nuage et dans son voisinage immédiat.

    Vrai ou faux ?

    Autre question: s'agit-il d'une interpolation (doit impérativement passer par chacun des points) ou d'une approximation (doit passer le plus près possible des points ?

    Jean-Marc Blanc

  11. #11
    Membre du Club Avatar de phy4me
    Inscrit en
    Octobre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 116
    Points : 61
    Points
    61
    Par défaut
    Bonjour Jean-Marc
    d'abord merci pour votre intérêt,



    Sur chaque point (x_k, y_k) tu as une valeur f_k d'une certaine fonction f(x,y) et ce que tu appelles interpolation consiste à trouver une valeur plausible de cette fonction en tout autre point (x,y), au moins à l'intérieur de ton nuage et dans son voisinage immédiat.
    Vrai ou faux ?
    Vrai

    et mes résultats sont présentés comme montré ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    X(i)  Y(i)  Z(i)   <----- une profondeur
    1.0   1.0  5.0
    1.1   2.3  17.0
    0.5   12.0 12.0
    ....
    Autre question: s'agit-il d'une interpolation (doit impérativement passer par chacun des points) ou d'une approximation (doit passer le plus près possible des points ?
    Sérieusement j'ai pas bien compris car ce que vous venez de dire est clair dans une interpolation 1D ( X(i) et F(X(i)) ), mais ici, je demande de trouver la valeur ( approximative ) de la fonction Z(x(i),y(i)) d'un point donné de mon espace.
    En effet, d'après ce qu'on trouve dans la littérature, il existe beaucoup de méthode pour faire ce type d'interpolation, mais j'ai demandé une méthode plus au moins simple.
    Ce que j'ai pensé de réaliser au début c'est de localiser mon point M(x,y) dans ce nuage de point (surface), ensuite je vais me servir des trois points représentant les nœuds du triangle auquel ce point appartient, pour utiliser cette formulaire pour avoir la valeur approchée de Z(M(x,y)):
    Z(M(x,y))= a_1*Z(M_1) + a_2*Z(M_2) + a_1*Z(M_2)
    avec
    a_i = (1/MM_i)/(1/MM_1+1/MM_2+1/MM_3)
    j'ai utilisé l'inverse de la distance pour que le point le plus proche aura le poids le plus grand
    j'espère que j'ai bien expliqué
    Votre avis SVP
    Merci

  12. #12
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut !
    La solution la plus simple consiste à faire une interpolation linéaire:
    1. Déterminer les 3 points A, B et C les plus proches du point M.
    2. Calculer les coefficients de l'équation du plan passant par z(A), z(B) et z(C).
    3. Introduire les coordonnées de M dans cette équation.

    La surface z(x,y) est donc constituée de facettes triangulaires. Ce n'est peut-être pas très beau, mais si ça te suffit, ça a l'avantage d'être facile à programmer.
    Sinon, il faudra trouver autre-chose.
    Jean-Marc Blanc

  13. #13
    Membre du Club Avatar de phy4me
    Inscrit en
    Octobre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 116
    Points : 61
    Points
    61
    Par défaut
    Merci Jean-Marc également tous ce qui ont passés par là,
    Je passe à l'étape d'exécution
    Bon week-end

Discussions similaires

  1. Interpolation de surface 3D a partir d'un nuage de point (autre que la triangularisation) Matlab
    Par kriskadespe dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 23/07/2009, 17h02
  2. Dessiner une courbe à partir d'un nuage de points
    Par Bil-Prog dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 26/01/2007, 03h06
  3. Régression elliptique à partir d'un nuage de points
    Par yabbiyou dans le forum MATLAB
    Réponses: 2
    Dernier message: 16/01/2007, 11h10
  4. Equation d une sphere a partir d un nuage de points
    Par MDiabolo dans le forum Algorithmes et structures de données
    Réponses: 27
    Dernier message: 05/05/2006, 16h40
  5. Plan a partir d'un nuage de points
    Par Pedro dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 10/04/2006, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo