在线性代数中,如果内积空间上的一组向量能够组成一个子空间,那么这一组向量就称为这个子空间的一个基。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}上的投影
基本思想
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),只要从其中一个向量(不妨设为 \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}_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\|}
|-
|| ||align="center"|\vdots
|| ||align="center"|\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 \}。
;例
考察如下欧几里得空间Rn中向量的集合,欧氏空间上内积的定义为 = bTa:
: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 = -\frac65 + \frac65 = 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正交化就具有不同的形式。
参见
- 内积空间
- 内积
- 正交
- QR分解
外部链接
*
- [https://web.archive.org/web/20160402140129/https://www.math.hmc.edu/calculus/tutorials/gramschmidt/gramschmidt.pdf Harvey Mudd College Math Tutorial on the Gram-Schmidt algorithm]
- [http://jeff560.tripod.com/g.html Earliest known uses of some of the words of mathematics: G]
- Demos: [https://web.archive.org/web/20090507102143/http://www.bigsigma.com/en/demo/gram-schmidt-plane Gram Schmidt process in plane] and [https://web.archive.org/web/20090507102222/http://www.bigsigma.com/en/demo/gram-schmidt-space Gram Schmidt process in space]
- [http://www.math.ucla.edu/~tao/resource/general/115a.3.02f/GramSchmidt.html Gram-Schmidt orthogonalization applet]
- [http://www.nag.co.uk/numeric/fl/nagdoc_fl24/html/F05/f05conts.html NAG Gram–Schmidt orthogonalization of n vectors of order m routine]
- Proof: [http://planetmath.org/ProofOfGramSchmidtOrthogonalizationProcedure Raymond Puzio, Keenan Kidwell. "proof of Gram-Schmidt orthogonalization algorithm" (version 8). PlanetMath.org.]
评论 (0)