外观
Lesson 2 线性方程组 I
约 3426 字大约 11 分钟
2026-03-13
本章我们将主要讨论求解线性方程组的数值方法中的比较“简单”的几类。线性方程组的求解在物理学的众多数值应用中都会遇到。因此,这是我们这个课程的一个基础。后面的许多章都会涉及。
由于这是一个非常大的一个课题,本章中我们将仅仅涉及其中的一些基础的内容,主要包括:高斯消元法、LU 分解、Cholesky 分解等。更为复杂的内容(比如奇异值分解等)将放在后面讨论。
Part 1 线性代数
首先是一些符号。一个数域 K 上面的 n 行 m 列的矩阵 A 我们一般记为:A∈Kn×m,其中数域 K 最为常见的情形是复数域 C 和实数域 R。矩阵可以视为两个矢量空间 Kn 和 Km 之间的一个线性映射。
· 矩阵的迹和行列式
当 n=m,我们称该矩阵为一个方阵。对于方阵我们可以定义它的 迹 和 行列式。一个矩阵的迹就是该矩阵对角元之和:
Tr(A)=i=1∑naii
矩阵的行列式则在求解线性方程中具有重要的意义。它的原初定义为:
det(A)=π∈P∑sign(π)a1π1a2π2⋯anπn
其中 π 表示 (12⋯n) 的一个排列而 sign(π) 则表示该排列的奇偶性,即经过奇数/偶数次对换可以恢复到原始排列。按照所谓的 Laplace 法则,矩阵的行列式还可以表达为,
det(A)=j=1∑nΔijaij
其中 i∈[1,n] 是任意一个行指标而 Δij 是矩阵元 aij 的代数余子式。 事实上,矩阵 A 的逆矩阵可以表达为
A−1=det(A)1Δ
其中 Δ 是以 Δij 为矩阵元的矩阵。由此我们看到,一个方阵的逆矩阵存在的充分必要条件是它的行列式不为零。
从上面的公式出发我们可以很容易获得求解线性方程 Ax=b 的方法,
xj=Δj/det(A),j=1,⋯,n
其中 Δj 是将原矩阵中的第 j 列换为矢量 b 所得到的矩阵之行列式的值。这个法则一般称为 克莱默法则 (Cramer's rule)。
但是,上述行列式以、逆矩阵以及线性方程求解的公式并不能直接用于数值计算。因为按照这些公式,行列式的计算涉及到 O(n!) 的计算量。这对于即使不太大的矩阵来说也过于庞大了。例如,即使对于大约 100 阶的矩阵来说(或者说求解 100 个联立的线性方程组),按照这些公式计算的话在我们有生之年都不太可能算出结果。为了获得数值上近似的解,我们需要更聪明的计算方法。
· 矩阵的阶和核
矩阵 A∈Km×n 的秩—记为 rank(A)—可以定义为从矩阵 A 中能够抽取的非奇异的子矩阵的最大的阶数。当 A 被视为 Kn→Km 的线性映射时,我们可以定义其值域为:
range(A)={y∈Km:y=A⋅x,x∈Kn}
而矩阵的秩也可以定义为其值域空间的维数:rank(A)=dim(range(A))。另一个重要的概念是矢量的线性相关。一个矩阵按照行的秩与其按照列的秩定义为线性无关的矢量的数目。严格来说,我们需要区分矩阵按照行的秩和按照列的秩。但是线性代数的基础知识告诉我们这两个是一致的。线性映射 A 的核定于为:
ker(A)={x∈Kn:A⋅x=0}
那么下列关系是成立的:
- rank(A)=rank(AT)
- rank(A)+dim(ker(A))=n
· 矢量与矩阵的模
我们讨论的矢量空间同时也是具有 范数(或者称为 模)的空间。数学中可以对一般的模进行定义。一个矢量空间 V 上的模 ∣∣⋅∣∣ 一般来说可以定义为满足下列条件的非负函数:
(1). 非负性:∣∣v∣∣≥0,∀v∈V 且 ∣∣v∣∣=0 当且仅当 v=0;
(2). 均匀性: ∣∣αv∣∣=∣α∣⋅∣∣v∣∣;∀α∈K,∀v∈V; ( 对于 K=R,∣α∣ 表示其绝对值;对于 K=C,∣α∣ 表示其模。 )
(3). 三角不等式:∣∣v+w∣∣≤∣∣v∣∣+∣∣w∣∣,∀v,w∈V.
一个常用的模是所谓的 p - 模,又称为 Hölder 模 (Hölder norm),它由下式定义:
∣∣x∣∣p=(i=1∑n∣xi∣p)1/p,∀x∈V,1≤p<∞
对于 p-模如果我们取极限 p→∞,就得到了 无穷模,它实际上仅仅挑选出矢量 x 的分量中模最大的那个:
∣∣x∣∣∞=1≤i≤nmax∣xi∣
另外一个经常用到的是 p=2 的情形。对于我们讨论的实空间和复空间来说,这个模称为相应空间的 欧氏模 (Euclidean norm):
∣∣x∣∣2=(x,x)1/2=(x†x)1/2=(i=1∑n∣xi∣2)1/2
既然矢量空间中模的定义可以有很多种,一个自然的问题是它们是否都等价呢?按照定义,矢量空间 V 上的两个模 ∣∣⋅∣∣p 和 ∣∣⋅∣∣q 被称为 等价,如果存在两个正的常数 cpq>0 和 Cpq>0 使得:
cpq∣∣x∣∣q≤∣∣x∣∣p≤Cpq∣∣x∣∣q,∀x∈V
也就是说其中对于任意的矢量,其中一个模加在另外一个模的两个正常数倍数之间。相应的这些常数 cpq 和 Cpq 被称为 等价常数。可以证明上面给出的三种不同的 p-模都是等价的。等价的模的意义在于,当我们表述矢量空间中的极限的时候,例如 limk→∞x(k)=x,我们可以用相互等价的任何模函数来表征它。事实上,有限维矢量空间中的任何模都是等价的。
定义了矢量空间上的模之后就可以随之定义 矩阵的模。对于 Km×n 上的矩阵,它的模 ∣∣⋅∣∣ 定义为:
(1). 非负性:∣∣A∣∣≥0,∀A∈Km×n 且 ∣∣A∣∣=0 当且仅当 A=0;
(2). 均匀性:∣∣αA∣∣=∣α∣⋅∣∣A∣∣;∀α∈K,∀A∈Km×n;
(3). 三角不等式:∣∣A+B∣∣≤∣∣A∣∣+∣∣B∣∣,∀A,B∈Km×n.
我们将使用同样的符号 ∣∣⋅∣∣ 来表示矩阵和矢量的模。这不会造成太大混淆因为它们的定义域是不同的。
如果矩阵的模和矢量的模满足
∣∣Ax∣∣≤∣∣A∣∣⋅∣∣x∣∣,∀x∈Kn,A∈Km×n
我们就称相应的矩阵模与矢量模 兼容。另一方面,一个矩阵模 ∣∣⋅∣∣ 被称为 服从乘法模 (sub-multiplicative norm) 如果它满足
∣∣AB∣∣≤∣∣A∣∣⋅∣∣B∣∣,∀A∈Kn×n,∀B∈Km×q
值得指出的是,并不是所有的矩阵模都是服从乘法的模。一个简单的例子是所谓的最大模,其定义为 ∣∣A∣∣Δ=max(∣aij∣)。读者可以验证它满足矩阵模的所有条件因而构成一个矩阵模。但是对于下面的矩阵:
A=B=[1111]
我们可以很容易验证 ∣∣AB∣∣Δ=2>∣∣A∣∣Δ∣∣B∣∣Δ=1。
从一个矢量空间的模出发,我们可以定义一个矩阵模如下:
∣∣A∣∣=x=0sup∣∣x∣∣∣∣Ax∣∣
这称为诱导矩阵模或自然矩阵模。可以证明这个矩阵模是与诱导它的矢量模兼容的,同时也是服从乘法的。同时,对于由矢量的 p-模所诱导的矢量模,我们也会用同样的符号来标记,例如
∣∣A∣∣p=x=0sup∣∣x∣∣p∣∣Ax∣∣p,∀x∈V,x=0
· 特殊形状的矩阵
本小节我们罗列在数值计算中经常接触到的一些特殊的矩阵。
对角矩阵 (diagonal matrix) 是指仅仅对角元 aii 不为零的矩阵。通常意义下是指方阵,但是此定义也适用于长方阵。一个矩阵 A∈Km×n,如果对 i>j 就有 aij=0,我们就称矩阵 A 为 上梯形矩阵。
相应的,如果对 i<j 就有 aij=0,我们就称矩阵 A 为 下梯形矩阵。大家可以验证,如果 m<n 的话,上梯形矩阵的非零矩阵元恰好构成一个梯形。对于 m=n 的方阵而言,上/下梯形矩阵分别称为上/下三角矩阵。
上下三角矩阵的一些性质是容易验证的。它的行列式就是对角元的乘积。而且它的逆矩阵仍然维持原矩阵的上下三角的性质。如果上/下三角矩阵的对角元都等于 1,这样的上/下三角矩阵称为单位上/下三角矩阵。容易验证,两个单位上下三角矩阵的乘积仍然是单位上下三角矩阵。
三角矩阵的概念可以稍加推广到所谓的 带型矩阵 (banded matrices)。一般来说,对于 A∈Km×n,我们称其具有 上带 p,如果对 i>j+p 必定有 aij=0;相应的,我们称其具有 下带 q 如果对于 j>i+q 必定有 aij=0。
利用这个概念我们可以统一上面提及的几种矩阵。例如,对角矩阵是 p=q=0 的带型矩阵;下梯形矩阵是具有 p=m−1,q=0 的带型矩阵;上梯形矩阵则是具有 p=0,q=n−1 的带型矩阵。
如果带型矩阵的 p=q=1,则该带状矩阵称为 三对角矩阵 (tridiagonal matrix)。另外两种情形是 上双对角 (p=0,q=1) 和 下双对角 (p=1,q=0) 矩阵。另外一类我们后面会用到的矩阵是所谓的上/下 Hessenberg 矩阵。下 Hessenberg 矩阵具有 p=m−1,q=1 而上 Hessenberg 矩阵则具有 p=1,q=n−1。
· 正定矩阵
另外一类重要的矩阵称为正定矩阵。它们与相应的二次型密切联系在一起。二次型起源于矢量空间中的标量积 (inner product) 运算。矢量空间 V 中的标量积可以视为 V×V 到 K 的一个映射 (⋅,⋅),它满足:
- 双线性:(αx+βy,z)=α(x,z)+β(y,z),∀x,y,z∈V,∀α,β∈K;
- 厄米性:(x,y)=(y,x)∗,∀x,y∈V;
- 正定性:(x,x)>0,∀x∈V 除非 x=0.
对于空间 Cn 来说,我们可以内积为:
(x,y)=y†⋅x=i=1∑nyi∗xi.
注意这个次序与我们物理学家在量子力学中习惯的 Dirac 符号的顺序恰好相反。在量子力学中我们通常定义 (x,y)=x†⋅y=⟨x∣y⟩。
这个标量积自然地生成前面提到的欧氏模(也就是 p=2 的 p-模),
∣∣x∣∣22≡(x,x)=i=1∑n∣xi∣2.
对于上述的标量积,我们显然有
(Ax,y)=(x,A†y),
其中 A∈Cn×n,x,y∈Cn。
如果对于 Cn×n (或 Rn×n) 中的矩阵 A 以及任意的非零矢量 x∈V 都有 (Ax,x) 是正的实数,我们就称矩阵 A 是 正定的。如果 > 换为 ≥ 且等号有可能成立,我们就称 A 是 半正定的。一个实正定矩阵并不一定是对称的,但是只要它的对称部分是正定的就可以了。对于 Cn×n 中的复矩阵 A,它是正定的条件要求 A 必定是厄米的(从而其本征值均为实数)并且具有正的本征值。这个结论的一个推论是,正定的复矩阵必定是不奇异的。
最后,让我们提及关于复厄米正定矩阵的下列性质。令 A∈Cn×n 为厄米矩阵。那么它是正定矩阵当且仅当下列等价的条件之一获得满足:
- (Ax,x)>0,∀x=0,x∈Cn;
- A 的主子矩阵的本征值都是正的;
- A 的主子矩阵的行列式都是正的(又称 Sylvester 判据);
- 存在一个非奇异矩阵 H∈Rn×n 使得 A=H†H.
正是这最后一个条件使得我们对于正定的厄米矩阵可以采用所谓的 Cholesky 分解,参见第 6 节。事实上,非奇异的 H 不仅仅是存在的,我们还可以将其选为上三角矩阵(从而 H† 为下三角矩阵)。
更新日志
2026/9/22 10:30
查看所有更新日志
76ef6-computational-physics于