• 【高等代数】01


      高等代数究竟应该包含哪些内容?从名字上看它应当包含代数学中的所有高等内容。但一般来讲,这里的“高等”只是相对中学的“初等”而言的,它包含线性代数、多项式等内容。抽象代数这样的“高级”分支比它更抽象,需要独立分支去讨论。前面我们已经学习过线性代数,请先回顾一下该课程。首先要清楚,线性代数的三大内容:线性空间、线性变换、线性函数(向量的度量)。线性空间的概念之前已经阐述得比较完备了,这里只强调一点:我们说的向量是一种代数结构,而非特指坐标向量,虽然通过映射可以将它们等价起来。

      之前的线性代数课程更偏重概念的阐述和结构的搭建,而忽略了一些具体的例子和方法。这里我想先花一些篇幅,整理一下教材中经常出现的好的问题,以及一些有趣的结论。这些问题将以不同的课题进行组织,其中会穿插不同的知识点。它们不光在现实场景中有着广泛的应用,对这些典型问题的思考,也非常有助于理解基本概念。为了保持概念的连续性,这里还是会重复提出已经熟知的概念,既是回顾也是扩展。

    1. 行列式

      线性空间的一个基本问题就是解线性方程组,这其中需要用到一个叫行列式的东西。不要忘记,行列式本质上是一个(n)重反对称线性函数(设定单位矩阵的值为1),这个定义比古怪的直接定义公式要清晰得多。

      行列式是相对独立的内容,计算时有很多技巧,这里再搜集一些常见的题型。除了定义之外,之前我们还介绍了几种常用方法,比如基本变换法、拉普拉斯定理(按行展开)、加边法、待定系数法、递推方程法、矩阵分解法等。这里再具体看一些例子和方法,来丰富之前行列式的内容。还有更多特殊行列式的计算方法,会在相关的主题中继续讨论。

    1.1 一般方法

      首先计算时不能完全忘记最原始的定义,就是所有代表元素的乘积之和。例如对于元素全为(pm 1)的行列式(阶数(n>1)),由于它的每个乘项都是(pm 1),而项数为偶数,故总和(|A|)必定是偶数。进一步地,通过初等变换可以得到式(1),其中(b_{ij})只取(0,pm 2)、(c_{ij})只取(0,pm 1),从而可以得到:(|A|)一定是(2^{n-1})的倍数。

    [|A|=egin{vmatrix}pm 1&a_{12}&cdots&a_{1n}\0&b_{22}&cdots&b_{2n}\vdots&vdots&ddots&vdots\ 0&b_{n2}&cdots &b_{nn}end{vmatrix}=pm 2^{n-1}egin{vmatrix}c_{22}&cdots&c_{2n}\vdots&ddots &vdots\c_{n2}&cdots&c_{nn}end{vmatrix} ag{1}]

      初等变换一直是行列式计算最重要的方法,而矩阵的分块变换对复杂表达式的行列式更是提供了便捷的途径。最简单就数式(2)左的变换,它用最直观的方法证明了(|AB|=|A||B|)。还有当(A)可逆时((B,C)不一定是方阵),容易得到式(3)。当(A,B,C,D)都是方阵、且(AC=CA)时,则式(3)的行列式才等于(|AD-CB|)。但注意到最终表达式中并没有(A^{-1}),我们需要讨论(A)不可逆的情况。

      用(A+tI,D+tI)代替(A,D),设得到的行列式为(f(t)),它显然是一个(2n)次多项式。在(t)足够小的去心领域里,(A+tI)必定是可逆的,故有(f(t)=|(A+tI)(D+tI)-CB|),由连续性可知(f(0)=|AD-CB|)。也就是说对任意方阵(A),都有式(4)成立,同样如果有(AB=BA),也可以得到行列式的值为(|DA-CB|)。多项式的连续性在这里发挥了关键作用,它对一些异常情况的处理十分有效,马上我们还会碰到。

    [egin{bmatrix}A&0\I_n&Bend{bmatrix} ightarrowegin{bmatrix}0&-AB\I_n&0end{bmatrix};Rightarrow;|AB|=|A||B| ag{2}]

    [egin{vmatrix}A&B\C&Dend{vmatrix}=|A||D-CA^{-1}B| ag{3}]

    [AC=CA;Rightarrow;egin{vmatrix}A&B\C&Dend{vmatrix}=|AD-CB| ag{4}]

      还有,通过式(5)的两种变换,可以得到重要的结论(6)。所以对于具有形式(|I_n-AB|)、且(m)很小的行列式,把它转化为(|I_m-BA|)会简单得多,你可以尝试一下计算式(7)的行列式。

    [egin{bmatrix}I_n&A\0&I_m-BAend{bmatrix}leftarrowegin{bmatrix}I_n&A\B&I_mend{bmatrix} ightarrowegin{bmatrix}I_n-AB&0\B&I_mend{bmatrix} ag{5}]

    [|I_m-BA|=|I_n-AB| ag{6}]

    [egin{vmatrix}0&2a_1&3a_1&cdots&na_1\a_2&a_2&3a_2&cdots&na_2\a_3&2a_3&2a_3&cdots&na_3\vdots&vdots&vdots&ddots&vdots\a_n&2a_n&3a_n&cdots&(n-1)a_nend{vmatrix} ag{7}]

    1.2 其它方法

      递推法是计算行列式的常用方法,比如式(8)左的三对角型(D_n)。我们不难得到它的递推式(D_n=aD_{n-1}-bcD_{n-2}),且有初始值(D_1=a,D_2=a^2-bc)。利用递推式的母函数法,并令(x,y)是(x+y=a,xy=bc)的两个根,很容易地就求得了式(8)右的结果。

    [D_n=egin{vmatrix}a&b&&\c&ddots&ddots&\&ddots&ddots&b\&&c&aend{vmatrix}=dfrac{x^{n+1}-y^{n+1}}{x-y} ag{8}]

      矩阵分解法的代表是如式(9)左的循环矩阵(C_n),为了在循环中找到不变性,可以用另一个循环来进行固定。具体做法可以是考察列向量([1,omega,cdots,omega^{n-1}]'),其中(omega)是(omega^n=1)的任意根,它与(C_n)第(i)行的内积是(omega^{i-1}sumlimits_{j=1}^nomega^{j-1}a_j),其中的公共项(sumlimits_{j=1}^nomega^{j-1}a_j)可以提取出来。现在取(omega)为单位根,并记(W)为式(9)右,这样就能得到等式(10),从而有(|C_n|=prodlimits_{i=0}^{n-1}sumlimits_{j=1}^nomega^{i(j-1)}a_j)。这个方法有明显拼凑的迹象,后面我们会用更加深刻的结论再次计算一遍。

    [C_n=egin{bmatrix}a_1&a_2&cdots&a_n\a_n&a_1&cdots&a_{n-1}\vdots&vdots&ddots&vdots\a_2&a_3&cdots&a_1end{bmatrix};;W=egin{bmatrix}1&1&1&1\1&omega&cdots&omega^{n-1}\1&vdots&ddots&vdots\1&omega^{n-1}&cdots&omega^{(n-1)^2}end{bmatrix} ag{9}]

    [C_ncdot W=prod_{i=0}^{n-1}sum_{j=1}^n(omega^{i(j-1)}a_j)cdot W ag{10}]

      我还看到过行列式的一个有趣应用,就是利用行列式的初等变换来进行因式分解。比如很容易知道式(11)左可以写成式中的行列式,简单的初等变换就能得到因子(x+y+z)。当然这种方法的弊端就是要先找到合适的行列式,在有些场合下也许是比较容易的。

    [x^3+y^3+z^3-3xyz=egin{vmatrix}x&y&z\z&x&y\y&z&xend{vmatrix}=(x+y+z)egin{vmatrix}1&y&z\1&x&y\1&z&xend{vmatrix} ag{11}]

    2. 矩阵的秩

    2.1 一般方法

      解线性方程组衍生出的另一个问题就是矩阵和它的秩,但这里矩阵的作用也仅仅是一种记法,可以讨论的也只有行向量和列向量。这里最重要的结论当然就是:矩阵的行秩和列秩相同,它们统称为矩阵的秩。现在设矩阵(A)的秩为(r),则可以找到它的极大无关行向量组({alpha_1,cdots,alpha_r})和极大无关列向量组({eta_1,cdots,eta_r}),现在来考虑由它们的交点组成的子矩阵(B)。首先由于({alpha_1,cdots,alpha_r})组成的子矩阵(C)的秩为(r),故(C)的列向量的秩也是(r)。另外由于({eta_1,cdots,eta_r})可以线性表示其它列,故(B)的列向量可以线性表示(C)的其它列,这就是说(B)的列向量是(C)的列向量的极大线性无关组,从而(B)的秩也是(r)。这个结论还是比较有用的,比如因为奇数阶反对称矩阵的行列式为(0)(各行提取(-1)),可知反对称矩阵的秩只能为偶数(反对称矩阵的标准型可直接得到该结论)。

      线性相关性是秩的根本意义,这个简单的认知却是很多结论的关键,由此得到的式(12)(13)以后会经常用到。另外假设(A_{m imes n})秩为(r),则可以选出列向量的极大无关组({alpha_1,cdots,alpha_r}),组成矩阵(B)。这时(A)的每一列可以线性表示为(c_{1j}alpha_1+cdots+c_{rj}alpha_r),则矩阵(C={c_{ij}})满足(A=BC)。由式(13)可知(C)的秩也为(r)。总结就是任何秩为(r)的矩阵(A_{m imes n})都能分解为两个满秩矩阵(B_{m imes r},C_{r imes n})的乘积。

    [ ext{rank}(A+B)leqslant ext{rank}(A)+ ext{rank}(B) ag{12}]

    [ ext{rank}(AB)leqslantmin{ ext{rank}(A), ext{rank}(B)} ag{13}]

       求证:( ext{rank}(I-AB)leqslant ext{rank}(I-A)+ ext{rank}(I-B))。

      和行列式一样,初等变换是判断矩阵秩的基本方法,其中分块初等变换同样能带来惊喜的结论。比如由(2)的变换,容易得到式(14)的Sylvester秩不等式。类似地由变换(egin{bmatrix}B&0\0&ABCend{bmatrix} ightarrowegin{bmatrix}B&AB\BC&0end{bmatrix}),也容易证明式(15)的Frobenius秩不等式

    [ ext{rank}(AB)geqslant ext{rank}(A)+ ext{rank}(B)-n ag{14}]

    [ ext{rank}(ABC)geqslant ext{rank}(AB)+ ext{rank}(BC)- ext{rank}(B) ag{15}]

    2.2 其它方法

      我们知道,矩阵的乘法其实就是多组线性表示,也许乘法的秩和线性方程组能建立起联系。首先把(AB)的列向量看成是(A)的列向量的线性表示(sumlimits_i b_{ij}alpha_i),如果( ext{rank}(AB)= ext{rank}(A)),则(AB,A)的列向量组是等价的(考虑生成线性空间),从而矩阵方程(ABX=A)有解(式(16))。再来把(AB)的行向量看成是(B)的行向量的线性表示(sumlimits_j a_{ij}eta_j),如果( ext{rank}(AB)= ext{rank}(B)),则(AB,B)的行向量组是等价的,从而线性方程(ABX=0,BX=0)同解(式(17))。

    [ ext{rank}(AB)= ext{rank}(A);Leftrightarrow;exists X(ABX=A) ag{16}]

    [ ext{rank}(AB)= ext{rank}(B);Leftrightarrow;forall X(ABX=0Leftrightarrow BX=0) ag{17}]

      等价的方程组形式并不是什么特殊的结论,但对于描述论证更加方便。比如如果(AB,B)的秩相同,则(ABX=0,BX=0)同解,则显然(ABCX=0,BCX=0)也同解,故(ABC,BC)的秩也相同。用相关性也能证得同样的结论,但描述略显繁琐。式(18)的结论是非常有用的,比如考察矩阵列(A,A^2,A^3,cdots),它们的秩是不升的,故必然存在( ext{rank}(A^{k+1})= ext{rank}(A^{k}))。根据式(18)便知,存在(k),使得(mgeqslant k)时恒有( ext{rank}(A^m)= ext{rank}(A^k))(这个与线性变换中的结论一致)。

    [ ext{rank}(AB)= ext{rank}(B);Leftrightarrow; ext{rank}(ABC)= ext{rank}(BC) ag{18}]

      利用线性方程讨论矩阵的秩,还有一个非常特殊的例子。先看实系数方程(A'AX=0)和(AX=0),后者的解空间显然包含前者,但由(0=X'A'AX=|AX|^2)也能得到(AX=0)。故它们是同解的,从而有式(19)成立。同样在复数域,也容易有式(20)成立,它们都是非常重要的结论。

    [Ainmathbb{R}_n;Rightarrow; ext{rank}(A'A)= ext{rank}(AA')= ext{rank}(A) ag{19}]

    [Ainmathbb{C}_n;Rightarrow; ext{rank}(ar{A}'A)= ext{rank}(Aar{A}')= ext{rank}(A) ag{20}]

      最后来考察对角占优矩阵(A)((|a_{ii}|>sumlimits_{j e i}a_{ij})),可以用反证法证明它是满秩的((|A| e 0))。否则列向量是线性相关的,即有(k_1alpha_1+cdots+k_nalpha_n=0),其中(k_i)不全为(0)。设(|k_i|)是最大的系数,则容易在第(i)行导出矛盾。更特别地,如果(a_{ii}>sumlimits_{j e i}a_{ij}),还可以证明(|A|>0)。这时考察如下矩阵(B(t)),由于(|B(t)|)是一个多项式,它必然是连续函数。而已知(|B(0)|>0),且在(tin[0,1])上恒有(|B(t)| e 0),从而必然有(|A|=|B(1)|>0)。多项式的连续性在这里再次发挥威力。

    [B(t)=egin{bmatrix}a_{11}&a_{12}t&cdots&a_{1n}t\a_{21}t&a_{22}&cdots&a_{2n}t\vdots&vdots&ddots&vdots\a_{n1}t&a_{n2}t&cdots&a_{nn}end{bmatrix} ag{21}]

      本系列目录

        01 - 行列式和矩阵的秩

        02 - 矩阵的逆和相似矩阵

        03 - 二次型和矩阵的分解

        04 - 多项式环

        未完待续

      博客总目录这里


    【前序学科】 线性代数,微积分,抽象代数

    【参考资料】

    [1] 《高等代数(上、下)》,丘维声,2010

      这部上下分册的高等代数可谓国内最经典的教材之一,上册基本涵盖了线性代数的内容,下册则引入了更多抽象和理论的东西。通篇题材广泛,例题和习题都十分丰富和具有启发性。

  • 相关阅读:
    nginx upstream负载均衡配置
    什么是任务编排、服务发现、服务间依赖怎么处理?
    python celery 错误重试配置
    rust cargo 从入门到放弃
    python 日志模块再熟悉
    python signal笔记
    Fabric使用笔记
    webpack 笔记
    sphinx-python文档化
    Docker笔记
  • 原文地址:https://www.cnblogs.com/edward-bian/p/12846714.html
Copyright © 2020-2023  润新知