Así que estoy ejecutando un algoritmo iterativo. Tengo matriz $W$ % dimensiones $n\times p$que se fija para cada iteración y matriz $\sqrt{3\rho} \boldsymbol{I}$ $p\times p$ de la dimensión donde el parámetro de $\rho$ cambia en cada iteración. Y para cada iteración es necesario evaluar la descomposición de QR de la matriz: $$\widetilde{W} = \left[\begin{array}{c} W \\ \sqrt{3\rho} \boldsymbol{I} \end{array} \right] $$ which is a matrix of dimension $(n+p) #\times p$. Since $W$ is fixed I wondering if there is any easy way to evaluate the QR decomposition of the matrix $\widetilde{W}$ by just looking at the QR decomposition of $W$? I hope to avoid evaluating the QR decomposition wach time for each different $\rho$.
Respuesta
¿Demasiados anuncios?EDIT: en el siguiente tratamiento de $\mathbf{W}$ como una matriz cuadrada. Por lo tanto es cero collar con filas adicionales de cero y valores singulares también y ningún otro cambio.
Por simplicidad me cae la $\sqrt{3\rho}$ y el uso de $\alpha$ lugar.
El uso de la SVD de la matriz $\mathbf{W}$, el problema puede ser transformado en uno de hacer QR con un fijo unitario matriz $\mathbf{V}^*$ y un parámetro de matriz diagonal $\mathbf{D}$. Aquí os muestro la transformación.
Dado el SVD de a $\mathbf{W} = \mathbf{U}\mathbf{S}\mathbf{V}^*$: $$\pmatrix{\mathbf{W} \\ \alpha \mathbf{I}} = \pmatrix{\mathbf{U}\mathbf{S}\mathbf{V}^* \\ \alpha \mathbf{I}} = \pmatrix{\mathbf{U} & \mathbf{0} \\ \mathbf{0} & \mathbf{V} }\pmatrix{\mathbf{S} \\ \alpha \mathbf{I}}\mathbf{V}^*$$
Desde $\mathbf{S}$ es diagonal, $\mathbf{S} = \operatorname{diag}(s_0 , s_1 , s_2, \dots)$, es fácil de hacer rotaciones de Givens en los pares de filas de la matriz $\pmatrix{\mathbf{S} \\ \alpha\mathbf{I}}$ para un solo bloque diagonal de la matriz $\pmatrix{\mathbf{D} \\ \mathbf{0}}$, de modo que tenemos
$$\pmatrix{\mathbf{W} \\ \alpha \mathbf{I}} = \pmatrix{\mathbf{U} & \mathbf{0} \\ \mathbf{0} & \mathbf{V} }\pmatrix{\mathbf{G}_s & \mathbf{G}_{\alpha} \\ \mathbf{G}_{\alpha} & -\mathbf{G}_s } \pmatrix{\mathbf{D} \\ \mathbf{0}}\mathbf{V}^*$$
Donde $$\mathbf{G}_s = \operatorname{diag}\left(\frac{s_0}{\sqrt{s_0^2 + \alpha^2}} , \frac{s_1}{\sqrt{s_1^2 + \alpha^2}}, \frac{s_2}{\sqrt{s_2^2 + \alpha^2}}, \dots\right)$$ Y $$\mathbf{G}_{\alpha} = \operatorname{diag}\left(\frac{\alpha}{\sqrt{s_0^2 + \alpha^2}} , \frac{\alpha}{\sqrt{s_1^2 + \alpha^2}}, \frac{\alpha}{\sqrt{s_2^2 + \alpha^2}}, \dots\right)$$ Y $$\mathbf{D} = \operatorname{diag}\left(\sqrt{s_0^2 + \alpha^2} , \sqrt{s_1^2 + \alpha^2}, \sqrt{s_2^2 + \alpha^2}, \dots\right)$$
Así tenemos una fácil parametrización de la enfermedad vesicular porcina. Vamos $$\mathbf{Q} = \pmatrix{\mathbf{U} & \mathbf{0} \\ \mathbf{0} & \mathbf{V} }\pmatrix{\mathbf{G}_s & \mathbf{G}_{\alpha} \\ \mathbf{G}_{\alpha} & -\mathbf{G}_s } = \pmatrix{\mathbf{U}\mathbf{G}_s & \mathbf{U}\mathbf{G}_{\alpha} \\ \mathbf{V}\mathbf{G}_{\alpha} & -\mathbf{V}\mathbf{G}_s}$$
donde $\mathbf{Q}$ puede relativamente fácilmente se comprueba como unitaria. Esto da como resultado la enfermedad vesicular porcina con el parámetro $\alpha$ $$\pmatrix{\mathbf{W} \\ \alpha \mathbf{I}} = \mathbf{Q}\pmatrix{\mathbf{D} \\ \mathbf{0}}\mathbf{V}^*$$
Ya que este solo puede ser adecuado para su problema de las necesidades voy a terminar mi respuesta aquí. Sin embargo, el post de seguimiento cuestión aquí.