Ortonormalizzazione di Gram-Schmidt
Il comando GramSchmidt esegue il processo di ortonormalizzazione di Gram-Schmidt trasformando un insieme (o una lista) di vettori linearmente indipendenti in un insieme (o una lista) di vettori ortogonali o ortonormali che generano lo stesso spazio di quelli di partenza
> base := [randvector(4),randvector(4),randvector(4)];
> base_ortogonale := GramSchmidt(base);
verifichiamo che quella ottenuta è una base ortogonale, usando la funzione
dotprod
, che calcola il prodotto scalare (standard di
) di due vettori
> dotprod(base_ortogonale[1],base_ortogonale[2]);
> dotprod(base_ortogonale[1],base_ortogonale[3]);
> dotprod(base_ortogonale[2],base_ortogonale[3]);
> base_ortonormale := GramSchmidt(base,'normalized');
verifichiamo che quella ottenuta è una base ortonormale
>
dotprod(base_ortonormale[1],base_ortonormale[2]);
dotprod(base_ortonormale[1],base_ortonormale[3]);
dotprod(base_ortonormale[2],base_ortonormale[3]);
dotprod(base_ortonormale[1],base_ortonormale[1]);
dotprod(base_ortonormale[2],base_ortonormale[2]);
dotprod(base_ortonormale[3],base_ortonormale[3]);
>