Salta ai contenuti

Gram-Schmidt 3D

Il procedimento di Gram-Schmidt trasforma tre vettori v1,v2,v3\vec v_1,\vec v_2,\vec v_3 di R3\mathbb{R}^3, in generale non ortogonali tra loro, in una base ortonormale u1,u2,u3\vec u_1,\vec u_2,\vec u_3. Le punte dei vettori sono trascinabili in modalità “Modifica v₁ v₂ v₃”; la vista si ruota trascinando lo sfondo.

1.00×
v₁, v₂, v₃ = u₁, u₂, u₃ = ‖u₁‖, ‖u₂‖, ‖u₃‖ = u₁·u₂, u₁·u₃, u₂·u₃ =

Passo 1. Il primo versore si ottiene normalizzando v1\vec v_1, cioè dividendolo per la propria norma:

u1=v1v1\vec u_1=\dfrac{\vec v_1}{\lVert \vec v_1\rVert}

Passo 2. Da v2\vec v_2 si toglie la sua componente lungo u1\vec u_1 (la proiezione su u1\vec u_1), ottenendo la parte ortogonale w2\vec w_2; si normalizza infine w2\vec w_2:

w2=v2(v2u1)u1,u2=w2w2\vec w_2=\vec v_2-(\vec v_2\cdot\vec u_1)\,\vec u_1,\qquad \vec u_2=\dfrac{\vec w_2}{\lVert \vec w_2\rVert}

Passo 3. Da v3\vec v_3 si tolgono entrambe le proiezioni, su u1\vec u_1 e su u2\vec u_2; il resto ortogonale w3\vec w_3 viene poi normalizzato:

w3=v3(v3u1)u1(v3u2)u2,u3=w3w3\vec w_3=\vec v_3-(\vec v_3\cdot\vec u_1)\,\vec u_1-(\vec v_3\cdot\vec u_2)\,\vec u_2,\qquad \vec u_3=\dfrac{\vec w_3}{\lVert \vec w_3\rVert}

Premendo “Calcola e mantieni” questa sequenza viene animata sul simulatore, colore per colore, nello stesso ordine appena descritto. Lo slider “rallentatore” permette di seguirla con più calma, senza modificare il risultato finale.

Sotto i pulsanti del simulatore compaiono quattro righe numeriche, sempre aggiornate dal vivo:

  • le coordinate dei vettori di partenza v1,v2,v3\vec v_1,\vec v_2,\vec v_3 (modificabili anche digitandole direttamente, in modalità “Modifica v₁ v₂ v₃”);
  • le coordinate dei versori risultato u1,u2,u3\vec u_1,\vec u_2,\vec u_3, che compaiono una alla volta durante “Calcola e mantieni”, in sincrono con l’animazione;
  • le norme u1,u2,u3\lVert\vec u_1\rVert,\lVert\vec u_2\rVert,\lVert\vec u_3\rVert, che devono restare pari a 11 (i vettori risultato sono versori, cioè di lunghezza unitaria);
  • i prodotti scalari incrociati u1u2, u1u3, u2u3\vec u_1\cdot\vec u_2,\ \vec u_1\cdot\vec u_3,\ \vec u_2\cdot\vec u_3, che devono restare pari a 00 (i vettori risultato sono a due a due ortogonali).

Norme unitarie e prodotti scalari nulli sono, insieme, proprio la definizione di base ortonormale: quei numeri dal vivo sono un modo per verificare, per qualunque terna di vettori di partenza linearmente indipendenti, che il procedimento ha funzionato correttamente.