格拉姆-施密特正交化

在线性代数中，如果内积空间上的一组向量能够组成一个子空间，那么这一组向量就称为这个子空间的一个基。Gram－Schmidt正交化提供了一种方法，能够通过这一子空间上的一个基得出子空间的一个正交基，并可进一步求出对应的标准正交基。 这种正交化方法以约尔根·佩德森·格拉姆（英语：Jørgen Pedersen Gram）和艾哈德·施密特（英语：Erhard Schmidt）命名，然而比他们更早的拉普拉斯（Laplace）和柯西（Cauchy）已经发现了这一方法。在李群分解中，这种方法被推广为岩泽分解（Iwasawa decomposition）。 在数值计算中，Gram－Schmidt正交化是数值不稳定的，计算中累积的舍入误差会使最终结果的正交性变得很差。因此在实际应用中通常使用豪斯霍尔德变换或Givens旋转进行正交化。可以用于矩阵计算。 V n {\displaystyle {\boldsymbol {V}}^{n}} ：维数为n 的内积空间 v ∈ V n {\displaystyle {\boldsymbol {v}}\in {\boldsymbol {V}}^{n}} ： V n {\displaystyle {\boldsymbol {V}}^{n}} 中的元素，可以是向量、函数，等等 ⟨ v 1 , v 2 ⟩ {\displaystyle \langle {\boldsymbol {v}}_{1},{\boldsymbol {v}}_{2}\rangle } ： v 1 {\displaystyle {\boldsymbol {v}}_{1}} 与 v 2 {\displaystyle {\boldsymbol {v}}_{2}} 的内积 s p a n { v 1 , v 2 , … , v n } {\displaystyle \mathrm {span} \{{\boldsymbol {v}}_{1},{\boldsymbol {v}}_{2},\ldots ,{\boldsymbol {v}}_{n}\}} ： v 1 {\displaystyle {\boldsymbol {v}}_{1}} 、 v 2 {\displaystyle {\boldsymbol {v}}_{2}} …… v n {\displaystyle {\boldsymbol {v}}_{n}} 张成的子空间 p r o j v u = ⟨ u , v ⟩ ⟨ v , v ⟩ v {\displaystyle \mathrm {proj} _{\boldsymbol {v}}\,{\boldsymbol {u}}={\langle {\boldsymbol {u}},{\boldsymbol {v}}\rangle \over \langle {\boldsymbol {v}},{\boldsymbol {v}}\rangle }{\boldsymbol {v}}} ： u {\displaystyle {\boldsymbol {u}}} 在 v {\displaystyle {\boldsymbol {v}}} 上的投影 Gram-Schmidt正交化的基本想法，是利用投影原理在已有正交基的基础上构造一个新的正交基。 设 v ∈ V n {\displaystyle {\boldsymbol {v}}\in {\boldsymbol {V^{n}}}} 。 V k {\displaystyle {\boldsymbol {V}}^{k}} 是 V n {\displaystyle {\boldsymbol {V}}^{n}} 上的 k {\displaystyle k} 维子空间，其标准正交基为 { η 1 , … , η k } {\displaystyle \{{\boldsymbol {\eta }}_{1},\ldots ,{\boldsymbol {\eta }}_{k}\}} ，且 v {\displaystyle {\boldsymbol {v}}} 不在 V k {\displaystyle {\boldsymbol {V}}^{k}} 上。由投影原理知， v {\displaystyle {\boldsymbol {v}}} 与其在 V k {\displaystyle {\boldsymbol {V}}^{k}} 上的投影 p r o j V k v {\displaystyle \mathrm {proj} _{\boldsymbol {V^{k}}}{\boldsymbol {v}}} 之差 β = v − ∑ i = 1 k p r o j η i v = v − ∑ i = 1 k ⟨ v , η i ⟩ η i {\displaystyle {\boldsymbol {\beta }}={\boldsymbol {v}}-\sum _{i=1}^{k}\mathrm {proj} _{{\boldsymbol {\eta }}_{i}}\,{\boldsymbol {v}}={\boldsymbol {v}}-\sum _{i=1}^{k}\langle {\boldsymbol {v}},{\boldsymbol {\eta }}_{i}\rangle {\boldsymbol {\eta }}_{i}} 是正交于子空间 V k {\displaystyle {\boldsymbol {V}}^{k}} 的，亦即 β {\displaystyle {\boldsymbol {\beta }}} 正交于 V k {\displaystyle {\boldsymbol {V}}^{k}} 的正交基 η i {\displaystyle {\boldsymbol {\eta }}_{i}} 。因此只要将 β {\displaystyle {\boldsymbol {\beta }}} 单位化，即 η k + 1 = β ‖ β ‖ = β ⟨ β , β ⟩ {\displaystyle {\boldsymbol {\eta }}_{k+1}={\frac {\boldsymbol {\beta }}{\|{\boldsymbol {\beta }}\|}}={\frac {\boldsymbol {\beta }}{\sqrt {\langle {\boldsymbol {\beta }},{\boldsymbol {\beta }}\rangle }}}} 那么 { η 1 , … , η k , η k + 1 } {\displaystyle \{{\boldsymbol {\eta }}_{1},\ldots ,{\boldsymbol {\eta }}_{k},{\boldsymbol {\eta }}_{k+1}\}} 就是 V k {\displaystyle {\boldsymbol {V}}^{k}} 在 v {\displaystyle {\boldsymbol {v}}} 上扩展的子空间 s p a n { v , η 1 , . . . , η k } {\displaystyle \mathrm {span} \{{\boldsymbol {v}},{\boldsymbol {\eta }}_{1},...,{\boldsymbol {\eta }}_{k}\}} 的标准正交基。 根据上述分析，对于向量组 { v 1 , … , v m } {\displaystyle \{{\boldsymbol {v}}_{1},\ldots ,{\boldsymbol {v}}_{m}\}} 张成的空间 V m {\displaystyle {\boldsymbol {V}}^{m}} ( m < n {\displaystyle m<n} )，只要从其中一个向量（不妨设为 v 1 {\displaystyle {\boldsymbol {v}}_{1}} ）所张成的一维子空间 s p a n { v 1 } {\displaystyle \mathrm {span} \{{\boldsymbol {v}}_{1}\}} 开始（注意到 v 1 {\displaystyle {\boldsymbol {v}}_{1}} 就是 s p a n { v 1 } {\displaystyle \mathrm {span} \{{\boldsymbol {v}}_{1}\}} 的正交基），重复上述扩展构造正交基的过程，就能够得到 V n {\displaystyle {\boldsymbol {V}}^{n}} 的一组正交基。这就是Gram-Schmidt正交化。 首先需要确定已有基底向量的顺序，不妨设为 { v 1 , … , v n } {\displaystyle \{{\boldsymbol {v}}_{1},\ldots ,{\boldsymbol {v}}_{n}\}} 。Gram-Schmidt正交化的过程如下： 这样就得到 s p a n { v 1 , … , v n } {\displaystyle \mathrm {span} \{{\boldsymbol {v}}_{1},\ldots ,{\boldsymbol {v}}_{n}\}} 上的一组正交基 { β 1 , … , β n } {\displaystyle \{{\boldsymbol {\beta }}_{1},\ldots ,{\boldsymbol {\beta }}_{n}\}} ，以及相应的标准正交基 { η 1 , … , η n } {\displaystyle \{{\boldsymbol {\eta }}_{1},\ldots ,{\boldsymbol {\eta }}_{n}\}} 。 例 考察如下欧几里得空间Rn中向量的集合，欧氏空间上内积的定义为<a, b> = bTa： S = { v 1 = ( 3 1 ) , v 2 = ( 2 2 ) } . {\displaystyle S=\lbrace {\boldsymbol {v}}_{1}={\begin{pmatrix}3\\1\end{pmatrix}},{\boldsymbol {v}}_{2}={\begin{pmatrix}2\\2\end{pmatrix}}\rbrace .} 下面作Gram－Schmidt正交化，以得到一组正交向量： β 1 = v 1 = ( 3 1 ) {\displaystyle {\boldsymbol {\beta }}_{1}={\boldsymbol {v}}_{1}={\begin{pmatrix}3\\1\end{pmatrix}}} β 2 = v 2 − p r o j β 1 v 2 = ( 2 2 ) − p r o j ( 3 1 ) ( 2 2 ) = ( − 2 / 5 6 / 5 ) {\displaystyle {\boldsymbol {\beta }}_{2}={\boldsymbol {v}}_{2}-\mathrm {proj} _{{\boldsymbol {\beta }}_{1}}\,{\boldsymbol {v}}_{2}={\begin{pmatrix}2\\2\end{pmatrix}}-\mathrm {proj} _{\begin{pmatrix}3\\1\end{pmatrix}}\,{\begin{pmatrix}2\\2\end{pmatrix}}={\begin{pmatrix}-2/5\\6/5\end{pmatrix}}} 下面验证向量 β 1 {\displaystyle {\boldsymbol {\beta }}_{1}} 与 β 2 {\displaystyle {\boldsymbol {\beta }}_{2}} 的正交性： ⟨ β 1 , β 2 ⟩ = ⟨ ( 3 1 ) , ( − 2 / 5 6 / 5 ) ⟩ = − 6 5 + 6 5 = 0. {\displaystyle \langle {\boldsymbol {\beta }}_{1},{\boldsymbol {\beta }}_{2}\rangle =\left\langle {\begin{pmatrix}3\\1\end{pmatrix}},{\begin{pmatrix}-2/5\\6/5\end{pmatrix}}\right\rangle =-{\frac {6}{5}}+{\frac {6}{5}}=0.} 将这些向量单位化： η 1 = 1 10 ( 3 1 ) {\displaystyle {\boldsymbol {\eta }}_{1}={1 \over {\sqrt {10}}}{\begin{pmatrix}3\\1\end{pmatrix}}} η 2 = 1 8 5 ( − 2 / 5 6 / 5 ) {\displaystyle {\boldsymbol {\eta }}_{2}={1 \over {\sqrt {8 \over 5}}}{\begin{pmatrix}-2/5\\6/5\end{pmatrix}}} 于是 { η 1 , η 2 } {\displaystyle \{{\boldsymbol {\eta }}_{1},{\boldsymbol {\eta }}_{2}\}} 就是 s p a n { v 1 , v 2 } {\displaystyle \mathrm {span} \{{\boldsymbol {v}}_{1},{\boldsymbol {v}}_{2}\}} 的一组标准正交基底。 随着内积空间上内积的定义以及构成内积空间的元素的不同，Gram-Schmidt正交化也表现出不同的形式。 例如，在实向量空间上，内积定义为： ⟨ a , b ⟩ = b T a {\displaystyle \langle {\boldsymbol {a}},{\boldsymbol {b}}\rangle ={\boldsymbol {b}}^{T}{\boldsymbol {a}}} 在复向量空间上，内积定义为： ⟨ a , b ⟩ = b H a {\displaystyle \langle {\boldsymbol {a}},{\boldsymbol {b}}\rangle ={\boldsymbol {b}}^{H}{\boldsymbol {a}}} 函数之间的内积则定义为： ⟨ f ( x ) , g ( x ) ⟩ = ∫ − ∞ ∞ f ( x ) g ( x ) d x {\displaystyle \langle f(x),g(x)\rangle =\int _{-\infty }^{\infty }f(x)g(x)dx} 与之对应，相应的Gram－Schmidt正交化就具有不同的形式。 数学主题 内积空间 内积 正交 QR分解 Hazewinkel, Michiel (编), Orthogonalization, 数学百科全书, Springer, 2001, ISBN 978-1-55608-010-4  Harvey Mudd College Math Tutorial on the Gram-Schmidt algorithm Earliest known uses of some of the words of mathematics: G （页面存档备份，存于互联网档案馆） 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. （页面存档备份，存于互联网档案馆）