A ^ k pour la multiplication matricielle dans R?

Supposons que Un est certains matrice carrée. Comment puis-je facilement exponentiate cette matrice R?

J'ai essayé de deux façons déjà: Essai 1 avec une boucle for hack et 2 Essai un peu plus élégante, mais elle est encore loin de Unk la simplicité.

Essai 1

set.seed(10)
t(matrix(rnorm(16),ncol=4,nrow=4)) -> a 
for(i in 1:2){a <- a %*% a}

Essai 2

a <- t(matrix(c(0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0),nrow=4))
i <- diag(4) 
(function(n) {if (n<=1) a else (i+a) %*% Recall(n-1)})(10)

source d'informationauteur hhh | 2012-02-27