Buenas noches César,

Si te refieres a tomar cada elemento de una matriz, digamos A, y elevarlos a
una potencia k, entonces escribir

A^k

en la consola del R es más que suficiente.

Sea k = 2. Si en vez de lo anterior lo que necesitas es B = A x A (porque
k=2), entonces podrías construir una función que lo realice. "A mano"
escribirías lo siguiente en la consola:

B <- A %*% A
B

El problema es que cuando k es por ejemplo 10, lo anterior es bastante
ineficiente.

A continuación te doy varios ejemplos de ambas situaciones. El uso de f1 o
f2 depende de tu aplicación. Si ninguna de las dos opciones es lo que
buscas, quizás un poco más de detalle podría ayudarnos a ayudarte. De qué
dimensión es la matriz A de tu aplicación y qué valores puede tomar k?

Una librería que podría ser de utilidad podría ser "Matrix", aunque no la he
revisado detalladamente.

# Creando una matriz A
set.seed(123)
A <- matrix(rnorm(4), ncol = 2)
A

# Elevando cada elemento de A a la potencia k
f1 <- function(x,k) x^k
f1(A, 2)     # A^2
f1(A, 5)     # A^5

# Producto matricial de A por si misma k veces
f2 <- function(x, k){
        r <- diag(dim(x)[2])
        for(i in 1:k) r <- r %*% x
        r
        }
f2(A,2) # A x A
f2(A,3) # A x A x A
f2(A,5) # A x A x A x A x A

Saludos,

                     Jorge Ivan Velez


2009/11/12 Cesar Escalante <>

> Cordial saludo.
>
> Les agradecería que me ayudaran con una función eficiente para calcular
> potencias de una matriz. ¿Cuál biblioteca la tiene?
>
> Gracias de antemano
>
>
> César Escalante C.
>
>        [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>

	[[alternative HTML version deleted]]

