Tracé de courbes de contour

Pour tracer les courbes \(z = \textrm{C}^\textrm{te}\) d'une surface définie par \(z = f(x, y)\), on peut utiliser la fonction contour. Elle s'utilise comme les instructions précédentes, mais fournit un graphe 2D dans le plan \((x, y)\). Plusieurs paramètres optionnels peuvent être spécifiés, notamment le nombre de courbes de contours à afficher.

Exemple

En reprenant l'exemple précédemment tracé en surfaces, on peut par exemple tracer 10 lignes de niveau :

x = -1:0.05:1;
y = -2:0.05:2;
[X,Y] = meshgrid(x,y);
Z = Y .^2 - X.^2;
contour(X,Y,Z, 10);

Le résultat est présenté sur la figure suivante :

Tracé des courbes de contour avec 10 niveaux
Tracé des courbes de contour avec 10 niveaux

Notons que l'on peut préciser à MATLAB quelles lignes de niveaux il doit afficher.

Par exemple pour dessiner les courbes correspondant à \(z = -0.5\), \(0\), \(0.5\), \(1\), \(2\) et \(3\), on peut écrire :

contour(X,Y,Z, [-0.5 0 0.5 1 2 3 ]);

Dans ce cas, il est également intéressant d'ajouter sur le tracé les valeurs de \(z\) le long des différentes lignes de contour. Pour cela il faut affecter à une variable la valeur de sortie de la commande contour et utiliser la fonction clabel :

Exemple

ch = contour(X,Y,Z, [-0.5 0 0.5 1 2 3 ]);
clabel(ch);

Le résultat est visible sur cette figure :

Labels sur les lignes de contour avec la commande clabel
Labels sur les lignes de contour avec la commande clabel