### 6.45.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.27.32, 6.41.39 et 8.3.9).
`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]]`