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

MATLAB Discussion :

Tracé de surface implicite


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 31
    Par défaut Tracé de surface implicite
    Bonjour,
    J'aimerais pouvoir représenter avec matlab une surface implicite (de la forme f(x,y,z)=k), sachant qu'en un point (x,y,z) donné, l'expression de f n'est pas connue explicitement (par exemple, je cherche à modéliser l'influence de plusieurs "points source" qui engendreraient chacun une fonction gaussienne centrée en ces points respectifs; l'expression de f serait alors donnée par la somme des fonctions crées par les différents points source).
    J'ai vu sur le net qu'il existe une fonction implicitplot3d qui permet de tracer une surface implicite, mais il faut avoir l'expression de f, ce qui n'est pas mon cas (ou alors, je m'y prends mal), puisque je calcule mon f à chaque point de la grille que j'ai définie au début.
    Merci de votre aide!

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Salut,

    bon, il n'y a pas de question, mais je vais essayer d'y répondre quand même .

    As-tu essayé d'utiliser la fonction isosurface?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Ne s'agit-il pas plutôt d'appliquer successivement ces fonctions sur des points d'une grille générée avec MESHGRID et d'en faire la somme ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [x,y] = meshgrid(1:.05:10);
    z = zeros(size(x));
     
    r = 1;
     
    for n=1:2*r:10
        idx = sqrt((x-n).^2+(y-n).^2)<=r;
        z = z+idx;   
    end
     
    figure
    surf(x,y,z,'edgecolor','none','facecolor','r')
    light
    axis equal

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 31
    Par défaut
    Il ne s'agit pas de calculer la valeur d'une fonction sur une grille, car la fonction (dont je n'ai pas d'expression condensée, par exemple parce qu'elle est définie par morceaux) est à 3 variables, c'est-à-dire qu'il faudrait 4 dimensions pour la représenter. Je veux donc représenter une "surface de niveau" de cette fonction.
    La fonction isosurface pourrait peut-être convenir, mais "help isosurface" ne m'a pas beaucoup éclairé. Ils parlent de patch, et je ne comprends pas vraiment (je précise que je débute avec ce logiciel). L'idéal pour moi serait de rentrer l'expression de ma fonction, mon iso-valeur, et éventuellement les points de la grille (en 3d?) sur lesquels on calcule la valeur de f, et d'obtenir ensuite le graphique.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 31
    Par défaut
    Je ne suis pas sûr de ce que j'avance, mais j'ai aussi l'impression que la fonction isosurface nécessite de connaître l'expression condensée de ma fonction(?)

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Non, non isosurface affiche des surfaces de niveau à partir d'un ensemble de valeurs de la fonction et non à partir d'une expression analytique.

    patch est une fonction permettant d'afficher un ensemble de faces (polygones) définis par des sommets, or la fonction isosurface renvoi précisément des faces et des sommets, c'est pourquoi patch est utilisé sur la fonction isosurface.

    L'idéal pour moi serait de rentrer l'expression de ma fonction
    ??? Tu as l'expression ou non?
    , mon iso-valeur, et éventuellement les points de la grille (en 3d?) sur lesquels on calcule la valeur de f, et d'obtenir ensuite le graphique.
    C'est effectivement ce que tu dois rentrer, v est la valeur de ta fonction aux points définit par x, y et z; et isovalue est ton iso-valeur.

    As-tu essayé d'exécuter les exemples pour regarder comment sont construit x,y,z et v?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 31
    Par défaut
    D'accord. Si je comprends bien, ils génèrent une grille de taille 25x50x25 avec flow, puis ils définissent la fonction sur chaque point de la grille. Donc dans mon cas où je n'ai pas d'expression analytique, je dois parcourir la grille avec des boucles for et définir en chaque point la valeur de ma fonction?
    Peut-on générer une grille de taille autre que nxnx2x?

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Citation Envoyé par wnxbcv Voir le message
    D'accord. Si je comprends bien, ils génèrent une grille de taille 25x50x25 avec flow, puis ils définissent la fonction sur chaque point de la grille. Donc dans mon cas où je n'ai pas d'expression analytique, je dois parcourir la grille avec des boucles for et définir en chaque point la valeur de ma fonction?
    Oui
    Citation Envoyé par wnxbcv Voir le message
    Peut-on générer une grille de taille autre que nxnx2x?
    Pas compris ton nxnx2x... tu peux générer des grilles de la taille que tu souhaites.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  9. #9
    Membre éprouvé
    Avatar de mr_langelot
    Profil pro
    Inscrit en
    Août 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 113
    Par défaut
    Bonjour,

    1) Ne peux-tu ramener tes fonctions à des fonction à 3 variables puisque je comprends que tu fixes v ?

    2)

Discussions similaires

  1. Tracé de surface 3D
    Par dthieffenat dans le forum Scilab
    Réponses: 6
    Dernier message: 28/11/2013, 11h12
  2. Réponses: 0
    Dernier message: 24/08/2012, 12h40
  3. tracé de surfaces et projection
    Par chabacano dans le forum MATLAB
    Réponses: 3
    Dernier message: 07/08/2009, 09h44
  4. Tracés de surfaces 2D et champs de vecteurs avec GImg
    Par MPEG4 dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 06/02/2009, 15h10
  5. tracé de surface de bezier
    Par ant12oine dans le forum OpenGL
    Réponses: 3
    Dernier message: 04/05/2008, 18h28

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