在线性代数中，如果内积空间上的一组向量能够组成一个子空间，那么这一组向量就称为这个子空间的一个基。**Gram－Schmidt正交化**提供了一种方法，能够通过这一子空间上的一个基得子空间的一个正交基，并可进一步求出对应的标准正交基。

这种正交化方法以约尔根·佩德森·格拉姆（英语：）和艾哈德·施密特（英语：）命名，然而比他们更早的拉普拉斯（Laplace）和柯西（Cauchy）已经发现了这一方法。在李群分解中，这种方法被推广为岩泽分解（Iwasawa decomposition）。

在数值计算中，Gram－Schmidt正交化是数值不稳定的，计算中累积的舍入误差会使最终结果的正交性变得很差。因此在实际应用中通常使用豪斯霍尔德变换或Givens旋转进行正交化。可以用于矩阵计算。

记法
--

* {\boldsymbol {V}}^{n}：维数为*n* 的内积空间
* {\boldsymbol {v}}\in {\boldsymbol {V}}^{n}：{\boldsymbol {V}}^{n}中的元素，可以是向量、函数，等等
* \langle {\boldsymbol {v}}\_{1},{\boldsymbol {v}}\_{2}\rangle ：{\boldsymbol {v}}\_{1}**与{\boldsymbol {v}}\_{2}的内积**
* {\mathrm {span}}\{{\boldsymbol {v}}\_{1},{\boldsymbol {v}}\_{2},\ldots ,{\boldsymbol {v}}\_{n}\}：{\boldsymbol {v}}\_{1}、{\boldsymbol {v}}\_{2}……{\boldsymbol {v}}\_{n}张成的子空间
* {\mathrm {proj}}\_{{{\boldsymbol {v}}}}\,{\boldsymbol {u}}={\langle {\boldsymbol {u}},{\boldsymbol {v}}\rangle \over \langle {\boldsymbol {v}},{\boldsymbol {v}}\rangle }{\boldsymbol {v}}：{\boldsymbol {u}}在{\boldsymbol {v}}上的投影

基本思想
----

图1 {\boldsymbol {v}}在{\boldsymbol {V}}^{2}上投影，构造{\boldsymbol {V}}^{3}上的正交基{\boldsymbol {\beta }}
Gram-Schmidt正交化的基本想法，是利用投影原理在已有正交基的基础上构造一个新的正交基。

设{\boldsymbol {v}}\in {\boldsymbol {V^{n}}}。{\boldsymbol {V}}^{k}是{\boldsymbol {V}}^{n}上的k维子空间，其标准正交基为\{{\boldsymbol {\eta }}\_{1},\ldots ,{\boldsymbol {\eta }}\_{k}\}，且{\boldsymbol {v}}不在{\boldsymbol {V}}^{k}上。由投影原理知，{\boldsymbol {v}}与其在{\boldsymbol {V}}^{k}上的投影{\mathrm {proj}}\_{{{\boldsymbol {V^{k}}}}}{\boldsymbol {v}}之差

{\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}

  

是正交于子空间{\boldsymbol {V}}^{k}的，亦即{\boldsymbol {\beta }}正交于{\boldsymbol {V}}^{k}的正交基{\boldsymbol {\eta }}\_{i}。因此只要将{\boldsymbol {\beta }}单位化，即

{\boldsymbol {\eta }}\_{{k+1}}={\frac {{\boldsymbol {\beta }}}{\|{\boldsymbol {\beta }}\|}}={\frac {{\boldsymbol {\beta }}}{{\sqrt {\langle {\boldsymbol {\beta }},{\boldsymbol {\beta }}\rangle }}}}
那么\{{\boldsymbol {\eta }}\_{1},\ldots ,{\boldsymbol {\eta }}\_{{k}},{\boldsymbol {\eta }}\_{{k+1}}\}就是{\boldsymbol {V}}^{k}在{\boldsymbol {v}}上扩展的子空间{\mathrm {span}}\{{\boldsymbol {v}},{\boldsymbol {\eta }}\_{1},...{\boldsymbol {\eta }}\_{k}\}的标准正交基。

根据上述分析，对于向量组\{{\boldsymbol {v}}\_{1},\ldots ,{\boldsymbol {v}}\_{{m}}\}张成的空间{\boldsymbol {V}}^{m} (m<n)，只要从其中一个向量（不妨设为{\boldsymbol {v}}\_{1}）所张成的一维子空间{\mathrm {span}}\{{\boldsymbol {v}}\_{1}\}开始（注意到{\boldsymbol {v}}\_{1}就是{\mathrm {span}}\{{\boldsymbol {v}}\_{1}\}的正交基），重复上述扩展构造正交基的过程，就能够得到{\boldsymbol {V}}^{n} 的一组正交基。这就是**Gram-Schmidt正交化**。

算法
--

首先需要确定已有基底向量的顺序，不妨设为\{{\boldsymbol {v}}\_{1},\ldots ,{\boldsymbol {v}}\_{{n}}\}。Gram-Schmidt正交化的过程如下：

|  |  |  |  |
| --- | --- | --- | --- |
|  | {\boldsymbol {\beta }}\_{1}={\boldsymbol {v}}\_{1}, |  | {\boldsymbol {\eta }}\_{1}={{\boldsymbol {\beta }}\_{1} \over \|{\boldsymbol {\beta }}\_{1}\|} |
|  | {\boldsymbol {\beta }}\_{2}={\boldsymbol {v}}\_{2}-\langle {\boldsymbol {v}}\_{2},{\boldsymbol {\eta }}\_{1}\rangle {\boldsymbol {\eta }}\_{1}, |  | {\boldsymbol {\eta }}\_{2}={{\boldsymbol {\beta }}\_{2} \over \|{\boldsymbol {\beta }}\_{2}\|} |
|  | {\boldsymbol {\beta }}\_{3}={\boldsymbol {v}}\_{3}-\langle {\boldsymbol {v}}\_{3},{\boldsymbol {\eta }}\_{1}\rangle {\boldsymbol {\eta }}\_{1}-\langle {\boldsymbol {v}}\_{3},{\boldsymbol {\eta }}\_{2}\rangle {\boldsymbol {\eta }}\_{2}, |  | {\boldsymbol {\eta }}\_{3}={{\boldsymbol {\beta }}\_{3} \over \|{\boldsymbol {\beta }}\_{3}\|} |
|  | \vdots  |  | \vdots  |
|  | {\boldsymbol {\beta }}\_{n}={\boldsymbol {v}}\_{n}-\sum \_{{i=1}}^{{n-1}}\langle {\boldsymbol {v}}\_{n},{\boldsymbol {\eta }}\_{i}\rangle {\boldsymbol {\eta }}\_{i}, |  | {\boldsymbol {\eta }}\_{n}={{\boldsymbol {\beta }}\_{n} \over \|{\boldsymbol {\beta }}\_{n}\|} |

这样就得到{\mathrm {span}}\{{\boldsymbol {v}}\_{1},\ldots ,{\boldsymbol {v}}\_{n}\}上的一组正交基\{{\boldsymbol {\beta }}\_{1},\ldots ,{\boldsymbol {\beta }}\_{n}\}，以及相应的标准正交基\{{\boldsymbol {\eta }}\_{1},\ldots ,{\boldsymbol {\eta }}\_{n}\}。

  

例
考察如下欧几里得空间**R***n*中向量的集合，欧氏空间上内积的定义为<***a***, ***b***> = ***b****T****a***：

S=\lbrace {\boldsymbol {v}}\_{1}={\begin{pmatrix}3\\1\end{pmatrix}},{\boldsymbol {v}}\_{2}={\begin{pmatrix}2\\2\end{pmatrix}}\rbrace .
下面作Gram－Schmidt正交化，以得到一组正交向量：

{\boldsymbol {\beta }}\_{1}={\boldsymbol {v}}\_{1}={\begin{pmatrix}3\\1\end{pmatrix}}
{\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}}
下面验证向量{\boldsymbol {\beta }}\_{1}与{\boldsymbol {\beta }}\_{2}的正交性：

\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 65}+{\frac 65}=0.
将这些向量单位化：

{\boldsymbol {\eta }}\_{1}={1 \over {\sqrt {10}}}{\begin{pmatrix}3\\1\end{pmatrix}}
{\boldsymbol {\eta }}\_{2}={1 \over {\sqrt {8 \over 5}}}{\begin{pmatrix}-2/5\\6/5\end{pmatrix}}
于是\{{\boldsymbol {\eta }}\_{1},{\boldsymbol {\eta }}\_{{2}}\}就是 {\mathrm {span}}\{{\boldsymbol {v}}\_{1},{\boldsymbol {v}}\_{2}\} 的一组标准正交基底。

不同的形式
-----

随着内积空间上内积的定义以及构成内积空间的元素的不同，Gram-Schmidt正交化也表现出不同的形式。

例如，在实向量空间上，内积定义为：

\langle {\boldsymbol {a}},{\boldsymbol {b}}\rangle ={\boldsymbol {b}}^{T}{\boldsymbol {a}}
在复向量空间上，内积定义为：

\langle {\boldsymbol {a}},{\boldsymbol {b}}\rangle ={\boldsymbol {b}}^{H}{\boldsymbol {a}}
函数之间的内积则定义为：

\langle f(x),g(x)\rangle =\int \_{{-\infty }}^{{\infty }}f(x)g(x)dx
与之对应，相应的Gram－Schmidt正交化就具有不同的形式。

参见
--

* icon数学主题

* 内积空间
* 内积
* 正交
* QR分解

外部链接
----

* Hazewinkel, Michiel (编), , 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. （页面存档备份，存于）

|  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
线性代数的相关概念 |
| --- |
|  |
| 重要概念 | 
* 标量
* 向量
* 向量空间
* 向量子空间

* 线性生成空间
* 线性映射
* 投影
* 線性無關
* 线性组合

* 基
* 標記
* 列空间
* 行空间
* 零空间
* 对偶空间
* 正交
* 特征值
* 特征向量

* 数量积
* 内积空间
* 点乘
* 轉置
* 格拉姆-施密特正交化
* 线性方程组
* 克萊姆法則

 |
|  |
| 矩阵 | 
* 矩阵
* 矩陣乘法
* 矩阵分解
* 行列式
* 子式和余子式
* 矩阵的秩
* 克萊姆法則
* 逆矩阵
* 高斯消去法
* 线性变换
* 分块矩阵

 |
|  |
| 数值线性代数 | 
* 浮点数
* 数值稳定性
* 基础线性代数程序集
* 稀疏矩阵

 |

 |