Gram-Schmidt endereza una base torcida
Supón dos vectores inclinados. Generan el mismo plano, pero no son perpendiculares y sus longitudes difieren, lo cual es incómodo para calcular. Gram-Schmidt es el procedimiento que endereza esta base torcida. Conserva la primera dirección tal cual, y del segundo vector resta la sombra que proyecta sobre el primero (su proyección). Lo que queda es exactamente la parte perpendicular al primero. Por último reescala ambos a longitud 1, y sale un marco unitario limpio que se cruza en ángulo recto. En el primer widget, recorre las etapas una a una y sigue cómo dos vectores inclinados se vuelven ortonormales. Esta es justamente la Q de la descomposición QR de la próxima lección.
Recorre las etapas con los botones. La etapa 0 es la entrada inclinada a1, a2 tal cual. La etapa 1 encoge a1 a longitud 1, formando el primer vector unitario u1 (verde). La etapa 2 dibuja en dorado la sombra que a2 proyecta sobre u1, la proyección (a2·u1)u1 — cuánta dirección u1 vive dentro de a2. La etapa 3 resta esa proyección de a2 para dejar el resto perpendicular w (naranja), y luego lo reescala a longitud 1 para obtener el segundo vector unitario u2. Ahora u1 y u2 se cruzan exactamente en ángulo recto. El par torcido se ha enderezado en uno ortonormal y limpio.
Toma en tus manos solo el movimiento central de Gram-Schmidt. Fija u1 como el vector unitario a lo largo del eje x, y arrastra el vector azul a2 donde quieras. La flecha dorada es la proyección que a2 lanza sobre u1, (a2·u1)u1 — solo la componente u1 extraída de a2. La flecha naranja es el resto, a2 menos esa proyección. Dondequiera que arrastres a2, este resto naranja siempre se encuentra con u1 en ángulo recto exacto, porque restar la proyección elimina la parte paralela y deja solo la perpendicular. Esta única resta es el corazón de Gram-Schmidt, el movimiento que pone derecho a un segundo vector torcido.
Ahora comprueba que, por torcida que esté la entrada, la salida sigue recta. Mantén a1 fijo y usa el control para girar el ángulo de inclinación de a2. Los dos vectores tenues son la entrada inclinada a1, a2, y el marco unitario en ángulo recto u1, u2, dibujado en negrita, es la salida que produce Gram-Schmidt. Por mucho que inclines la entrada, la salida u1 y u2 siempre se mantienen de longitud 1 y perpendiculares entre sí. Hay un punto peligroso: haz a2 casi paralelo a a1 y apuntan en la misma dirección, así que el plano por generar se colapsa y la componente perpendicular cae hacia cero. En ese momento no puede construirse un marco ortonormal y aparece un aviso. Una base casi paralela no puede enderezarse.
Gram-Schmidt da un resultado distinto según de qué vector partas, porque solo se conserva la dirección del primer vector. Usa el conmutador para cambiar el orden de inicio. Con a1 primero, u1 sigue la dirección de a1 sin cambios y u2 se levanta perpendicular a ella. Cambia a a2 primero y ahora u1 sigue la dirección de a2, con u2 como su perpendicular. Con las mismas dos entradas generando el mismo plano, el marco ortonormal que obtienes queda girado de otro modo. Ambos son bases ortonormales igual de válidas; es solo que Gram-Schmidt se ancla en la primera dirección, así que a cuál llamas primero decide la respuesta.
Ahora reúne los dos vectores unitarios enderezados en una sola matriz. Activa u1 y u2 de uno en uno con el conmutador, y cada uno ocupa su lugar como columna 1 y columna 2 de una matriz Q. El panel de abajo muestra esa Q de 2x2; la columna verde es u1, la naranja es u2. Como las dos columnas de Q son vectores unitarios perpendiculares, Q es una rotación pura (una matriz ortogonal) que no altera ni longitud ni ángulo, así que se cumple Qᵀ Q = I. Esta Q ensamblada es justamente la Q de la descomposición QR de la próxima lección. Toda matriz A se divide como A = QR, donde Q son estas columnas ortonormales enderezadas por Gram-Schmidt y R es la matriz triangular superior que guarda los coeficientes de proyección extraídos por el camino.