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?
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 ) .
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?
Respuestas:
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:UNmetro O ( logm ) norte× N UN si 2 n × 2 n C
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.C n × n C2 A ⋅ B
fuente