我们马上就要进入 lattice 相关的讨论了。鉴于我们很熟悉线性空间,我们可以先回顾线性空间的一些性质,来方便未来研究 lattice.
线性空间(vector spaces) 一个线性空间 $V$,是 $\newcommand\R{\mathbb{R}} \R^m$ 的一个子集,满足$$\newcommand\b{\boldsymbol}\newcommand\bv{\b{v}}\alpha_1 \bv_1 + \newcommand\a{\alpha} \a_2 \bv_2 \in V,\quad \text{for all}~ \bv_1, \bv_2 \in V, \a_1, \a_2 \in \R$$
也就是说,一个线性空间,是对向量加法、标量乘法封闭的 $\R ^m$ 的子集。
线性组合(linear combinations) $\newcommand\do{,\dots,}\bv_1, \bv_2 \do \bv_k \in V$ 的一个线性组合是满足以下形式的向量: $$ \b w = \a_1 \bv_1 + \a_2 \bv_2 +\cdots + \a_k \bv_k,\quad \alpha_1\do \alpha_k \in \R$$并将上述向量构成的集合$$\{\a_1 \bv_1 + \cdots + \a_1\bv_k : \a_1\do\a_k \in \R\}$$称为 $\{\bv_1\do\bv_k\}$ 的张成空间(span).
线性无关(linearly independence) 称一个向量集合 $\bv_1\do \bv_k \in V$ 线性无关,当且仅当方程 $$\a_1 \bv_1 + \a_2\bv_2 +\cdots + \a_k\bv_k = \b 0$$的唯一解是 $\a_1 = \a_2 =\cdots=a_k = 0$. 反之则称这个向量集合线性相关(linearly dependent).
基(bases) 向量空间 $V$ 的一个基,是可以张成 $V$ 的线性无关向量集合 $\bv_1\do\bv_n$. 也就是说,任何一个向量 $w\in V$ 都可以写成 $\bv_1\do\bv_n$ 的线性组合的形式,其线性组合的系数是唯一的。
接下来,我们讨论不同的基之间的关系,以及“维度”的概念。
- 任何一个线性空间 $V$ 都有基。
- 任何两个基,含有的向量个数是相同的。基的向量个数称为 $V$ 的维度(dimension).
- 设 $\bv_1\do\bv_n$ 是 $V$ 的一个基,$\newcommand\v{\b v}\newcommand\w{\b w} \w_1\do\w_n$ 是 $V$ 中的一个向量组。我们把 $\w_j$ 写成 $\v_i$ 的线性组合的形式:$$\begin{aligned} \w_1 &= \a_{11}\v_1 + \a_{12}\v_2 + \cdots + \a_{1n} \v_n \\ \w_2 &= \a_{21}\v_1 + \a_{22}\v_2 + \cdots + \a_{2n} \v_n \\ \vdots ~~ & \qquad\qquad\qquad\vdots \\ \w_n &= \a_{n1}\v_1 + \a_{n2}\v_2 + \cdots + \a_{nn} \v_n \end{aligned}$$那么 $\w_1\do\w_n$ 也是 $V$ 的一个基,当且仅当下面矩阵的行列式不为 0:$$\begin{pmatrix}\a_{11} & \a_{12} & \cdots & \a_{1n} \\ \a_{21} & \a_{22} & \cdots & \a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ \a_{n1} & \a_{n2} & \cdots & \a_{nn} \\ \end{pmatrix}$$
我们接下来介绍如何度量向量的长度,以及向量的夹角。
点积(dot product) 设 $\v,\w \in V \subset \R ^ m$. 记 $\v, \w$ 的坐标如下:$$\v=(x_1, x_2\do x_m),\quad \w=(y_1, y_2\do y_m)$$则记 $\v$ 与 $\w$ 的点积为$$\v \cdot \w = x_1y_1 + x_2y_2 +\cdots +x_my_m$$若 $\v\cdot \w=0$,我们称 $\v$ 与 $\w$ 正交(orthogonal).
欧几里得范数(Euclidean norm) 向量 $\v$ 的长度,或称欧几里得范数,为$$\| \v \| = \sqrt{x_1 ^2 + x_2 ^2 + \cdots + x_m ^2}$$显然有 $\v\cdot\v = \|\v\| ^2$.
有了点积这个工具,接下来就可以研究角度。设 $\v,\w \in V\subset \R^m$. 我们有:
- 记 $\theta$ 为向量 $\v, \w$ 之间的角(这里我们把 $\v,\w$ 的起始点都放在原点 $\b 0$)。则 $$\v\cdot \w = \|\v\|~\|\w\|\cos\theta$$
- (Cauchy-Schwarz 不等式) 两向量的点积的绝对值,不大于向量长度的积。$$|\v\cdot\w| \leq \|\v\| ~ \|\w\|$$
显然,两向量正交,则它们夹角是 90°. 来考虑向量相互正交的基:
正交基(orthogonal basis) 线性空间 $V$ 的一个正交基,是满足以下条件的基 $\v_1\do\v_n$:$$\v_i\cdot\v_j = 0 \quad \text{for all} ~ i\neq j$$
额外地,若这个基还满足 $\|\v_i\|=1$,则我们称这个基规范正交(orthonormal).
若一个基是正交的,则很多式子都可以化简。举个例子:若 $\v_1\do\v_n$ 是正交基,一个向量 $\v = a_1\v_1 + \cdots + a_n\v_n$ 是这个基的线性组合,则有 $$\begin{aligned} \|\v\|^2 &= \| a_1\v_1 + \cdots + a_n\v_n \| ^2 \\ &= (a_1\v_1 + \cdots + a_n\v_n) \cdot (a_1\v_1 + \cdots + a_n\v_n) \\ &=\sum_{i=1} ^n \sum_{j=1} ^ n a_ia_j (\v_i \cdot v_j) \\ &= \sum_{i=1} ^n a_i^ 2 \|\v_i\| ^2\end{aligned}$$最后一步的化简,正确性源于这个基里面的向量相互正交。若这还是一个规范正交基,式子可以进一步化简为 $\|\v\| ^2 = \sum a_i ^2$.
有生成规范正交基的算法 (Gram-Schmidt),可以从任何一个向量组生成规范正交基,其张成空间不变。细节不再赘述,主要思路是将后面的向量除去所有前面向量方向上的分量。详情请阅维基百科。