Supongamos A es una matriz cuadrada. ¿Cómo puedo exponer fácilmente esta matriz en R?A^k para la multiplicación de matrices en R?
probé dos maneras ya: Ensayo 1 con un corte para-loop y el Ensayo 2 un poco más elegante, pero es todavía muy lejos de Unk simplicidad.
Ensayo 1
set.seed(10)
t(matrix(rnorm(16),ncol=4,nrow=4)) -> a
for(i in 1:2){a <- a %*% a}
Trial 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)
Creo que '% ^%' tendrá una ventaja mucho mayor para los exponentes más grandes; Creo que usa un método de "duplicación" (es decir, obtener potencias de 2 multiplicando resultados juntos, y luego terminar con algunas multiplicaciones adicionales) –
En lugar de 'list (m1, m1, m1)', usaría 'replicate (3, m1, simplificar = FALSO) 'para hacer que el enfoque 'Reducir' sea totalmente extensible – MichaelChirico