Bonjour,
Je veux faire le produit de ma matrice avec elle-même dans R, mais ça ne fonctionne pas. (Je l’ai calculée à la main pour pouvoir comparer, mais ça ne me donne pas du tout la bonne chose.)
Voici la matrice que je souhaite multiplier:
0.2 0.7 0.1
0.4 0.45 0.05
0.1 0.3 0.6
Voici ce que j’ai fait dans R:
a <- matrix(c(0.2, 0.7, 0.1, 0.4, 0.45, 0.05, 0.1, 0.3, 0.6), nrow = 3))
a*a
Comme je dois la multiplier 4 fois par elle-même, je voulais le faire dans R pour économiser du temps.
Merci!

Bonjour,
Premièrement, la façon dont R construit la matrice est un peu contre-intuitive.
En effet, R construit la matrice colonne par colonne au lieu de rangée par rangée (ligne par ligne) comme on pourrait le penser.
Voici donc comment il aurait fallu construire ta matrice:
a <- matrix(c(0.2, 0.4, 0.1, 0.7, 0.45, 0.3, 0.1, 0.05, 0.6), nrow = 3)
Sinon, j'aime bien ajouter le paramètre "byrow = TRUE", qui demande à R de construire la matrice rangée par rangée.
(Par défaut, ce paramètre est "FALSE". C'est pour cette raison que R construit la matrice colonne par colonne à moins de spécification contraire.)
a <- matrix(c(0.2, 0.7, 0.1, 0.4, 0.45, 0.05, 0.1, 0.3, 0.6), nrow = 3, byrow = TRUE)
Deuxièmement, "*" n'est pas le bon opérateur pour faire le produit matriciel.
En effet, il faut plutôt utiliser l'opérateur "%*%".
En résumer:
- R construit la matrice colonne par colonne.
-> Fait attention ou utilise le paramètre "byrow = TRUE" pour les importer rangée par rangée.
- L'opérateur du produit matriciel est %*%.
(a <- matrix(c(0.2, 0.7, 0.1, 0.4, 0.45, 0.05, 0.1, 0.3, 0.6), nrow = 3, byrow = TRUE)) a %*% a a %*% a %*% a %*% aBonne journée!
- XXL MathTutor