Exemples d'utilisation de la fonction surf sous Matlab

Introduction

La fonction surf de MATLAB est un outil puissant pour visualiser des données en trois dimensions. Elle permet de créer des surfaces à partir de matrices de données, offrant ainsi une représentation graphique de fonctions à deux variables. Cet article explore en détail l'utilisation de surf, en fournissant des exemples concrets et des explications claires pour faciliter sa compréhension et son application.

Tracer le graphe d'une fonction

Utilisation de fplot pour les fonctions d'une variable

Pour tracer le graphe d'une fonction sur un intervalle donné, on peut utiliser la commande fplot. Cette commande est particulièrement utile lorsque la fonction est définie de manière analytique.

Par exemple, pour tracer une fonction entre -5 et 5 sur l'axe des ordonnées, la syntaxe générale est :

fplot(@(x) votre_fonction(x), [-5 5])

Représentation de données discrètes avec plot

La fonction plot est utilisée pour représenter des données discrètes. Si vous avez des valeurs x et y (vecteurs x et y), la commande plot(x, y) affichera ces valeurs sous forme de points reliés par des lignes. Les arguments supplémentaires permettent de spécifier le type de trait, la couleur, et les marqueurs utilisés pour chaque point.

x = [1, 2, 3, 4, 5];y = [2, 4, 1, 3, 5];plot(x, y, '-o') % Relie les points par une ligne et ajoute des cercles à chaque point

Personnalisation de l'affichage graphique

Ajout de titres et de labels

Il est essentiel de bien étiqueter les graphiques pour qu'ils soient compréhensibles. Voici comment ajouter des titres et des labels aux axes :

Lire aussi: Le cadre juridique du voile en France

  • title('Titre de la figure') : Donne un titre à la figure.
  • xlabel('Légende de l'axe des abscisses') : Ajoute une légende sous l'axe des abscisses.
  • ylabel('Légende de l'axe des ordonnées') : Ajoute une légende à l'axe des ordonnées.

Insertion de texte

La commande text permet d'insérer du texte directement sur la figure à l'aide de la souris.

text(x, y, 'Texte à insérer')

x et y sont les coordonnées où le texte doit être placé.

Pour insérer une variable au milieu d'un texte, on utilise la commande num2str. Par exemple :

valeur = 5;text(0.5, 0.5, ['La valeur est : ' num2str(valeur)])

Gestion des fenêtres graphiques

  • figure : Crée une nouvelle fenêtre graphique ou active une fenêtre existante.
  • close : Ferme la fenêtre graphique active.
  • close all : Ferme toutes les fenêtres graphiques.

Superposition de graphiques

Pour afficher plusieurs graphiques sur une même figure, on utilise la commande hold on. Une fois que tous les graphiques sont tracés, on utilise hold off pour désactiver la superposition.

plot(x1, y1)hold onplot(x2, y2)hold off

Création de sous-fenêtres

La commande subplot permet de diviser la fenêtre graphique en plusieurs sous-fenêtres. La syntaxe est subplot(m, n, p), où m est le nombre de lignes, n le nombre de colonnes, et p l'indice de la sous-fenêtre active.

Lire aussi: Comment adapter sa voile au vent ?

subplot(2, 1, 1) % Première sous-fenêtre en hautplot(x1, y1)subplot(2, 1, 2) % Deuxième sous-fenêtre en basplot(x2, y2)

La fonction surf en détail

Préparation des données

Pour utiliser surf, il faut préparer trois matrices : X, Y, et Z. X et Y représentent les coordonnées des points dans le plan, et Z représente les valeurs de la fonction à ces points. La seule contrainte est que le nombre de points soit le produit de deux entiers (m \times n). Si l'on a (m \times n) points, cela signifie que l'on a (m \times n) valeurs de (x), (m \times n) valeurs de (y) et (m \times n) valeurs de (z).

Considérons l'exemple de la surface définie par :

[z = y^2 - x^2]

dont on veut tracer la surface représentative sur ([-1, 1] \times [-2, 2]).

Création des matrices X et Y avec meshgrid

La fonction meshgrid est utilisée pour créer les matrices X et Y à partir de vecteurs x et y.

Lire aussi: Laïcité à l'hôpital : le cas du voile

x = linspace(-1, 1, 10); % Crée un vecteur de 10 points entre -1 et 1y = linspace(-2, 2, 15); % Crée un vecteur de 15 points entre -2 et 2[X, Y] = meshgrid(x, y); % Crée les matrices X et Y

Dans cet exemple, x est un vecteur de 10 valeurs équidistantes entre -1 et 1, et y est un vecteur de 15 valeurs équidistantes entre -2 et 2. En combinant toutes ces valeurs de (x) et (y), on obtient (m \times n) points dans le plan ((x, y)).

Calcul de la matrice Z

Une fois les matrices X et Y créées, il faut calculer la matrice Z en appliquant la fonction à chaque point (x, y).

Z = Y.^2 - X.^2; % Calcule les valeurs de z

Utilisation de la fonction surf

Maintenant que les matrices X, Y, et Z sont prêtes, on peut utiliser la fonction surf pour afficher la surface.

surf(X, Y, Z)

Cela affichera la surface définie par l'équation (z = y^2 - x^2) sur le domaine ([-1, 1] \times [-2, 2]).

Personnalisation de la surface

La fonction surf offre plusieurs options de personnalisation. On peut modifier la palette de couleurs, ajouter une boîte autour de la surface, et ajuster l'angle de vision.

  • colormap : Modifie la palette de couleurs. Pour voir toutes les palettes disponibles, tapez help colormap.
  • box on : Ajoute une boîte autour de la surface.

Contrôle de la vue

La commande view permet de contrôler l'angle de vision. On peut spécifier l'azimut et l'élévation.

  • view(az, el) : Définit l'azimut az et l'élévation el en degrés. Les valeurs par défaut sont -37.5° pour l'azimut et 30° pour l'élévation.
  • axis vis3d : Permet de tourner la figure 3D avec la souris.
  • axis equal : Ajuste les axes pour que les unités soient égales dans toutes les directions.
  • axis tight : Ajuste les limites des axes pour qu'elles correspondent aux données.

Exemples supplémentaires

  1. Surface définie par une fonction utilisateur :

    Si la surface est définie par une fonction utilisateur, il suffit de calculer les valeurs de Z en utilisant cette fonction.

    function z = ma_fonction(x, y) z = x.^2 + y.^2;end[X, Y] = meshgrid(linspace(-5, 5, 50), linspace(-5, 5, 50));Z = ma_fonction(X, Y);surf(X, Y, Z)
  2. Modification des limites des axes :

    Pour modifier les limites des axes, on utilise la commande axis.

    axis([xmin xmax ymin ymax zmin zmax])

    Par exemple, pour définir les limites de la figure précédente, on utilise :

    axis([-1 1 -2 2 -1 3])

    axis auto restaure les limites automatiques.axis equal impose la même échelle sur tous les axes.axis tight ajuste les limites aux données.axis vis3d permet de tourner la figure en 3D avec la souris.

Sauvegarde des figures

Il est possible de sauvegarder la fenêtre graphique dans un fichier sous divers formats d'images. La commande print est utilisée pour cela.

print('nom_du_fichier', '-dpng') % Sauvegarde au format PNG

Les formats disponibles sont nombreux, notamment PNG, JPEG, TIFF, et EPS.

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *