首先引入数学上的一个概念“格点”。怎么定义格点呢?格点是n维空间中的一组具有周期性结构的点,如下图所示(二维空间的“格”)。三维空间的“格点”可以出现在一些晶体中,就像一堆整齐叠放的橘子。历史上,从18世纪末开始,拉格朗日、高斯以及后来的闵可夫斯基等数学家就开始研究“格”这个概念。
近几年,“格”已经成为计算机科学领域中研究的热点性问题之一。“格”可以看成解决安全问题的算法工具;结合计算复杂性,“格”在密码学和密码分析中应用广泛。
给定n维空间中一组线性无关向量,其整系数组合构成的集合称为格。
此处的 ( b 1 , ⋯ , b n ) (b_1,\cdots,b_n) (b1,⋯,bn)定义为格基。同一个格可以由多组不同的格基生成。 b 1 , ⋯ , b n ∈ b_1,\cdots,b_n\in b1,⋯,bn∈ R m R^m Rm,此处如果m=n,则称该“格”满秩。因为格是否满秩对它的性质研究影响不大,所以通常研究满秩的格。
举例:
格基 ( 1 , 0 ) T (1,0)^T (1,0)T与 ( 0 , 1 ) T (0,1)^T (0,1)T可以产生二维空间的所有整数格。如下图:
能产生二维空间的所有整数格的格基不唯一,还可以是: ( 1 , 1 ) T 与 ( 2 , 1 ) T , ( 2021 , 1 ) T 与 ( 1 , 2022 ) T (1,1)^T与(2,1)^T,(2021,1)^T与(1,2022)^T (1,1)T与(2,1)T,(2021,1)T与(1,2022)T,如下图:
格基 ( 1 , 1 ) T (1,1)^T (1,1)T与 ( 2 , 0 ) T (2,0)^T (2,0)T不能产生二维空间的所有整数格。如下图打“×”的为可产生的格,横纵坐标相加为偶数:
格基实系数组合生成的空间称为格的延展空间。(区别于前面定义的整数)
s p a n ( L ( B ) ) = s p a n ( B ) = { B a ∣ a ∈ R n } span(L(B))=span(B)=\lbrace Ba|a\in R^n\rbrace span(L(B))=span(B)={Ba∣a∈Rn}
格的延展空间是整个n维空间的前提:
要 求 为 满 秩 格 要求为满秩格 要求为满秩格
格基在[0,1)中实系数组合生成的空间,称为格的基本区。
P ( B ) = { B a ∣ a ∈ R n , 0 ≤ a i < 1 } P(B)=\lbrace Ba|a\in R^n,0\leq a_i<1\rbrace P(B)={Ba∣a∈Rn,0≤ai<1}
如果将格基 ( 1 , 1 ) T (1,1)^T (1,1)T与 ( 2 , 0 ) T (2,0)^T (2,0)T基本区平移放置在每个格点上,就可以形成此格的延展空间 s p a n ( L ( B ) ) span(L(B)) span(L(B)),如下图:
秩为n的格 Λ \Lambda Λ上线性无关的向量组 B = b 1 , ⋅ ⋅ ⋅ b n B=b_1,···b_n B=b1,⋅⋅⋅bn为格 Λ \Lambda Λ的基,当且仅当: P ( B ) ∩ Λ = { 0 } P(B)\cap\Lambda=\lbrace0\rbrace P(B)∩Λ={0}。
证 明 方 法 \color{red}{证明方法} 证明方法:
(1)证明充分性:当线性无关的向量组 B = b 1 , ⋅ ⋅ ⋅ b n B=b_1,···b_n B=b1,⋅⋅⋅bn为格 Λ \Lambda Λ的基时, P ( B ) ∩ Λ = { 0 } P(B)\cap\Lambda=\lbrace0\rbrace P(B)∩Λ={0}。
当 b 1 , ⋯ , b n b_1,\cdots,b_n b1,⋯,bn为 Λ \Lambda Λ的格基时,格点可以由它们的整数线性组合形成。因为 P ( b 1 , ⋯ , b n ) P(b_1,\cdots,b_n) P(b1,⋯,bn)定义为该格基的小于1的小数线性组合,所以很明显二者的交集为空集(或者理解成仅有原点重合)。
充分性证明完毕
(2)证明必要性:当 P ( B ) ∩ Λ = { 0 } P(B)\cap\Lambda=\lbrace0\rbrace P(B)∩Λ={0},线性无关的向量组 B = b 1 , ⋅ ⋅ ⋅ b n B=b_1,···b_n B=b1,⋅⋅⋅bn为格 Λ \Lambda Λ的基。
因为 Λ \Lambda Λ为秩为n的格点,且 b 1 , ⋅ ⋅ ⋅ b n b_1,···b_n b1,⋅⋅⋅bn是线性独立的,可以取 y i ∈ R y_i\in R yi∈R,使得 x = ∑ y i b i ∈ Λ x=\sum y_ib_i\in \Lambda x=∑yibi∈Λ,因为格在加减法运算里面是封闭的,所以 x ′ = ∑ ( y i − ⌊ y i ⌋ ) b i x'=\sum (y_i-\lfloor y_i\rfloor)b_i x′=∑(yi−⌊yi⌋)bi也形成格点。根据条件该格点只能为原点,所以 y i y_i yi必定为整数。
将此过程的推导形成逻辑公式如下:
当给出两组格基 B 1 , B 2 B_1,B_2 B1,B2,如何判断它们产生的格是一样的呢,也就是 L ( B 1 ) = L ( B 2 ) L(B_1)=L(B_2) L(B1)=L(B2)吗?
B 1 , B 2 B_1,B_2 B1,B2为同一个格的格基,当且仅当存在幺模矩阵U,满足 B 1 = B 2 U B_1=B_2U B1=B2U
证明充分性过程如下:
已知 L ( B 1 ) = L ( B 2 ) L(B_1)=L(B_2) L(B1)=L(B2),得出 B 2 = B 1 U , U 为 幺 模 矩 阵 B_2=B_1U,U为幺模矩阵 B2=B1U,U为幺模矩阵
因为 L ( B 1 ) = L ( B 2 ) L(B_1)=L(B_2) L(B1)=L(B2),所以 B 2 B_2 B2中的每一列 b i b_i bi都有, b i ∈ L ( B 1 ) b_i\in L(B_1) bi∈L(B1),这表明必定存在一个整数矩阵 U ∈ Z n × n U\in Z^{n\times n} U∈Zn×n,使得 B 2 = B 1 U B_2=B_1U B2=B1U。同理,也存在 V ∈ Z n × n V\in Z^{n\times n} V∈Zn×n,使得 B 1 = B 2 V B_1=B_2V B1=B2V。
所以可得:
B 2 = B 1 U = B 2 V U B_2=B_1U=B_2VU B2=B1U=B2VU
将其转置,得到:
B 2 T = ( V U ) T B 2 T B_2^T=(VU)^TB_2^T B2T=(VU)TB2T
两式相乘:
B 2 T B 2 = ( V U ) T B 2 T ( V U ) B_2^TB_2=(VU)^TB_2^T(VU) B2TB2=(VU)TB2T(VU)
转置矩阵和原矩阵行列式相等,可得:
B 2 T B 2 = ( d e t ( U V ) ) 2 d e t ( B 2 T B 2 ) B_2^TB_2=(det(UV))^2det(B_2^TB_2) B2TB2=(det(UV))2det(B2TB2)
矩阵相乘再求行列式,和分别求行列式再相乘,结果是一样的,所以:
d e t ( V ) d e t ( U ) = ± 1 det(V)det(U)=\pm 1 det(V)det(U)=±1
因为U和V均为整数矩阵,所以可得:
d e t ( U ) = d e t ( V ) = ± 1 det(U)=det(V)=\pm 1 det(U)=det(V)=±1
将上述推导过程形成一起,如下:
证明必要性过程如下:
已知 B 2 = B 1 U , U 为 幺 模 矩 阵 B_2=B_1U,U为幺模矩阵 B2=B1U,U为幺模矩阵,得出 L ( B 1 ) = L ( B 2 ) L(B_1)=L(B_2) L(B1)=L(B2)
依据 B 2 = B 1 U B_2=B_1U B2=B1U,所以 B 2 B_2 B2的每一列都包含在 L ( B 1 ) L(B_1) L(B1)中,所以 L ( B 1 ) L(B_1) L(B1) ⊆ \subseteq ⊆L ( B 2 ) (B_2) (B2)。依据幺模矩阵的性质, B 1 = B 2 U − 1 , B_1=B_2U^{-1}, B1=B2U−1,同理可得 L ( B 2 ) L(B_2) L(B2) ⊆ \subseteq ⊆L ( B 1 ) (B_1) (B1)。所以 L ( B 1 ) = L ( B 2 ) L(B_1)=L(B_2) L(B1)=L(B2)。
提 示 : 行 列 式 等 于 ± 1 的 方 阵 称 为 幺 模 矩 阵 , 幺 模 矩 阵 的 逆 依 旧 为 幺 模 矩 阵 。 \color{red}{提示:行列式等于\pm1的方阵称为幺模矩阵,幺模矩阵的逆依旧为幺模矩阵。} 提示:行列式等于±1的方阵称为幺模矩阵,幺模矩阵的逆依旧为幺模矩阵。
如 果 学 过 群 环 域 的 知 识 的 话 , 幺 模 矩 阵 在 乘 法 运 算 下 , 形 成 群 的 概 念 。 \color{red}{如果学过群环域的知识的话,幺模矩阵在乘法运算下,形成群的概念。} 如果学过群环域的知识的话,幺模矩阵在乘法运算下,形成群的概念。
此 处 矩 阵 乘 法 的 相 关 性 质 略 。 \color{red}{此处矩阵乘法的相关性质略。} 此处矩阵乘法的相关性质略。
推论1:矩阵B是 Z n Z^n Zn的格基,当且仅当它为幺模矩阵。
推论2:若属于同一个格,则两组基可以相互整系数表示
B 1 , B 2 B_1,B_2 B1,B2为同一个格的基,当且仅当可以通过下述变换进行转换:
根据行列式的性质,上式中的变换对应的变换矩阵的行列式为 ± 1 \pm1 ±1
格 Λ = L ( B ) \Lambda=L(B) Λ=L(B)的行列式定义为 d e t ( Λ ) = d e t ( B T B ) 2 det(\Lambda)=\sqrt[2]{det(B^TB)} det(Λ)=2det(BTB)。
当 Λ \Lambda Λ满秩时,矩阵B为方阵,格 Λ = L ( B ) \Lambda=L(B) Λ=L(B)的行列式直接为为 d e t ( Λ ) = ∣ d e t ( B ) ∣ det(\Lambda)=|det(B)| det(Λ)=∣det(B)∣。
推 论 1 \color{green}推论1 推论1:格的行列式与具体基无关。证明如下:
假定 B 1 与 B 2 B_1与B_2 B1与B2为格 Λ \Lambda Λ的两组不同格基,依据定义六 B 2 = B 1 U , U 为 幺 模 矩 阵 B_2=B_1U,U为幺模矩阵 B2=B1U,U为幺模矩阵。可得如下变换:
推 论 2 \color{green}推论2 推论2:格行列式的大小与格点的密度成反比。在格的延展空间中取一个n维的球K,球内格点数与 v o l ( K ) d e t ( Λ ) \frac{vol(K)}{det(\Lambda)} det(Λ)vol(K)成正比例,其中vol(K)为n维球K的体积。
推 论 3 \color{green}推论3 推论3:格的行列式等于格的基本区面积,与具体基无关
8.1 介绍
在线性代数中,Gram-Schmidt正交化是将n个线性独立的向量转变成n对正交向量。原理就是将每一个向量都正交投影到其他向量的空间维度上,以二维空间为例,如下:
由此,对于一组线性无关向量 B = b 1 , … , b n B=b_1,\dots,b_n B=b1,…,bn,其Gram-Schmidt正交化定义为如下:
其中, b i ~ \tilde{b_i} bi~是 b i b_i bi垂直于 b 1 ~ , … , b i − 1 ~ \tilde{b_1},\ldots,\widetilde{b_{i-1}} b1~,…,bi−1 的部分。
推 论 1 \color{blue}推论1 推论1: 若 i ≠ 若i\neq 若i= j j j,则 < b i ~ , b j ~ > = 0 <\tilde{b_i},\tilde{b_j}>=0 <bi~,bj~>=0
推 论 2 \color{blue}推论2 推论2:对于 1 ≤ 1\leq 1≤ i ≤ i\leq i≤ n n n,延展空间 s p a n ( b 1 , … , b i ) = s p a n ( b 1 ~ , … , b i ~ ) span(b_1,\ldots,b_i)=span(\tilde{b_1},\ldots,\tilde{b_i}) span(b1,…,bi)=span(b1~,…,bi~)。
推 论 3 \color{blue}推论3 推论3:向量 b 1 ~ , … , ~ b n \tilde{b_1},\dots,\tilde{}b_n b1~,…,~bn一般不是格 L ( b 1 , … , b n ) L(b_1,\dots,b_n) L(b1,…,bn)的格基,甚至一般都不在格上。
推 论 4 \color{blue}推论4 推论4: b 1 , ⋯ , b n b_1,\cdots,b_n b1,⋯,bn的向量顺序不同,得到的 b 1 ~ , ⋯ , b n ~ \tilde{b_1},\cdots,\tilde{b_n} b1~,⋯,bn~也不同。所以通常将这些向量类比为数列而不是集合。
8.2 应用
给定n个线性无关向量如下:
b 1 , ⋯ , b n ∈ R m b_1,\cdots,b_n\in R^m b1,⋯,bn∈Rm
进一步形成正交基,如下:
b ~ 1 ∣ ∣ b ~ 1 ∣ ∣ , ⋯ , b ~ n ∣ ∣ b ~ n ∣ ∣ \frac{\tilde b_1}{||\tilde b_1||},\cdots,\frac{\tilde b_n}{||\tilde b_n||} ∣∣b~1∣∣b~1,⋯,∣∣b~n∣∣b~n
由此,原n个线性无关向量可以表示成如下 m × n m\times n m×n矩阵:
如果m=n,该矩阵将为一个正上三角矩阵。
由此,该格的基本区体积和格的行列式可计算如下:
v o l ( P ( b 1 , ⋯ , b n ) ) = d e t ( L ( b 1 , ⋯ , b n ) ) = ∏ i = 1 n ∣ ∣ b ~ i ∣ ∣ vol(P(b_1,\cdots,b_n))=det(L(b_1,\cdots,b_n))=\prod_{i=1}^n||\tilde b_i|| vol(P(b1,⋯,bn))=det(L(b1,⋯,bn))=i=1∏n∣∣b~i∣∣
所以正交化后的结果将更加方便计算上式子。
本文可解决的问题: