Ce support pédagogique est destiné aux étudiants de la Faculté des Sciences, particulièrement au sein du Département de Mathématiques. Il propose un ensemble d'exercices pratiques conçus pour approfondir la maîtrise du logiciel MATLAB dans un contexte scientifique et algorithmique.
Le document aborde les thématiques essentielles suivantes :
- Calculs arithmétiques et manipulations avancées des nombres complexes.
- Gestion des matrices, des vecteurs et traitement des structures de données.
- Programmation de scripts, utilisation des boucles et création de fonctions.
- Visualisation de données via des tracés graphiques en deux et trois dimensions.
Calculs sur les nombres complexes
Considérons les nombres complexes $z_1 = 1 + 2i$ et $z_2 = 3 - 5i$. Voici les opérations fondamentales réalisées sous MATLAB :
- Addition : $z_1 + z_2 = 4.0000 - 3.0000i$
- Soustraction : $z_1 - z_2 = -2.0000 + 7.0000i$
- Division : $z_1 / z_2 = -0.2059 + 0.3235i$
- Multiplication : $z_1 \times z_2 = 13.0000 + 1.0000i$
- Puissance : $z_2^2 = -16.0000 - 30.0000i$
Manipulation de matrices complexes
Pour une matrice complexe $z$ définie par z = [1+i, 2-3i; 4+2i, 5-4i], MATLAB permet d'extraire les informations suivantes :
- Partie réelle :
real(z)renvoie les composantes réelles. - Partie imaginaire :
imag(z)renvoie les coefficients de la partie imaginaire. - Conjugué :
conj(z)inverse le signe de la partie imaginaire. - Module :
abs(z)calcule la distance à l'origine pour chaque élément.
Manipulation des matrices et vecteurs sous MATLAB
Soit la matrice $A$ définie comme suit :
A = [6, 43, 2, 11, 87; 12, 6, 34, 0, 5; 34, 18, 7, 41, 9]
Les opérations d'extraction (slicing) permettent d'isoler des sous-ensembles de données :
va = A(2,:): Extrait la deuxième ligne complète.vb = A(:,4): Extrait la quatrième colonne.vc = A(1:2,:): Extrait les deux premières lignes.vd = A(:,[1,5]): Extrait la première et la cinquième colonne.
Visualisation et graphisme
Tracé de courbes en 2D
Pour tracer une fonction mathématique telle que $y = \cos(2x) + 0.5 \sin(x/2)$, on utilise le code suivant :
x = -pi:pi/100:pi;
y = cos(2*x) + 0.5*sin(x/2);
plot(x,y)
grid on
title('Tracé de la courbe y')
xlabel('variable x')
ylabel('variable y')
Représentation de surfaces en 3D
La fonction meshgrid est indispensable pour définir un domaine de calcul sur un plan $(X, Y)$ avant de calculer la hauteur $Z$.
[X, Y] = meshgrid(-pi:pi/100:pi); Z = sin(X.^2 + Y.^2) ./ (X.^2 + Y.^2); mesh(Z)
Programmation : Boucles et Fonctions
Exemple de boucle For
Ce script remplace chaque entier pair d'un tableau par son carré :
tab = 0:2:42;
for i = 1:length(tab)
tab(i) = tab(i)^2;
end
Fonction Factorielle
Une fonction robuste vérifie d'abord que l'argument est un entier positif avant d'effectuer le calcul :
function fact = factorielle(n)
if ~((fix(n)==n) && (n>=0))
error('Le nombre doit être un entier positif');
end
fact = prod(1:n);
end
Saturation d'un signal
Cette fonction permet de limiter l'amplitude d'un signal entre deux bornes définies :
function ul = sature(u, u_min, u_max)
ul = (u >= u_max) .* u_max + (u <= u_min) .* u_min + ((u < u_max) & (u > u_min)) .* u;
end
FAQ
Comment calculer le module d'un nombre complexe sous MATLAB ?
Il suffit d'utiliser la fonction abs(z), où $z$ est votre nombre ou votre matrice complexe.
Quelle est l'utilité de la fonction meshgrid ?
Elle permet de transformer deux vecteurs de coordonnées en matrices de coordonnées, ce qui est nécessaire pour évaluer des fonctions de deux variables et tracer des surfaces en 3D.
Comment superposer deux courbes sur le même graphique ?
Utilisez la commande hold on après le premier tracé pour que MATLAB conserve la fenêtre active et y ajoute les tracés suivants.