Tracer en 3D, 2D etc...??
Bonjour à tous,
Je me suis toujours servi de MAPLE pour faire des graphiques, mais il s'avère que cette année j'ai un mémoire à faire, et je dois inclure des graphiques avec des jolies légendes, etc... Et mon prof m'a conseillé d'utiliser MATLAB.
Or j'ai beau chercher des introduction pour apprendre à m'en servir je pige pas grand chose.
Par exemple je voudrais tracer cette fonction en 3D:
f:=(x,y)->exp(0.5*Re((x+I*y+1)*log(x+I*y+1)-(x+I*y-1)*log(x+I*y-1))-1):
(ceci est le code Maple)
Je sais que la partie réelle en MATLAB c'est real, mais c'est tout.
Pouvez-vous m'éclairer s'il vous plait ?
Merci d'avance à tous.
Je me suis toujours servi de MAPLE pour faire des graphiques, mais il s'avère que cette année j'ai un mémoire à faire, et je dois inclure des graphiques avec des jolies légendes, etc... Et mon prof m'a conseillé d'utiliser MATLAB.
Or j'ai beau chercher des introduction pour apprendre à m'en servir je pige pas grand chose.
Par exemple je voudrais tracer cette fonction en 3D:
f:=(x,y)->exp(0.5*Re((x+I*y+1)*log(x+I*y+1)-(x+I*y-1)*log(x+I*y-1))-1):
(ceci est le code Maple)
Je sais que la partie réelle en MATLAB c'est real, mais c'est tout.
Pouvez-vous m'éclairer s'il vous plait ?
Merci d'avance à tous.
Cette discussion a été fermée.
Réponses
sinon, avec matlab, l'idee est qu'il ne peut pas tracer une courbe juste avec la formule. en fait, il faut faire explicitement ce que maple fait implicitement, a savoir generer un ensemble de points pour la courbe... cela te permet d'avoir un controle assez fin sur le "lissage" de la courbe. cela se fait en utilisant la commande linspace.. par exemple, si tu veux tracer x^2 sur -2,2, tu commences par :
x=linspace(-2,2,100);
qui genere un vecteur de 100 points equirepartis entre -2 et 2. plus tu auras de points, plus la courbe sera lisse.
puis tu fais
y=x.^2;
note le point (.) qui indique qu'il faut faire l'operation terme a terme ( et non pas un carre de matrice, ce qui ici n'aurait aucun sens, mais il faut le preciser.. )
puis : plot(x,y)
en 3d c'est presque pareil, sauf qu'il faut generer des grilles et non pas de simples vecteurs. donc si tu veux tracer par ex. z=x*y sur -2,2 -3,3, tu fais
x=linspace(-2,2,100);
y=linspace(-3,3,100);
puis il faut generer des grilles qui vont bien :
[X,Y]=meshgrid(x,y);
X et Y sont des matrices constitués comme ci :
X est de la forme
-2 -1 ... 2
-2 -1 ... 2
-2 -1 ... 2
..
et Y de la forme
-3 -3 -3.... -3
-2 -2 -2...
...etc..
ducoup cela te permet d'avoir tous les couples (x,y). ( c'est pas clair... essaie un peu, tu comprendras :-) )
puis tu tapes :
Z=X.*Y;
puis : mesh(X,Y,Z);
voila, ca a l'air long, mais ca l'est pas tant que ca...
jai le meme problème, kan jutiliz meshgrid, on me fait comprendre ke les matrices générés sont de trop grande taille comment faire dans ce cas?
[Qu'est-ce que ce charabia ! Je ferme cette vieille discussion.
Si tu veux poser une question, tu ouvres une nouvelle discussion en écrivant en français. AD]