Algoritmo di Lagrange
# Algoritmo di Lagrange

In matematica, e più precisamente in algebra lineare, l'algoritmo di Lagrange è un algoritmo utile a trovare una base ortogonale in uno spazio vettoriale di dimensione finita munito di un prodotto scalare. Si tratta di una variante del processo di ortogonalizzazione di Gram-Schmidt utilizzata nel caso in cui il prodotto scalare non sia definito positivo.

## L'algoritmo

Sia $V$ uno spazio vettoriale di dimensione finita su un campo $K$ di caratteristica diversa da 2, con prodotto scalare $\phi$. L'algoritmo costruisce una base ortogonale a partire da una base $v_{1},\ldots ,v_{n}$ data. Si tratta di applicare iterativamente per $i=1,\ldots n$ le mosse seguenti:

* Se $v_{i}$ non è isotropo, allora $\phi (v_{i},v_{i})\neq 0$ e si definisce

    $v'_{i}=v_{i}-\sum _{j>i}{\frac {\phi (v_{i},v_{j})}{\phi (v_{j},v_{j})}}v_{j}$
    Il risultato è un vettore $v'_{i}$ che continua a formare una base con i vettori restanti, ma ortogonale a tutti i vettori successivi: infatti $\phi (v_{i}',v_{j})=0$ per ogni $j>i$. Quindi si sostituisce $v_{i}$ con $v_{i}'$.
* Se $v_{i}$ è un vettore isotropo, viene scambiato con un elemento non isotropo $v_{j}$ con $j>i$. Nel caso in cui tutti tali vettori siano isotropi, si cerca un vettore non isotropo tra i $v_{j}+v_{k}$ con $j,k\geq i$. Se anche tutti questi sono isotropi, allora la base è già ortogonale e l'algoritmo si interrompe.
