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 :

Comment tracer une fonction complexe de 2 variables ?


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Comment tracer une fonction complexe de 2 variables ?
    Bonsoir !

    Alors cette fois j'ai une fonction Y(x,t) = A.exp(i.k.x).exp(-i.w.t), où A,k,w sont des constantes, et i l'unité imaginaire (-1 = i²).

    J'aimerais la représenter en fonction de t et x. Certes Y est complexe, mais on peut juste choisir sa partie réelle ou imaginaire, voire tracer les 2 sur un même graphe. Non, le problème est que j'ai essayé "mesh" et tout le toutim, et on me dit un truc du style "Y c'est un vecteur et pas une matrice"...

    Sauriez-vous faire ça en Matlab ?

  2. #2
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [x,t]=meshgrid(plage_x,plage_t);
    y=A*exp(i*k*x).*exp(-i*w*t);
    mesh(x,t,real(y))
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci ! Mais est-il possible de représenter sur un même graphe partie réelle et imaginaire de 2 couleurs differentes ?

  4. #4
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Oui, voir cette exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >> [x,t]=meshgrid(1:10,1:10);
    [x,t]=meshgrid(-10:10,-10:10);
    y1=x'*x;
    y2=6*y1;
    c1=zeros(size(x));
    c2=100*ones(size(x));
    surf(x,t,y1,c1)
    hold on
    surf(x,t,y2,c2)
    voir help surf et mesh
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    OK merci !
    Sauf que j'arrive à avoir que du bleu foncé avec du rouge bordeaux foncé, donc au niveau d'une photocopie N&B ça va pas l'faire je pense...

  6. #6
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Donc, une modification (bleu et vert):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    c1=zeros(size(x));
    c2=ones(size(x));
    map=colormap;
    map(end,:)=map(32,:); % vert
    colormap(map);
    surf(x,t,y1,c1)
    hold on
    surf(x,t,y2,c2)
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  7. #7
    Membre éprouvé
    Avatar de rostomus
    Homme Profil pro
    Doctorant électronique et traitement du signal
    Inscrit en
    Décembre 2006
    Messages
    791
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant électronique et traitement du signal

    Informations forums :
    Inscription : Décembre 2006
    Messages : 791
    Points : 1 205
    Points
    1 205
    Par défaut
    Tout simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    surf(x,t,y1,'FaceColor','y')
    hold on
    surf(x,t,y2,'FaceColor','b')
    MATLAB 7.4 (R2007a) WIN XP SP2
    -------------------------------------

  8. #8
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Excellentissime, merci encore une fois ! Ouais je cherchais justement une "simplification" du genre, j'avais essayé avec 'Color', mais rien...

    Encore une affaire réglée par rostomus-Maître-ès-Matlab !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment tracer une fonction constante par morceau
    Par ghitanany dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/03/2012, 13h17
  2. Tracer une fonction avec conditions sur variable
    Par Leonpolou dans le forum MATLAB
    Réponses: 16
    Dernier message: 23/10/2009, 17h53
  3. Comment appeler une fonction variable ?
    Par franckcl dans le forum C++
    Réponses: 10
    Dernier message: 26/06/2007, 11h00
  4. Réponses: 2
    Dernier message: 11/05/2007, 18h26
  5. comment tracer une fonction ?
    Par informatik dans le forum GTK+ avec C & C++
    Réponses: 9
    Dernier message: 15/06/2006, 09h55

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