大部分教材一开始便会讨论行列式和矩阵,这当然是从实用的角度编排的。我们这里则更关注学科的完整性和概念的连贯性,从线性代数的基础研究对象讨论起。在抽象代数中我们已经意识到,代数学其实就是一门关系结构学,不同的学科差别只是所研究的具体结构不同而已。
1. 线性空间
1.1 向量和线性空间
线性代数讨论的对象是向量,大家熟悉的空间(平面)中向量的概念是:一条有方向的线段。空间向量只关心方向和长度,它的起始、结束点并不重要。解析几何中规定了原点和坐标,将一个向量平移,使其起始点和原点重合,那么结束点的坐标((x,y,z))就用来表示这个向量。这里务必要区分开坐标和向量的差别,坐标仅表示一个点,而向量是有向线段,但坐标可以唯一表示某个向量。
空间(平面)的向量一般叫三维(二维)向量,受坐标表示式的启发,容易将向量的概念扩展到更高维中(甚至可数无限维):((x_1,x_2,cdots,x_n))。但在数学上,仅做这样的简单扩展还是不够的,因为它还不是一个代数结构。那什么样叫代数结构?简单说就是一个集合,它在一些运算下封闭,并且满足一定的运算律。现在就从向量的直观性质出发,看看用代数语言如何给其下定义。
首先我们讨论的是一个集合(V),它的元素在加法下构成一个交换群(结合律、单位元、相反数、可交换)。另外有一个域(K)(加法交换群、乘法交换群、分配率),它与(V)有运算(K imes Vmapsto V)。这个运算满足式(1)的条件((k,lin K,\,alpha,etain V)),其中第二个条件可以把域的乘法当做映射的复合,最后两个条件就是分配率。满足这些条件的集合(V)称为是(K)上的向量空间或线性空间(linear lpace),其中的元素就叫向量(vector)。
[1alpha=alpha;quad (kl)alpha = k(lalpha);quad (k+l)alpha=kalpha+lalpha;quad k(alpha+eta)=kalpha+keta ag{1}]
要注意(V)中的加法和(K)中的加法是不同的,(K)中的乘法和(K imes V)中的乘法也是不同的,并且(V)的零元和(K)的零元也不同,但一般它们不会产生混淆,故使用相同的记法。这个向量定义并不受维度限制,它的范围比坐标形式更加广泛。反之容易看出,坐标向量在特定维度和数域下形成一个线性空间。今后坐标向量我们用以下矩阵形式表示,它们分别也叫行向量、列向量。
[[a_1:a_2:cdots:a_n]quadegin{bmatrix}a_1\a_2\vdots\a_nend{bmatrix} ag{2}]
对于两个线性空间(V_1,V_2),如果它们之间存在一一映射(sigma),满足式子(3)中的条件,则称这两个线性空间同构。同构的线性空间的结构是一模一样的,可以等价对待。
[sigma(alpha+eta)=sigma(alpha)+sigma(eta);quad sigma(kalpha)=ksigma(alpha) ag{3}]
• 求证:(kalpha=0)的充要条件是(k=0veealpha=0);
• 求证:任何域都是其子域上的线性空间。
与任何一个代数结构一样,我们现在需要定义线性子空间。由于线性空间的讨论对象是(V),所以不必要在(K)上作限制,而是讨论(V)的一个子集(V')。(V')要想成为线性空间,其实只要保证(V')的加法以及数乘封闭(公式(4)),其它运算律是自然成立的,满足这样条件的子集(V')就叫(V)的线性子空间。容易证明,线性子空间的交(V_1cap V_2)也是线性子空间。
[alpha+etain V',quad kalphain V'quad forall(kin K,\,alpha,etain V') ag{4}]
线性空间的某个向量组({alpha_1,alpha_2,cdots,alpha_n}),让它们进行任意的乘法和加法运算,根据运算律总可以化简为(5)的形式,这也正是“线性”的表现。容易证明(5)式所有元素组成的集合是一个线性子空间,它被称为({alpha_1,alpha_2,cdotsalpha_n})的生成子空间,记作(L(alpha_1,alpha_2,cdots,alpha_n))或(left<alpha_1,alpha_2,cdots,alpha_n ight>)。显然生成子空间是包含向量组的最小线性子空间。
[eta=k_1alpha_1+k_2alpha_2+cdots+k_nalpha_n ag{5}]
2.2 线性相关
由以上讨论我们知道,向量之间的关系只能以式子(4)的形式体现,想要进一步分析线性空间的结构,也就必须分析清楚这样的关系。首先式子(5)叫做(alpha_1,alpha_2,cdots,alpha_n)的一个线性组合,这样的(eta)称为可以被(alpha_1,alpha_2,cdots,alpha_n)线性表出。这个概念还有一个更简洁的等价说法,如果(6)式成立时存在(k_i e 0),则称(alpha_1,alpha_2,cdots,alpha_n)线性相关,否则称为线性无关。显然线性相关的等价条件是:存在(alpha_i),它可由其它元素线性表出。对含有无限个元素的向量组,它们线性无关可以定义为:不存在线性相关的有限子集。
[k_1alpha_1+k_2alpha_2+cdots+k_nalpha_n=0 ag{6}]
• (alpha_1,alpha_2,cdots,alpha_n)线性无关,式(5)中如果(k_i e 0),则将(alpha_i)替换为(eta)后,向量组仍然线性无关。
两个向量组如果可以互相线性表出,就称它们是等价向量组。一个线性相关的向量组(线性空间)总是等价于它的一个真子集,对于那些找不到等价有限真子集的向量组(线性空间),对它的讨论也就到此为止了,以下总假设向量组(线性空间)等价于它的有限真子集(其实对于无限的场景,利用Zorn引理也可证得极大无关组的存在性)。向量组中的每个元素都可以由这个真子集线性表出,容易证明线性表出的方法(系数(k_i))唯一的充要条件是:这个真子集是线性无关的,这样的子集就叫向量组的极大线性无关组。
选定一个极大线性无关组后,向量组的每个元素都可以由它们唯一线性表出,特别地,线性空间由它的一个极大线性无关组完全确定。这时我们自然有一个问题:不同的极大线性无关组之间有什么关系?它们的个数相同吗?在选定极大线性无关组(alpha_1,alpha_2,cdots,alpha_n)后,任意选取无关组(eta_1,eta_2,cdots,eta_m),且假设(eta_j=sum a_{ij}alpha_i)。由于({eta_j})线性无关,则方程(sum{eta_j x_j}=0)仅有零解,将其展开为({alpha_i})的线性组合,并由({alpha_i})的无关性知方程组(7)成立。
[left{egin{matrix}a_{11}x_1+a_{12}x_2+cdots+a_{1m}x_m=0\ a_{21}x_1+a_{22}x_2+cdots+a_{2m}x_m=0\ cdots:cdots\ a_{n1}x_1+a_{n2}x_2+cdots+a_{nm}x_m=0end{matrix} ight. ag{7}]
可以使用消元法解方程组(7)(详细见下节),由于它没有非零解,所以必须有(mleq n),这就是说线性无关组的元素个数都不大于(n)。所以向量组如果有不同的极大线性无关组,它们元素的个数一定相等,这个数是向量组的恒定值,称为向量组的秩,记作( ext{rank}\,S),在线性空间中这个值也叫空间的维度,记作(dim{V})。秩和维度是向量组(线性空间)的基本特征,任何元素都可以按照(5)式得到唯一的坐标形式((k_1,k_2,cdots,k_n))。特别地,在线性空间中,极大线性无关组又叫线性空间的基,而且容易证明,(n)维线性空间其实和(n)维坐标向量空间是同构的,我以后可以直接用坐标向量来表示一般向量。
• 求证:等价向量组的秩相等。
2.3 直和
现在继续研究线性空间的结构,有过抽象代数的经验,我们知道接下来要考虑空间在两个维度的分解,一个是直和分解,另一个是商群分解。本节只讨论直和分解,首先容易证明线性子空间的和(V_1+V_2)也是线性子空间,而且它是包含(V_1cup V_2)的最小子空间。我们来看看它的维度是多少,首先取(V_1cap V_2)的一组基(A),将它分别扩展为(V_1,V_2)的基(Acup B_1,Acup B_2)。容易证明(A,B_1,B_2)线性无关,故(Acup B_1cup B_2)就是(V_1+V_2)的一组基,从而有公式(8)成立。
[dim(V_1+V_2)=dim{V_1}+dim{V_2}-dim(V_1cap V_2) ag{8}]
(V_1+V_2)中任何一个元素都可以分解为(alpha=alpha_1+alpha_2,(alpha_iin V_i)),如果(V_1cap V_2 e 0),容易构造出(alpha)的不同分解。反之如果(V_1cap V_2=0),用反证法可知分解是唯一的。这时的(V_1+V_2)称为子空间的直和,记作(V_1oplus V_2)。类似于抽象代数中的结论,直和的定义等价于零元素的唯一分解。这里的结论很容易推广到多个子空间的直和,且它有公式(9)中的等价定义。直和将线性空间分解为几个无关的子空间(式(10)),它其实是基的概念的一个扩展,特别地,(n)维线性空间可以分解为(n)个子空间(left<alpha_i ight>)的直和。
[V_1oplus V_2opluscdotsoplus V_m;Leftrightarrow;V_icapsum_{i e j}{V_j}=0;Leftrightarrow; 0=sum{alpha_i}Rightarrowalpha_i=0 ag{9}]
[dim(V_1+V_2+cdots+V_m)=dim{V_1}+dim{V_2}+cdots+dim{V_m} ag{10}]
子空间的并(V_1cup V_2)虽然有“加法”的外表,但在代数结构中却不具有加法的性质,一个典型的结果就是:有限个任意真子空间的并都不等于父空间(式(11))。(V_1cup V_2)的场景比较好证明,当一个是另一子集时结论显然成立,不是时则可以取(alphain V_1,etain V_2),但(alpha otin V_2,eta otin V_1),容易证明(alpha+eta otin V_i)。然后用归纳法证明,先记(V_0=V_1cupcdotscup V_{s-1}),当(V_0,V_s)中一个是另一个子集时结论显然成立,不是时可以取取(alphain V_0,etain V_s),但(alpha otin V_s,eta otin V_0)。
[V_1cup V_2cupcdotscup V_s e V,;;(V_i e V) ag{11}]
类似地可以证明(alpha+eta otin V_s),但却不能用这种方法证明(alpha+eta otin V_0),因为(V_0)不一定是子空间。为此考虑所有向量(eta_k=alpha+keta),同样有(eta_k otin V_s),还需证存在(eta_k otin V_0)。对任意(m<s),假设有(eta_i,eta_jin V_m),则(eta_i-eta_j=(i-j)etain V_m),从而(i=j)。这就是说(V_m)中最多只有一个(eta_k),如果再假设(V)的域(F)是无限的,则一定能找到(eta_k otin V_0),结论得证。
2. 线性方程组
前面我们从线性组合出发,从理论上分析了线性空间的结构,但还有一个很实际的问题没有解决:如何将一个向量表示成给定向量组的线性组合?或者如何判定向量组的线性相关性?我们只讨论有限维线性空间的情况,而它是等价于一个(n)维坐标向量空间的。设向量组为(alpha_1,alpha_2,cdots,alpha_m),用它们的线性组合表示(eta)就是解如下左边的方程,它其实就是右边的(m)元线性方程组。当(eta=0)时,方程实质上就是判断(alpha_i)的相关性,对应方程组叫齐次线性方程组。
[egin{bmatrix}a_{11}\a_{21}\vdots\a_{n1}end{bmatrix}x_1+cdots+egin{bmatrix}a_{1m}\a_{2m}\vdots\a_{nm}end{bmatrix}x_m=egin{bmatrix}b_1\b_2\vdots\b_nend{bmatrix}quadLeftrightarrowquadleft{egin{matrix}a_{11}x_1+a_{12}x_2+cdots+a_{1m}x_m=b_1\ a_{21}x_1+a_{22}x_2+cdots+a_{2m}x_m=b_2\ cdots:cdots\ a_{n1}x_1+a_{n2}x_2+cdots+a_{nm}x_m=b_nend{matrix} ight. ag{12}]
在中学我们就已经知道用消元法解多元一次方程组,比如上面的方程组,先根据第一个等式得到(x_1)的表达式,将它带入其它等式就得到(m-1)元方程组。如此下去就可以得到一个一元方程,解出后回带到之前的表达式,就得到方程组的解。将方程的系数和常数项写成如下左边的增广矩阵,消元的过程可以表示为一系列如下初等变换。变换(1)可以将待消元的系数变为(1),变换(2)是为了找到列数最小的非零系数,变换(3)进行消元。
(1)第(i)行乘上一个非零常数(k);
(2)交换第(i)和(j)第行;
(3)第(j)行加上第(i)的倍数(k)。
[left[egin{array}{cccc:c}a_{11}&a_{12}&cdots&a_{1m}&b_1\a_{21}&a_{22}&cdots&a_{2m}&b_2\vdots&vdots&ddots&vdots&vdots\a_{n1}&a_{n2}&cdots&a_{nm}&b_nend{array} ight]quadRightarrowquadegin{bmatrix}0&1&cdots&cdots&cdots\0&0&1&cdots&cdots\0&0&0&1&cdots\vdots&vdots&vdots&vdots&vdotsend{bmatrix} ag{13}]
经过初等变换后,总可以使得每一行的首个非零系数的列数大于上一行,这样的矩阵叫阶梯形矩阵(式中的一个(0)可能表示若干个(0))。每一个初等变换都是可逆的,所以阶梯型矩阵对应方程的解和原方程是一样的。解阶梯型方程时,总是从最后一个非零行开始,如果这一行只有最后一个常数项非零((14)式左),则方程组显然无解。如果正好对角线全为(1)((14)式中),则方程组有唯一解,否则((14)式右)某些未知数可取任意值,从而方程组有多组解。
[left[egin{array}{cccc:c}0&1&cdots&cdots&{d_1}\0&0&1&cdots&{d_2}\vdots&vdots&vdots&ddots&vdots\0&0&cdots&0&{d_n}\0&cdots&cdots&cdots0&0end{array} ight]quadleft[egin{array}{cccc:c}1&cdots&cdots&cdots&{d_1}\0&1&cdots&cdots&{d_2}\vdots&vdots&vdots&ddots&vdots\0&cdots&0&1&{d_m}\0&cdots&cdots&cdots0&0end{array} ight]quadleft[egin{array}{cccc:c}0&1&cdots&cdots&{d_1}\vdots&vdots&vdots&ddots&vdots\0&cdots&1&c_{lm}&{d_l}\0&cdots&cdots&cdots0&0end{array} ight] ag{14}]
这个方法就叫高斯消元法,最初由高斯给出详细过程。对齐次线性方程,可以没有增广矩阵的最后一列,从而方程组总有解。齐次方程若有唯一解,则必定为(0),这时向量组线性无关。容易看出当(m>n)时,齐次方程总有非零解,这就说明(m)个向量总是线性相关的。线性方程组总可以用高斯消元法求解,这个过程可以交给计算机完成,但对具体的方程组,还可以通过一些技巧简化求解过程,请尝试以下习题。
• 求解方程组(left{egin{matrix}(1+a_1)x_1&+x_2&+cdots&+x_n&=b_1\x_1&+(1+a_2)x_2&+cdots&+x_n&=b_2\&cdots&&cdots&\x_1&+x_2&+cdots&+(1+a_n)x_n&=b_nend{matrix} ight.);
• 求解方程组(left{egin{matrix}x_1&+2x_2&+3x_3&+cdots&+nx_n&=b_1\nx_1&+x_2&+2x_3&+cdots&+(n-1)x_n&=b_2\&cdots&&cdots&\2x_1&+3x_2&+cdots&+nx_{n-1}&+x_n&=b_nend{matrix} ight.)。
当线性方程组有多组解时,这个解的集合有什么特点呢?对于齐次方程(15),容易证明所有解组成一个线性空间,它称为方程的解空间,空间的基称为方程的基础解系。若列向量组的秩为(r),将方程组阶梯化后,可将阶梯角上对应的(r)个(x_i)用另外的(n-r)个线性表示。那(n-r)个未知元是自由变化的,所以解空间的维数就是(n-r),基础解系也容易构造,进而可以表示出一般解(通解)。
[alpha_1y_1+alpha_2y_2+cdots+alpha_my_m=0 ag{15}]
对于非齐次方程(12),如果((x_1,cdots,x_m),(x'_1,cdots,x'_m))都是它的解,则显然((x_1-x'_1,cdots,x_m-x'_m))是方程(15)的解。反之,对齐次方程(15)的任一解((y_1,cdots,y_m)),((x_1+y_1,cdots,x_m+y_m))显然也是方程(12)的解。故只需得到方程(12)一个特解(gamma)和(15)的解空间(W),(12)的通解便可以表达为(gamma+W),在群论中它就是(W)的一个陪集。