Gram–Schmidts ortogonaliseringsprocess är en algoritm för att generera en ortonormerad bas (ortogonal bas med norm 1) ur en given mängd vektorer tillhörande ett inre produktrum med en skalärprodukt
⟨
⋅
,
⋅
⟩
{\displaystyle \langle \cdot ,\cdot \rangle }
.
Metoden är uppkallad efter Erhard Schmidt och Jørgen Pedersen Gram , men dök upp tidigare i verk av Laplace och Cauchy . Iwasawafaktorisering är en generalisering av metoden.
Steg 0: Ta bort vektorer ur den givna mängden till dess att mängden är linjärt oberoende . Antag att denna eventuellt ändrade mängd vektorer är
{
v
0
¯
,
…
v
¯
n
−
1
}
{\displaystyle \{{\bar {v_{0}}},\ldots {\bar {v}}_{n-1}\}}
och låt
f
_
0
=
{
1
|
v
¯
0
|
v
¯
0
}
{\displaystyle {\underline {f}}_{0}=\left\{{\frac {1}{|{\bar {v}}_{0}|}}{\bar {v}}_{0}\right\}}
.
Steg i (i =
1
,
2
,
…
{\displaystyle 1,2,\ldots }
): Antag att en bas
f
_
i
−
1
=
{
f
0
,
…
f
i
−
1
}
{\displaystyle {\underline {f}}_{i-1}=\{f_{0},\ldots f_{i-1}\}}
har konstruerats genom att ha använt vektorerna
v
¯
0
…
v
¯
i
−
1
{\displaystyle {\bar {v}}_{0}\ldots {\bar {v}}_{i-1}}
. Om
i
=
n
{\displaystyle i=n}
så är algoritmen färdig.
Låt
u
¯
=
v
¯
i
−
∑
k
=
0
i
−
1
1
|
v
¯
i
−
1
|
|
f
¯
k
|
f
¯
k
{\displaystyle {\bar {u}}={\bar {v}}_{i}-\sum _{k=0}^{i-1}{\frac {1}{|{\bar {v}}_{i-1}||{\bar {f}}_{k}|}}{\bar {f}}_{k}}
och sätt
f
_
i
=
f
_
i
−
1
∪
{
1
|
u
¯
|
u
¯
}
{\displaystyle {\underline {f}}_{i}={\underline {f}}_{i-1}\cup \{{\frac {1}{|{\bar {u}}|}}{\bar {u}}\}}
.
Här har
|
v
¯
|
{\displaystyle |{\bar {v}}|}
använts för att beteckna
⟨
v
¯
,
v
¯
⟩
{\displaystyle {\sqrt {\langle {\bar {v}},{\bar {v}}\rangle }}}
.
Algoritmen ger som resultat den ortonormerade mängden
f
_
n
=
{
f
¯
0
,
…
f
¯
n
}
{\displaystyle {\underline {f}}_{n}=\{{\bar {f}}_{0},\ldots {\bar {f}}_{n}\}}
.
Att algoritmen vid steg i,
i
>
0
{\displaystyle i>0}
kräver en linjärt oberoende mängd vektorer inses vid steget
u
¯
=
v
¯
i
−
∑
k
=
0
i
−
1
1
|
v
¯
i
−
1
|
|
f
¯
k
|
f
¯
k
{\displaystyle {\bar {u}}={\bar {v}}_{i}-\sum _{k=0}^{i-1}{\frac {1}{|{\bar {v}}_{i-1}||{\bar {f}}_{k}|}}{\bar {f}}_{k}}
. Om
v
¯
i
{\displaystyle {\bar {v}}_{i}}
här är linjärt beroende med
f
_
i
−
1
{\displaystyle {\underline {f}}_{i-1}}
, så är
u
¯
=
0
⇔
|
u
¯
|
=
0
{\displaystyle {\bar {u}}=0\Leftrightarrow |{\bar {u}}|=0}
, och uttrycket
f
_
i
=
f
_
i
−
1
∪
{
1
|
u
¯
|
u
¯
}
{\displaystyle {\underline {f}}_{i}={\underline {f}}_{i-1}\cup \{{\frac {1}{|{\bar {u}}|}}{\bar {u}}\}}
saknar mening.