¿Cómo calcular las potencias de las matrices cuadradas?


16

Supongamos que se nos da una matriz , y que m N 0 . ¿Qué tan rápido podemos calcular la potencia A m de esa matriz?ARN×NmN0Am

La siguiente mejor opción en comparación con la computación de los productos es utilizar una exponenciación rápida, que requiere productos de matriz O ( log m ) .mO(logm)

Para matrices diagonalizables, se puede usar la descomposición del valor propio. Su generalización natural, la descomposición de Jordan, es inestable bajo la perturbación y, por lo tanto, no cuenta (afaik).

¿Se puede acelerar la exponenciación matricial en el caso general?

La exposición rápida sugiere que una variación de esta pregunta también es útil:

¿ puede calcular el cuadrado de una matriz general A más rápido que mediante algoritmos conocidos de multiplicación de matrices?A


Si te importa la estabilidad bajo perturbaciones, la exponenciación rápida tampoco parece segura.
MCH

Bueno, supongo que no es menos seguro que la multiplicación repetida, que es tan segura como la exponencia escalar, ¿no?
shuhalo

Respuestas:


20

Como observa, calcular se puede hacer en O ( log m ) multiplicado por el número de operaciones para la multiplicación de matrices en N × N matrices. La respuesta a su segunda pregunta es no, al menos para la complejidad asintótica: la cuadratura de la matriz y la multiplicación de la matriz tienen una complejidad aritmética / tiempo equivalente (hasta factores constantes). Reducir la cuadratura a la multiplicación de matrices es obvio. Para reducir la multiplicación para elevar al cuadrado, supongamos que queremos calcular el producto de A y B . Forme la matriz 2 n × 2 n C con la estructura de bloques:UNmetroO(Iniciar sesiónmetro)norte×norteUNsi2norte×2norteC

[0 0  UN]

[si  0 0]

Es decir, tiene una matriz n × n todos ceros en su cuadrante superior izquierdo y cuadrante inferior derecho. Tenga en cuenta que C 2 contiene A B en su cuadrante superior izquierdo.Cnorte×norteC2UNsi


Recientemente hice una pregunta en cs.SE sobre la complejidad de calcular en el caso especial donde m = O ( n ) . Es fácil dar un límite superior O ( M ( n ) log ( n ) ) , pero el mejor límite inferior que puedo dar es Ω ( M ( n ) ) . ¿Tienes algún comentario sobre este problema? Creo que muchos problemas interesantes se reducen a este caso especial. UNmetroO(norte)O(METRO(norte)Iniciar sesión(norte))Ω(METRO(norte))
Shitikanth
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.