Μέθοδος ορθοκανονικοποίησης των Gram–Schmidt

Η διανυσματική προβολή ενός διανύσματος \mathbf v σε ένα μη μηδενικό διάνυσμα \mathbf u ορίζεται ως εξής

\operatorname{proj}_{\mathbf u} (\mathbf{v}) = \frac{\langle \mathbf{v}, \mathbf{u}\rangle}{\langle \mathbf{u}, \mathbf{u}\rangle} \,\mathbf{u} , 

όπου \langle \mathbf{v}, \mathbf{u}\rangle δηλώνει το εσωτερικό γινόμενο των διανυσμάτων \mathbf u και \mathbf v. Αυτό σημαίνει ότι \operatorname{proj}_{\mathbf u} (\mathbf{v}) είναι η ορθογώνια προβολή του \mathbf v στην ευθεία που διατρέχει το \mathbf u. Αν \mathbf u είναι το μηδενικό διάνυσμα, τότε \operatorname{proj}_{\mathbf u} (\mathbf{v}) ορίζεται ως το μηδενικό διάνυσμα.

## Η μέθοδος Gram-Schmidt

Η διανυσματική προβολή ενός διανύσματος \mathbf v σε ένα μη μηδενικό διάνυσμα \mathbf u ορίζεται ως εξής 
\operatorname{proj}_{\mathbf u} (\mathbf{v}) = \frac{\langle \mathbf{v}, \mathbf{u}\rangle}{\langle \mathbf{u}, \mathbf{u}\rangle} \,\mathbf{u} , 
όταν \langle \mathbf{v}, \mathbf{u}\rangle συμβολίζει το εσωτερικό γινόμενο των διανυσμάτων \mathbf u και \mathbf v. Αυτό σημαίνει ότι \operatorname{proj}_{\mathbf u} (\mathbf{v}) είναι η ορθογώνια προβολή του \mathbf v στην ευθεία που διατρέχει το \mathbf u. Αν \mathbf u είναι το μηδενικό διάνυσμα, τότε \operatorname{proj}_{\mathbf u} (\mathbf{v}) ορίζεται ως το μηδενικό διάνυσμα.

Με βάση τα διανύσματα  \mathbf{v}_1, \ldots, \mathbf{v}_k η μέθοδος Gram-Schmidt ορίζει τα διανύσματα  
\mathbf{u}_1, \ldots, \mathbf{u}_k as follows:
\begin{align}
\mathbf{u}_1 & = \mathbf{v}_1, & \!\mathbf{e}_1 & = \frac{\mathbf{u}_1}{\|\mathbf{u}_1\|} \\
\mathbf{u}_2 & = \mathbf{v}_2-\operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_2),
& \!\mathbf{e}_2 & = \frac{\mathbf{u}_2}{\|\mathbf{u}_2\|} \\
\mathbf{u}_3 & = \mathbf{v}_3-\operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_3) - \operatorname{proj}_{\mathbf{u}_2} (\mathbf{v}_3),
& \!\mathbf{e}_3 & = \frac{\mathbf{u}_3 }{\|\mathbf{u}_3\|} \\
\mathbf{u}_4 & = \mathbf{v}_4-\operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_4)-\operatorname{proj}_{\mathbf{u}_2} (\mathbf{v}_4)-\operatorname{proj}_{\mathbf{u}_3} (\mathbf{v}_4),
& \!\mathbf{e}_4 & = {\mathbf{u}_4 \over \|\mathbf{u}_4\|} \\
& {}\ \  \vdots & & {}\ \  \vdots \\
\mathbf{u}_k & = \mathbf{v}_k - \sum_{j=1}^{k-1}\operatorname{proj}_{\mathbf{u}_j} (\mathbf{v}_k),
& \!\mathbf{e}_k & = \frac{\mathbf{u}_k}{\|\mathbf{u}_k\|}.
\end{align}

Η ακολουθία  είναι το απαιτούμενο σύστημα ορθογώνιων διανυσμάτων και τα κανονικοποιημένα διανύσματα  σχηματίζουν ένα ορθοκανονικό σύνολο. Ο υπολογισμός της ακολουθίας  είναι γνωστός ως ορθογωνιοποίηση Gram-Schmidt, και ο υπολογισμός της ακολουθίας  είναι γνωστός ως ορθοκανονικοποίηση Gram-Schmidt.

Για να ελεγχθεί ότι αυτοί οι τύποι δίνουν μια ορθογώνια ακολουθία, υπολογίζουμε πρώτα \langle \mathbf{u}_1, \mathbf{u}_2 \rangle αντικαθιστώντας τον παραπάνω τύπο για το **u**2:: παίρνουμε μηδέν. Στη συνέχεια χρησιμοποιούμε αυτό για να υπολογίσουμε \langle \mathbf{u}_1, \mathbf{u}_3 \rangle πάλι αντικαθιστώντας τον τύπο για το **u**3: παίρνουμε μηδέν. Η γενική απόδειξη γίνεται με μαθηματική επαγωγή.

Η μέθοδος Gram-Schmidt εφαρμόζεται επίσης σε μια γραμμικά ανεξάρτητη μετρήσιμη άπειρη ακολουθία  . Το αποτέλεσμα είναι μια ορθογώνια (ή ορθοκανονική) ακολουθία  τέτοια ώστε για φυσικό αριθμό n: το αλγεβρικό εύρος των  είναι το ίδιο με αυτό των .

Εάν η μέθοδος Gram-Schmidt εφαρμόζεται σε μια γραμμικά εξαρτημένη ακολουθία, εξάγει το διάνυσμα  στο *i*-th βήμα, υποθέτοντας ότι το  είναι ένας γραμμικός συνδυασμός των . Εάν πρόκειται να δημιουργηθεί μια ορθοκανονική βάση, τότε ο αλγόριθμος θα πρέπει να εξετάσει για μηδενικά διανύσματα στην έξοδο και να τα απορρίψει, διότι κανένα πολλαπλάσιο ενός μηδενικού διανύσματος δεν μπορεί να έχει μήκος 1. Ο αριθμός των διανυσμάτων που εξάγονται από τον αλγόριθμο θα είναι τότε η διάσταση του χώρου που καλύπτεται από τις αρχικές εισόδους.

Μια παραλλαγή της μεθόδου Gram-Schmidt που χρησιμοποιεί τη διαπεραστική αναδρομή και εφαρμόζεται σε μια (ενδεχομένως μη αναρίθμητη) άπειρη ακολουθία διανυσμάτων (v_\alpha)_{\alpha δίνει ένα σύνολο ορθοκανονικών διανυσμάτων (u_\alpha)_{\alpha με \kappa\leq\lambda έτσι ώστε για κάθε \alpha\leq\lambda, η ολοκλήρωση της έκτασης της \{ u_\beta : \beta είναι η ίδια με εκείνη του . Ειδικότερα, όταν εφαρμόζεται σε μια (αλγεβρική) βάση ενός χώρου Hilbert (ή, γενικότερα, σε μια βάση οποιουδήποτε πυκνού υποχώρου), δίνει μια (λειτουργική-αναλυτική) ορθοκανονική βάση. Σημειώστε ότι στη γενική περίπτωση συχνά ισχύει η αυστηρή ανισότητα \kappa , ακόμη και αν το αρχικό σύνολο ήταν γραμμικά ανεξάρτητο, και η έκταση του (u_\alpha)_{\alpha δεν χρειάζεται να είναι υποχώρος της έκτασης του (v_\alpha)_{\alpha (μάλλον, είναι ένας υποχώρος της ολοκλήρωσής του).

## Παράδειγμα

### Ευκλείδειος χώρος
Ας θεωρήσουμε το ακόλουθο σύνολο διανυσμάτων στο

 (με το συμβατικό εσωτερικό γινόμενο)
S = \left\{\mathbf{v}_1=\begin{bmatrix} 3 \\ 1\end{bmatrix}, \mathbf{v}_2=\begin{bmatrix}2 \\2\end{bmatrix}\right\}.

Εφαρμόστε τώρα τη μέθοδο Gram-Schmidt για να λάβετε ένα σύνολο ορθογώνιων διανυσμάτων:

\mathbf{u}_1=\mathbf{v}_1=\begin{bmatrix}3\\1\end{bmatrix}

 \mathbf{u}_2 = \mathbf{v}_2 - \operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_2)
= \begin{bmatrix}2\\2\end{bmatrix} - \operatorname{proj}_{\left[\begin{smallmatrix}3 \\ 1\end{smallmatrix}\right]} {\begin{bmatrix}2\\2\end{bmatrix}}
= \begin{bmatrix}2\\2\end{bmatrix} - \frac{8}{10} \begin{bmatrix} 3 \\1 \end{bmatrix}
= \begin{bmatrix} -2/5 \\6/5 \end{bmatrix}. 

Ελέγχουμε ότι τα διανύσματα   και   είναι πράγματι ορθογώνια:

\langle\mathbf{u}_1,\mathbf{u}_2\rangle = \left\langle \begin{bmatrix}3\\1\end{bmatrix}, \begin{bmatrix} -2/5 \\ 6/5 \end{bmatrix} \right\rangle = -\frac{6}{5} + \frac{6}{5} = 0,

σημειώνοντας ότι αν το τετραγωνικό γινόμενο δύο διανυσμάτων είναι 0, τότε είναι ορθογώνια.

\mathbf{e}_1 = \frac{1}{\sqrt {10}}\begin{bmatrix}3\\1\end{bmatrix}

\mathbf{e}_2 = \frac{1}{\sqrt{40 \over 25}} \begin{bmatrix}-2/5\\6/5\end{bmatrix}
= \frac{1}{\sqrt{10}} \begin{bmatrix}-1\\3\end{bmatrix}. 

## Ιδιότητες

Σημειώστε με   \operatorname{GS}(\mathbf{v}_1, \dots, \mathbf{v}_k)  το αποτέλεσμα της εφαρμογής της διαδικασίας Gram-Schmidt σε μια συλλογή διανυσμάτων  \mathbf{v}_1, \dots, \mathbf{v}_k . Έτσι προκύπτει ένας χάρτης GS :  \operatorname{GS} \colon (\R^n)^{k} \to (\R^n)^{k} .

Έχει τις ακόλουθες ιδιότητες:
* Είναι συνεχής
* Διατηρεί τον προσανατολισμό με την έννοια ότι  \operatorname{or}(\mathbf{v}_1,\dots,\mathbf{v}_k) = \operatorname{or}(\operatorname{GS}(\mathbf{v}_1,\dots,\mathbf{v}_k)) .
* Συναλλάσσεται με ορθογώνιους χάρτες:

Έστω  g \colon \R^n \to \R^n  να είναι ορθογώνιο (ως προς το δεδομένο εσωτερικό γινόμενο). Τότε έχουμε

 \operatorname{GS}(g(\mathbf{v}_1),\dots,g(\mathbf{v}_k)) = \left( g(\operatorname{GS}(\mathbf{v}_1,\dots,\mathbf{v}_k)_1),\dots,g(\operatorname{GS}(\mathbf{v}_1,\dots,\mathbf{v}_k)_k) \right) 

Περαιτέρω, μια παραμετρική εκδοχή της μεθόδου Gram-Schmidt δίνει μια (ισχυρή) παραμορφωτική ανάκληση της γενικής γραμμικής ομάδας  \mathrm{GL}(\R^n) στην ορθογώνια ομάδα  O(\R^n).

## Αριθμητική σταθερότητα
Όταν αυτή η διαδικασία εκτελείται σε υπολογιστή, τα διανύσματα \mathbf{u}_k  συχνά δεν είναι αρκετά ορθογώνια, λόγω σφαλμάτων στρογγυλοποίησης. Για τη μέθοδο Gram-Schmidt που περιγράφηκε παραπάνω (μερικές φορές αναφέρεται ως "κλασική μέθοδος Gram-Schmidt"), αυτή η απώλεια ορθογωνιότητας είναι ιδιαίτερα σοβαρή, γι' αυτό και η (κλασική) μέθοδος Gram-Schmidt χαρακτηρίζεται αριθμητικά ασταθής.

Η μέθοδος Gram-Schmidt μπορεί να σταθεροποιηθεί με μια μικρή τροποποίηση- αυτή η έκδοση ονομάζεται μερικές φορές *τροποποιημένη Gram-Schmidt* ή MGS. Αυτή η προσέγγιση δίνει το ίδιο αποτέλεσμα με τον αρχικό τύπο στην ακριβή αριθμητική και εισάγει μικρότερα σφάλματα στην αριθμητική ακριβείας.
Αντί για τον υπολογισμό του διανύσματος  ως 

 \mathbf{u}_k = \mathbf{v}_k - \operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_k) - \operatorname{proj}_{\mathbf{u}_2} (\mathbf{v}_k) - \cdots - \operatorname{proj}_{\mathbf{u}_{k-1}} (\mathbf{v}_k), 

υπολογίζεται ως εξής

 \begin{align}
\mathbf{u}_k^{(1)} &= \mathbf{v}_k - \operatorname{proj}_{\mathbf{u}_1} (\mathbf{v}_k), \\
\mathbf{u}_k^{(2)} &= \mathbf{u}_k^{(1)} - \operatorname{proj}_{\mathbf{u}_2} \left(\mathbf{u}_k^{(1)}\right), \\
& \;\; \vdots \\
\mathbf{u}_k^{(k-2)} &= \mathbf{u}_k^{(k-3)} - \operatorname{proj}_{\mathbf{u}_{k-2}} \left(\mathbf{u}_k^{(k-3)}\right), \\
\mathbf{u}_k^{(k-1)} &= \mathbf{u}_k^{(k-2)} - \operatorname{proj}_{\mathbf{u}_{k-1}} \left(\mathbf{u}_k^{(k-2)}\right), \\
\mathbf{e}_k &=  \frac{\mathbf{u}_k^{(k-1)}}{\left\|\mathbf{u}_k^{(k-1)}\right\|}
\end{align} 

Αυτή η μέθοδος χρησιμοποιείται στην προηγούμενη κινούμενη εικόνα, όταν το ενδιάμεσο διάνυσμα  χρησιμοποιείται κατά την ορθογωνοποίηση του μπλε διανύσματος .

Ακολουθεί μια άλλη περιγραφή του τροποποιημένου αλγορίθμου. Δεδομένων των διανυσμάτων v_1, v_2, \dots, v_n, στο πρώτο βήμα μας παράγουμε τα διανύσματα v_1, v_2^{(1)}, \dots, v_n^{(1)} αφαιρώντας συνιστώσες κατά μήκος της διεύθυνσης του v_1. Σε τύπους,v_k^{(1)} := v_k - \frac{\langle v_k, v_1 \rangle}{\langle v_1, v_1 \rangle}v_1. Μετά από αυτό το βήμα έχουμε ήδη δύο από τα επιθυμητά ορθογώνια διανύσματα u_1, \dots, u_n, δηλαδή u_1 = v_1, u_2 = v_2^{(1)}, αλλά κάναμε και v_3^{(1)}, \dots, v_n^{(1)} ήδη ορθογώνια προς u_1. Στη συνέχεια, ορθογωνικοποιούμε αυτά τα υπόλοιπα διανύσματα κατά u_2 = v_2^{(1)}. Αυτό σημαίνει ότι υπολογίζουμε τα v_3^{(2)}, v_4^{(2)}, \dots, v_n^{(2)} με αφαίρεση v_k^{(2)} := v_k^{(1)} - \frac{\langle v_k^{(1)}, u_2 \rangle}{\langle u_2, u_2 \rangle} u_2.  Τώρα έχουμε αποθηκεύσει τα διανύσματα v_1, v_2^{(1)}, v_3^{(2)}, v_4^{(2)}, \dots, v_n^{(2)} όπου τα τρία πρώτα διανύσματα είναι ήδη u_1, u_2, u_3 και τα υπόλοιπα διανύσματα είναι ήδη ορθογώνια προς τα u_1, u_2. Όπως θα πρέπει να είναι σαφές τώρα, το επόμενο βήμα ορθογωνιοποιεί τα v_4^{(2)}, \dots, v_n^{(2)} έναντι του u_3 = v_3^{(2)}.Προχωρώντας με αυτόν τον τρόπο βρίσκουμε το πλήρες σύνολο των ορθογώνιων διανυσμάτων u_1, \dots, u_n. Αν επιθυμούμε ορθοκανονικά διανύσματα, τότε κανονικοποιούμε καθώς προχωράμε, έτσι ώστε οι παρονομαστές στους τύπους αφαίρεσης να μετατραπούν σε μονάδες.

## Αλγόριθμος
Ο ακόλουθος αλγόριθμος MATLAB υλοποιεί την κλασική ορθοκανονικοποίηση Gram-Schmidt. Τα διανύσματα   (στήλες του πίνακα `V`, έτσι ώστε `V(:,j)` να είναι το jοστό διάνυσμα) αντικαθίστανται από ορθοκανονικά διανύσματα (στήλες του `U`) που καλύπτουν τον ίδιο υποχώρο.


```matlab
function U = gramschmidt(V)
    [n, k] = size(V);
    U = zeros(n,k);
    U(:,1) = V(:,1) / norm(V(:,1));
    for i = 2:k
        U(:,i) = V(:,i);
        for j = 1:i-1
            U(:,i) = U(:,i) - (U(:,j)'*U(:,i)) * U(:,j);
        end
        U(:,i) = U(:,i) / norm(U(:,i));
    end
end
```


Το κόστος αυτού του αλγορίθμου είναι ασυμπτωτικά  πράξεις κινητής υποδιαστολής, όπου  είναι η διαστατικότητα των διανυσμάτων.

## Μέσω απαλοιφής Γκάους
Εάν οι γραμμές  γράφονται ως πίνακας A, τότε η εφαρμογή της απαλοιφής Γκάους στον επαυξημένο πίνακα \left[A A^\mathsf{T} | A \right] θα παράγει τα ορθογωνιοποιημένα διανύσματα στη θέση του A. Ωστόσο, ο πίνακας A A^\mathsf{T} πρέπει να μετατραπεί σε μορφή echelon γραμμής, χρησιμοποιώντας μόνο την πράξη γραμμής της πρόσθεσης ενός κλιμακωτού πολλαπλάσιου μιας γραμμής σε μια άλλη. Για παράδειγμα, λαμβάνοντας\mathbf{v}_1 = \begin{bmatrix} 3 & 1\end{bmatrix}, \mathbf{v}_2=\begin{bmatrix}2 & 2\end{bmatrix} όπως παραπάνω, έχουμε

\left[A A^\mathsf{T} | A \right] = \left[\begin{array}{rr|rr} 10 & 8 & 3 & 1 \\ 8 & 8 & 2 & 2\end{array}\right]

Και αν το αναγάγουμε αυτό σε μορφή σειρών επιπέδων παράγει

\left[\begin{array}{rr|rr} 1 & .8 & .3 & .1 \\ 0 & 1 & -.25 & .75\end{array}\right]

Τα κανονικοποιημένα διανύσματα είναι στη συνέχεια

\mathbf{e}_1 = \frac{1}{\sqrt {.3^2+.1^2}}\begin{bmatrix}.3 & .1\end{bmatrix} = \frac{1}{\sqrt{10}} \begin{bmatrix}3 & 1\end{bmatrix}

\mathbf{e}_2 = \frac{1}{\sqrt{.25^2+.75^2}} \begin{bmatrix}-.25 & .75\end{bmatrix} = \frac{1}{\sqrt{10}} \begin{bmatrix}-1 & 3\end{bmatrix}, 

όπως στο παραπάνω παράδειγμα.

## Προσδιοριστικός τύπος
Το αποτέλεσμα της μεθόδου Gram-Schmidt μπορεί να εκφραστεί με έναν μη αναδρομικό τύπο χρησιμοποιώντας προσδιοριστές.

 \mathbf{e}_j = \frac{1}{\sqrt{D_{j-1} D_j}} \begin{vmatrix}
\langle \mathbf{v}_1, \mathbf{v}_1 \rangle     & \langle \mathbf{v}_2, \mathbf{v}_1 \rangle     & \cdots & \langle \mathbf{v}_j, \mathbf{v}_1 \rangle \\
\langle \mathbf{v}_1, \mathbf{v}_2 \rangle     & \langle \mathbf{v}_2, \mathbf{v}_2 \rangle     & \cdots & \langle \mathbf{v}_j, \mathbf{v}_2 \rangle \\
\vdots                                         & \vdots                                         & \ddots & \vdots \\
\langle \mathbf{v}_1, \mathbf{v}_{j-1} \rangle & \langle \mathbf{v}_2, \mathbf{v}_{j-1} \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_{j-1} \rangle \\
\mathbf{v}_1                                   & \mathbf{v}_2                                   & \cdots & \mathbf{v}_j
\end{vmatrix} 

 \mathbf{u}_j = \frac{1}{D_{j-1} } \begin{vmatrix}
\langle \mathbf{v}_1, \mathbf{v}_1 \rangle     & \langle \mathbf{v}_2, \mathbf{v}_1 \rangle     & \cdots & \langle \mathbf{v}_j, \mathbf{v}_1 \rangle \\
\langle \mathbf{v}_1, \mathbf{v}_2 \rangle     & \langle \mathbf{v}_2, \mathbf{v}_2 \rangle     & \cdots & \langle \mathbf{v}_j, \mathbf{v}_2 \rangle \\
\vdots                                         & \vdots                                         & \ddots & \vdots \\
\langle \mathbf{v}_1, \mathbf{v}_{j-1} \rangle & \langle \mathbf{v}_2, \mathbf{v}_{j-1} \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_{j-1} \rangle \\
\mathbf{v}_1                                   & \mathbf{v}_2                                   & \cdots & \mathbf{v}_j
\end{vmatrix} 

όπου *D*0=1 και, για *j* ≥ 1, *D<sub>j</sub>*είναι ο προσδιοριστής Gram

 D_j = \begin{vmatrix}
\langle \mathbf{v}_1, \mathbf{v}_1 \rangle & \langle \mathbf{v}_2, \mathbf{v}_1 \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_1 \rangle \\
\langle \mathbf{v}_1, \mathbf{v}_2 \rangle & \langle \mathbf{v}_2, \mathbf{v}_2 \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_2 \rangle \\
\vdots & \vdots & \ddots & \vdots \\
\langle \mathbf{v}_1, \mathbf{v}_j \rangle & \langle \mathbf{v}_2, \mathbf{v}_j \rangle & \cdots & \langle \mathbf{v}_j, \mathbf{v}_j \rangle
\end{vmatrix}.  

Σημειώστε ότι η έκφραση για το **u**'*k* είναι ένας "τυπικός" προσδιοριστής, δηλαδή ο πίνακας περιέχει και τα δύο κλιμάκια όσο και διανύσματα- η έννοια αυτής της έκφρασης ορίζεται ως το αποτέλεσμα μιας συνδιαστολής κατά μήκος της γραμμής των διανυσμάτων.

Ο προσδιοριστικός τύπος για τον Gram-Schmidt είναι υπολογιστικά πιο αργός (εκθετικά πιο αργός) από τους αναδρομικούς αλγορίθμους που περιγράφονται παραπάνω- έχει κυρίως θεωρητικό ενδιαφέρον.

## Εκφραση με χρήση γεωμετρικής άλγεβρας

Εκφρασμένα με χρήση συμβολισμού που χρησιμοποιείται στη γεωμετρική άλγεβρα, τα μη ομαλοποιημένα αποτελέσματα της μεθόδου Gram-Schmidt εκφράζονται ως εξής
\mathbf{u}_k = \mathbf{v}_k - \sum_{j=1}^{k-1} (\mathbf{v}_k \cdot \mathbf{u}_j)\mathbf{u}_j^{-1}\ ,
η οποία είναι ισοδύναμη με την έκφραση που χρησιμοποιεί τον τελεστή \operatorname{proj} που ορίζεται παραπάνω. Τα αποτελέσματα μπορούν ισοδύναμα να εκφραστούν ως 
\mathbf{u}_k = \mathbf{v}_{k}\wedge\mathbf{v}_{k-1}\wedge\cdot\cdot\cdot\wedge\mathbf{v}_{1}(\mathbf{v}_{k-1}\wedge\cdot\cdot\cdot\wedge\mathbf{v}_{1})^{-1},
η οποία είναι στενά συνδεδεμένη με την έκφραση με χρήση προσδιοριστικών παραγόντων παραπάνω.

## ναλλακτικές λύσεις
Άλλοι αλγόριθμοι ορθογωνοποίησης χρησιμοποιούν μετασχηματισμούς Χάουσχολντερ ή περιστροφές Γκίβενς. Οι αλγόριθμοι που χρησιμοποιούν μετασχηματισμούς Χάουσχολντερ είναι πιο σταθεροί από τη σταθεροποιημένη μέθοδο Gram-Schmidt. Από την άλλη πλευρά, η μέθοδος Gram-Schmidt παράγει το j jοστό ορθογωνοποιημένο διάνυσμα μετά την jth επανάληψη, ενώ η ορθογωνοποίηση που χρησιμοποιεί ανακλάσεις Χάουσχολντερ παράγει όλα τα διανύσματα μόνο στο τέλος. Αυτό καθιστά μόνο τη μέθοδο Gram-Schmidt εφαρμόσιμη για επαναληπτικές μεθόδους όπως η επανάληψη Αρνόλντι.

Μια άλλη λύση έχει ως κίνητρο τη χρήση της αποσύνθεσης Τσολέσκι για την αντιστροφή του πίνακα των κανονικών εξισώσεων σε γραμμικά ελάχιστα τετράγωνα. Έστω V ένας πίνακας πλήρους τάξης του οποίου οι στήλες πρέπει να είναι ορθογωνοποιημένες. Ο πίνακας V^* V  είναι ερμιτιανός και θετικά ορισμένος, οπότε μπορεί να γραφεί στη μορφή  V^* V = L L^*,  χρησιμοποιώντας την αποσύνθεση Τσολέσκι. Ο κάτω τριγωνικός πίνακας L  με αυστηρά θετικές διαγώνιες καταχωρήσεις είναι αντιστρέψιμος. Οι στήλες του πίνακα U = V\left(L^{-1}\right)^* είναι τότε ορθοκανονικές και καλύπτουν τον ίδιο υποχώρο με τις στήλες του αρχικού πίνακα V. Η ρητή χρήση του γινομένου V^* V  καθιστά τον αλγόριθμο ασταθή, ιδιαίτερα αν ο αριθμός των όρων του γινομένου είναι μεγάλος. Παρ' όλα αυτά, ο αλγόριθμος αυτός χρησιμοποιείται στην πράξη και υλοποιείται σε ορισμένα λογισμικά λόγω της υψηλής αποδοτικότητας και απλότητας του.

Στην κβαντομηχανική υπάρχουν διάφορα σχήματα ορθογωνοποίησης με χαρακτηριστικά που είναι καλύτερα προσαρμοσμένα για ορισμένες εφαρμογές από τα αρχικά σχήματα Gram-Schmidt. Παρόλα αυτά, παραμένει ένας δημοφιλής και αποτελεσματικός αλγόριθμος ακόμα και για τους μεγαλύτερους υπολογισμούς ηλεκτρονικής δομής.

## Εξωτερικοί Σύνδεσμοι
* Harvey Mudd College Math Tutorial on the Gram-Schmidt algorithm
* Earliest known uses of some of the words of mathematics: G The entry "Gram-Schmidt orthogonalization" has some information and references on the origins of the method.
* Demos: Gram Schmidt process in plane and Gram Schmidt process in space
* Gram-Schmidt orthogonalization applet
* NAG Gram–Schmidt orthogonalization of n vectors of order m routine
* Proof: Raymond Puzio, Keenan Kidwell. "proof of Gram-Schmidt orthogonalization algorithm" (version 8). PlanetMath.org.

## Πηγές
* .
* .
* .
* .

## Παραπομπές

 

 
Κατηγορία:Γραμμική άλγεβρα 
Κατηγορία:Συναρτησιακή ανάλυση