El almacenamiento necesario para el y(j)k es menor que una matriz "completa" en proporción como s≪n . Es decir, s vectores de este tipo son necesarios para cada paso j y el almacenamiento de una etapa puede reutilizarse en la siguiente.
La Pregunta afirma s para ser el suelo de q el grado del polinomio, pero esto es erróneo. Según la discusión del artículo que precede al Algoritmo I, s puede ser cualquier número entero estrictamente comprendido entre 1 y q . Aunque esto no garantiza s≪n lo permite. Véase la discusión de la aplicación del Algoritmo II al polinomio de Taylor para eA donde s=4 y q=16 fueron elegidos. [Obsérvese también la discusión sobre la minimización del "recuento de trabajo" en el Algoritmo II eligiendo s en torno a √q/2 .]
Eso deja todavía el misterioso p(j)k . Mi conjetura es que es un error tipográfico, que f(j)k se calcula ajustando Yf(j)k−1 después de inicializar f(j)0 pero necesito hacer algunos garabatos para confirmar que funciona.
Añadido: Mi suposición anterior es correcta, que debemos leer f(j)k−1 en lugar de p(j)k−1 en un punto del Algoritmo II donde aparece este último.
El algoritmo puede entenderse como una combinación de dos ideas. Una es que el polinomio matricial p(A) se evaluará columna a columna, es decir, aplicándola sucesivamente a los vectores unitarios ej , j=1,..,n .
La otra idea es sencilla, aunque un poco engorrosa de explicar. Recordemos que 1<s<q donde q es el grado de p . Sea el polinomio:
p(x)=q∑i=0bixi
se agruparán según la mayor potencia de xs que divide cada término y reescribir p(x) en una expansión que implique potencias de xs y "coeficientes" que son polinomios de grado como máximo s−1 . Tomando r=⌊q/s⌋ y asumiendo los coeficientes indicados bm donde m>q son cero:
p(x)=r∑k=0xskβk(x)
donde βk(x)=∑s−1i=0bsk+ixi son los "coeficientes" del polinomio, como en el caso anterior.
Supongamos que Y=As ya se ha calculado, por ejemplo, mediante exponenciación binaria u otro esquema.
A continuación, el bucle exterior del algoritmo II aplica iterativamente p(A) a n vectores unitarios v=ej como se ha explicado anteriormente. Para simplificar, nos limitaremos a describir la computación p(A)v para un vector arbitrario v de dimensión compatible, una columna de longitud n donde A est n×n . En efecto, omitimos el superíndice (j) del resto del debate.
En primer lugar, un bucle para inicializar y0=v y yi=Ayi−1 para i=1,..,s−1 .
El segundo es un bucle que esencialmente aplica el método de Horner para obtener p(A)v utilizando la expansión en potencias de As y "coeficientes" βk(A)v . Nótese que estos últimos son vectores columna, y para k=0,..,r evaluamos βk(A)v tomando la combinación lineal adecuada de los valores previamente inicializados yi . Es decir:
f0=βr(A)v fk=Yfk−1+βr−k(A)v
para k=1,..,r . Esto demuestra que el término p(j)k−1 es un error tipográfico de f(j)k−1 en el Algoritmo II.
0 votos
Para los que no pueden acceder a IEEE, aquí es un espejo en la página principal de Van Loan.
0 votos
Ya que en el documento se dice p(A)=[f(1)r|⋯|f(n)r] Supongo p(j)k−1 debe ser f(j)k−1 . De lo contrario, ¿por qué molestarse en calcular f(j)k para k≠r ?
0 votos
Y probablemente tengas razón en la cuarta matriz (pero tampoco he leído el artículo con atención). Supongo que el autor es muy bueno "vendiendo humo".
0 votos
@Giacomo: No quiero juzgar a Van Loan con demasiada dureza, al fin y al cabo es coautor de cierta referencia útil para cálculo de matrices ...
0 votos
y(j)k es un vector, no una matriz. Así que tres matrices parece correcto. fk(j) es el jth vector columna de p . No veo ningún pk(j) en el periódico, probablemente un error suyo.
0 votos
@Yves, aquí el OP no tiene la culpa. Tenga en cuenta que la versión publicada del documento vinculado por el OP en el primer comentario tiene ese error tipográfico.
0 votos
Sin embargo, @hardmath ha sustituido ese enlace por un informe técnico, que no tiene esa errata, y que probablemente habría sido más esclarecedor para el OP.
0 votos
Según lo entiendo ahora, la preocupación era que había una necesidad de almacenar y(j)k para k=0,…,s−1 en otra matriz, pero como señala hardmath, el almacenamiento para esto es insignificante comparado con la matriz real que se está evaluando.