### 6.46.3 Matrice aléatoire : ranm randMat randmatrix

ranm ou randMat ou randmatrix a comme argument un entier n ou deux entiers n,m et éventuellement un troisième argument soit un entier k, soit le nom quoté ou non quoté de la loi de distribution des nombres aléatoires de la matrice (voir aussi 6.28.32, 6.42.43 et 8.3.8).
ranm renvoie un vecteur d’ordre n ou une matrice n× m constituée d’entiers aléatoires uniformément distribués entre -99 et 99 (par défaut) ou entre 0 et k−1 ou une matrice n× m de nombres aléatoires distribués selon la loi mise entre-quote.
Attention la syntaxe sans quote marche avec les lois mais pas avec la commande rand... correspondante, donc par esxemple les commandes ranm(3,4,normald,0,1) ou ranm(3,4,’normald(0,1)’) ou ranm(3,4,’randnorm(0,1)’) sont valables mais ranm(3,4,randnorm,0,1) n’est pas valable.
On tape :

ranm(3)

On obtient :

[-54,78,-29]

On tape :

ranm(2,4)

On obtient :

[[27,-29,37,-66],[-11,76,65,-33]]

On tape :

ranm(2,4,3)

Ou on tape :

ranm(2,4,’rand(3)’)

On obtient :

[[0,1,1,0],[0,1,2,0]]

On tape :

ranm(2,4,’randnorm(0,1)’)

On obtient :

[[1.83785427742,0.793007112053,-0.978388964902,-1.88602023857], [-1.50900874199,-0.241173369698,0.311373795585,-0.532752431454]]

On tape :

ranm(2,4,2..4)

On obtient :

[[2.00549363438,3.03381264955,2.06539073586,2.04844321217], [3.88383254968,3.28664474655,3.76909781061,2.39113253355]]

On tape :

ranm(4,5,binomial,4,0.2)

Ou on tape :

ranm(4,5,’binomial(4,0.2)’)

On obtient :

[[1,1,1,0,2],[2,1,0,0,0],[1,2,2,1,1],[0,2,1,1,0]]

On effectue 4*5 fois 4 tirages avec une probabilité de succés de 0.2 et à chaque fois le nombre de succés a été de :
1 puis 1, puis 1, puis 0, puis 2, puis 2, puis 1 etc...
On tape :

ranm(4,5,multinomial,[1/2,1/3,1/6])

Ou on tape :

ranm(4,5,’multinomial([1/2,1/3,1/6])’)

On obtient par exemple:

[[4,1,0],[2,2,1],[3,2,0],[4,1,0]]

Dans ce cas on obitient une matrice ayant 4 lignes et 3 colonnes car sur chaque ligne on a le décompte du nombre de tirages par type, ici pour le premier tirage on a obtenu 4 objets ayant la probabilité 1/2 dêtre tirés, 1 objet de probabilité ayant la probabilité 1/3 dêtre tirés, 0 objet de probabilité ayant la probabilité 1/6 dêtre tirés, etc... C’est pratique car par exemple ranm(4,200,multinomial,[1/2,1/3,1/6]) va renvoyer une matrice 4*3 qui donne la répartition.
On tape :

ranm(3,5,multinomial,[1/2,1/3,1/6],["R","V","B"])

Ou on tape :

ranm(3,5,’multinomial([1/2,1/3,1/6],["R","V","B"])’)

On obtient par exemple:

[["B","B","V","V","R"],["B","R","R","R","R"],["R","R","R","R","V"]]

On tape :

ranm(3,4,poisson,1.3)

Ou on tape :

ranm(3,4,’poisson(1.3)’)

On obtient par exemple :

[[2,2,0,4],[0,0,1,1],[0,4,1,0]]

On tape :

ranm(2,3,exponential,1.2)

Ou on tape :

ranm(2,3,’exponential(1.2)’)

On obtient par exemple :

[[1.39292444066,0.214488721628,0.607596751757], [0.58087800165,0.662248573431,0.385110606536]]

On tape :

ranm(2,3,fisher,6,5)

Ou on tape :

ranm(2,3,’fisher(6,5)’)

On obtient par exemple :

[[0.580815888368,0.43932104968,3.00433399184],[0.546184604298,2.07846757518,0.385033837577]]