Matrices aléatoires sous Matlab
Au cours de cette leçon, je vais vous montrer comment générer une matrice contenant des valeurs aléatoires dans Matlab, en utilisant la fonction rand().
rand(lignes, colonnes)
La fonction rand() se base sur deux paramètres :
- Le nombre de lignes dans la matrice
- Le nombre de colonnes dans la matrice
Cette fonction crée une matrice aléatoire remplie de valeurs fluctuant entre 0 et 1.
Remarque: Matlab produit par défaut des valeurs aléatoires suivant une distribution uniforme sur l'ensemble des valeurs possibles. Toutefois, il est possible d'opter pour d'autres distributions probabilistes pour la génération de ces nombres.
Illustrons ceci par un exemple concret.
Saisissez rand(2,3) pour créer une matrice rectangulaire 2x3 remplie de valeurs aléatoires.
>> rand(2,3)
Matlab génère ainsi une matrice aléatoire 2x3, peuplée de valeurs aléatoires comprises entre 0 et 1.
De manière implicite, les nombres aléatoires sont distribués de façon uniforme dans l'intervalle [0,1], ce qui signifie qu'ils ont tous une probabilité égale d'apparaître.
ans =
0.495435 0.651593 0.093860
0.449491 0.788723 0.028347
Pour concevoir une matrice aléatoire avec des chiffres compris entre 0 et 10, multipliez simplement la fonction rand() par 10.
Le résultat ? Une matrice aléatoire constituée de nombres réels aléatoires allant de 0 à 10.
>> rand(2,3)*10
ans =
1.35346 1.04275 0.73193
5.51170 0.39138 8.66168
Pour obtenir une matrice aléatoire de nombres entiers entre 0 et 10, il suffit d'utiliser la fonction de arrondi, round().
Essayez par exemple round(rand(2,3)*10) pour générer une matrice 2x3 de nombres entiers entre 0 et 10.
>> round(rand(2,3)*10)
ans =
3 9 10
3 6 9
Vous pouvez également créer une matrice de valeurs entières aléatoires en faisant appel à la fonction randi().
randi(valeur maximale, lignes, colonnes)
La fonction randi() est conçue pour générer uniquement des valeurs entières aléatoires et se configure via trois paramètres :
- La valeur maximale pouvant être générée aléatoirement
- Le nombre de lignes dans la matrice
- Le nombre de colonnes dans la matrice
Pour un exemple, tapez randi(10,2,3).
>> randi(10,2,3)
ans =
1 9 3
2 1 10
Dans ce cas également, Matlab nous fournit une matrice aléatoire constituée de nombres entiers.
Comment Matlab produit-il des valeurs aléatoires ? En vérité, ces valeurs ne sont pas strict ement aléatoires. Elles sont dites "pseudo-aléatoires", car elles sont générées par un algorithme qui utilise l'heure actuelle de l'ordinateur comme paramètre. Il est également possible de reproduire la même séquence de nombres aléatoires à chaque fois, si on le souhaite. Nous y reviendrons plus en détail ultérieurement.