Ce document présente le troisième travail pratique de MATLAB, conçu pour les étudiants du département de mathématiques et informatique de l'Université d’Alger 1. Ce support pédagogique vise à approfondir la maîtrise des outils de visualisation et de calcul numérique essentiels au cursus universitaire.
Il couvre les notions suivantes :
- Définition de vecteurs et manipulation de fonctions personnalisées.
- Création de graphiques 2D avec gestion d'axes et de légendes.
- Représentation de graphes à l'aide de matrices d'adjacence.
- Visualisation de surfaces et de courbes en trois dimensions (3D).
Introduction aux Graphiques 2D et 3D sous MATLAB
Ce TP porte sur l'utilisation des fonctionnalités graphiques de MATLAB pour la visualisation de données mathématiques, allant des fonctions linéaires simples aux surfaces complexes en trois dimensions.
Exercice 1 : Tracé de fonctions de base et mise en forme
Dans cet exercice, nous apprenons à définir des vecteurs et des fonctions pour les afficher graphiquement. L'utilisation de la commande inline permet de définir une fonction mathématique directement dans la console.
Voici les étapes pour tracer une fonction sinus et une droite simultanément :
- Définition des vecteurs :
x1 = -pi : 0.1 : pi; y1 = sin(x1); - Définition de la fonction f(x) = 2x - 1 :
f = inline('2*x-1'); - Tracé avec personnalisation (couleurs rouge 'r' et bleu 'b') :
plot(x1, y1, 'r', x2, f(x2), 'b');
Pour rendre le graphique lisible, il est essentiel d'ajouter des légendes et des titres :
title('Une Droite et un Sinus'); legend('Sinus', 'Droite'); grid; xlabel('Valeurs de x'); ylabel('Valeurs de y');
L'instruction axis([-10, +10, -8, +8]) permet de définir manuellement les limites des axes pour mieux cadrer la zone d'intérêt.
Exercice 2 : Gestion des fenêtres et des sous-graphiques
MATLAB permet de gérer plusieurs fenêtres graphiques ou de diviser une seule fenêtre en plusieurs panneaux à l'aide de la commande subplot.
L'utilisation de subplot(2, 1, 1) divise la fenêtre en 2 lignes et 1 colonne, puis sélectionne le premier panneau. Cela est particulièrement utile pour comparer visuellement deux signaux différents sans qu'ils ne se chevauchent.
Exercice 3 : Annotation de courbes avec des étiquettes numériques
Il est parfois nécessaire d'afficher les valeurs numériques directement sur les points d'une courbe. On utilise pour cela la fonction num2str qui convertit les nombres en texte, puis la fonction text(x, y, L) pour placer ces étiquettes aux coordonnées correspondantes.
Exemple de calcul pour une fonction cubique : y = x.^3;. L'opérateur .^ est utilisé pour effectuer l'élévation à la puissance élément par élément dans le vecteur.
Exercice 4 : Visualisation de fonctions oscillatoires complexes
L'étude porte ici sur une fonction composée de deux sinus de fréquences différentes : f(x) = sin(π/2 * x) + sin(2/5 * π * x). En traçant cette fonction sur l'intervalle [0, 40], on peut observer les phénomènes d'interférences et de battements entre les deux ondes.
Exercice 5 : Représentation de graphes et matrices d'adjacence
MATLAB permet de représenter des structures de données sous forme de graphes (nœuds et arêtes). On définit une matrice d'adjacence MA et une matrice de coordonnées CO pour chaque nœud.
La commande gplot(MA, CO, 'r-o') dessine le graphe en reliant les points selon la matrice de connectivité. On peut ensuite numéroter les nœuds de D1 à D5 en utilisant une boucle for et la fonction text.
Exercice 6 : Visualisation en trois dimensions (3D)
La dimension supplémentaire apporte une perspective cruciale pour l'analyse de données complexes.
1. Courbes paramétriques 3D : À l'aide de plot3(x, y, z), on peut dessiner une hélice en définissant x et y comme des fonctions trigonométriques du temps t, et z comme une fonction linéaire de t.
2. Surfaces 3D : Pour représenter une fonction à deux variables z = f(x, y), on utilise meshgrid pour créer une grille de coordonnées, puis mesh pour afficher la surface "en grillage".
Astuce : L'ajout de la constante eps (la plus petite valeur positive machine) lors du calcul de R = sqrt(X.^2 + Y.^2) + eps permet d'éviter la division par zéro lors du calcul du sinus cardinal.
FAQ - Foire Aux Questions
Comment superposer deux tracés sur le même graphique ?
Il faut utiliser la commande hold on après le premier tracé. Cela empêche MATLAB d'effacer le graphique précédent lors de l'exécution de la commande suivante.
Quelle est la différence entre plot et subplot ?
plot crée un tracé dans la fenêtre active, tandis que subplot divise la fenêtre en une grille de plusieurs graphiques indépendants.
Pourquoi utiliser l'opérateur point (comme dans .^) ?
L'opérateur point indique à MATLAB d'effectuer l'opération élément par élément sur les vecteurs ou les matrices, plutôt que d'effectuer une opération d'algèbre linéaire globale.