Estoy tratando de entender esto algoritmo de Charles Van Loan para evaluar un polinomio matricial $p(\mathbf A)=\sum\limits_{k=0}^q b_k \mathbf A^k=b_0\mathbf I+b_1\mathbf A+\cdots$ (donde $\mathbf A$ est $n\times n$ ) :
$\displaystyle s=\lfloor q\rfloor, \quad r=\lfloor q/s\rfloor$
$\displaystyle \mathbf Y=\mathbf A^s$
$\displaystyle \text{for}\quad j=1,\dots,n$
$\displaystyle\quad\quad \mathbf y_0^{(j)}=\mathbf e_j$ ( $\mathbf e_j$ es el $j$ columna de la matriz identidad)
$\displaystyle\quad\quad \text{for}\quad k=1,\dots,s-1$
$\displaystyle\quad\quad\quad \mathbf y_k^{(j)}=\mathbf A\mathbf y_{k-1}^{(j)}$
$\displaystyle\quad\quad \mathbf f_0^{(j)}=\sum_{k=q}^{rs}b_k\mathbf y_{k-rs}^{(j)}$
$\displaystyle\quad\quad \text{for}\quad k=1,\dots,r$
$\displaystyle\quad\quad\quad \mathbf f_k^{(j)}=\mathbf Y\mathbf p_{k-1}^{(j)}+\sum_{i=0}^{s-1}b_{s(r-k)+i}\mathbf y_{i}^{(j)}$
He intentado repasarlo varias veces, pero parece que la cantidad (¿vector?) $\mathbf p_{k-1}^{(j)}$ no se definió en ninguna parte del documento. ¿Qué podría ser? Además, el documento afirma (o más probablemente es como yo (mal) entendí el documento) que sólo tres matrices deben ser almacenados para la evaluación: $\mathbf A$ , $\mathbf Y$ y el último $p(\mathbf A)$ . Sin embargo, no veo cómo organizar correctamente las cosas para que una matriz adicional para almacenar el $\mathbf y_k^{(j)}$ (de lo contrario, se necesitarían cuatro matrices en lugar de las tres que se indican en el artículo).
¿Podría alguien aclararme cómo aplicar correctamente este algoritmo? Mejor aún, ¿hay algún código disponible en algún sitio que implemente este algoritmo (soy agnóstico en cuanto al lenguaje, así que cualquier código que publique, probablemente pueda traducirlo al lenguaje que estoy usando actualmente).
Gracias por su ayuda.
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_r^{(1)}|\cdots|f_r^{(n)}]$ Supongo $p_{k-1}^{(j)}$ debe ser $f_{k-1}^{(j)}$ . De lo contrario, ¿por qué molestarse en calcular $f_k^{(j)}$ para $k \neq 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_k^{(j)}$ es un vector, no una matriz. Así que tres matrices parece correcto. $f_k{(j)}$ es el $j^{th}$ vector columna de $p$ . No veo ningún $p_k{(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 $\mathbf y_k^{(j)}$ para $k=0,\dots,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.