Respuesta corta: Gram-Schmidt. Respuesta más larga:
-
Normalice sus vectores de entrada, es decir, sustituya $v_i$ con $v_i / \|v_i\|$ para cada $i$ .
-
Crear un conjunto de $n+k$ vectores $v_1, v_2, \ldots, v_k, e_1, e_2, \ldots, e_n$ . Llame a estos $u_1, \ldots, u_{n+k}$ .
-
Realice el proceso de ortogonalización Gram-Schmidt en cada uno de ellos. Gram-Schmidt, sobre la $i$ produce un vector intermedio $b_i$ que se normaliza para obtener el vector de salida $w_i$ . $b_i$ se define recursivamente como sigue:
a. $b_1 = u_1$ .
b. Para $i > 1$ , $b_i = u_i - (u_i \cdot w_1) w_1 - (u_1 \cdot w_2) w_2 - ... - (u_1 \cdot w_{i-1}) w_{i-1}.
Si resulta que $b_i$ es cero después de este paso, basta con descartarlo y pasar al siguiente $u$ .
Cuando hayas terminado, tendrás exactamente $n$ vectores no descartados, y serán una base ortonormal para $\Bbb R^n$ y la primera $k$ abarcará el subespacio abarcado por el $u_i$ s. Colócalos en una matriz $M$ cada una como una columna de $M$ .
Entonces la matriz $R$ que está buscando es (casi) $M^t$ . La transformación $x \mapsto M^t x$ envía $v_0$ a $e_1$ , $v_1$ a $e_2$ y así sucesivamente hasta $v_k$ que se envía a $e_{k+1}$ .
Ahora todo lo que necesitamos es una transformación ortogonal que envíe $e_1$ a $w$ y el alcance de $e_1, \ldots, e_{k+1}$ a la envergadura del $v$ vectores. Para ello...
Aplicar la misma Gram-Schmidt modificada al conjunto $\{w, v_1, v_2, \ldots, v_k, e_1, e_2, \ldots, e_n\}$ producir $n$ vectores $c_1 = w, \ldots, c_n$ que se colocan como columnas de una matriz $C$ . Tenga en cuenta que $Ce_1 = w$ . Observe también que $Ce_i$ para $i = 1, \ldots, k+1$ está en el vano del $v$ -vectores.
La matriz $CM^t$ es el que necesita.
N.B:
-
$e_i$ denota aquí el $i$ vector de base estándar: un vector columna de todos los $0$ s excepto un $1$ en el $i$ ª plaza.
-
Este enfoque no es especialmente estable desde el punto de vista numérico; si se descarta $b_i$ siempre que sea "demasiado corta" (y la noción exacta de "demasiado corta" depende de $n$ de una manera que no estoy dispuesto a resolver), aún obtendrás una buena base ortonormal con mucha mejor estabilidad numérica.