【学习笔记】数学小厦

基础抽象代数

半群( semi-group \text{semi-group} semi-group

对于非空集合 S S S 与二元运算 + + +,若 + + + 具有封闭性、结合律,则 ⟨ S , + ⟩ \langle S,+\rangle S,+ 为半群。

群( g r o u p \rm group group

若半群 ⟨ G , + ⟩ \langle G,+\rangle G,+ 满足 + + + 具有单位元、逆元,则 ⟨ G , + ⟩ \langle G,+\rangle G,+ 为群。简单群论入门

阿贝尔群( Abelian group \text{Abelian group} Abelian group

若群 ⟨ G , + ⟩ \langle G,+\rangle G,+ 满足 + + + 具有交换律,则 ⟨ G , + ⟩ \langle G,+\rangle G,+ 为阿贝尔群,又称交换群。

环( r i n g \rm ring ring domain \text{domain} domain

若阿贝尔群 ⟨ R , + ⟩ \langle R,+\rangle R,+ 满足 ⟨ R , × ⟩ \langle R,\times\rangle R,× 为半群且 × \times × + + + 有分配律,则 ⟨ R , + , × ⟩ \langle R,+,\times\rangle R,+,× 为环。

理想( ideal \text{ideal} ideal):若 I I I R R R 的加法子群,且 I I I 满足 ∀ r ∈ R ,    r I ⊆ I \forall r\in R,\;rI\subseteq I rR,rII,则 I I I R R R 的左理想。类似可定义右理想。二者兼具,则称为双边理想。

素理想:若 R R R 的理想 I I I 满足 ∀ a b ∈ I ,    a ∈ I ∨ b ∈ I \forall ab\in I,\;a\in I\lor b\in I abI,aIbI,则 I I I R R R 的素理想。可类比后文 素元

商环:设 I I I R R R 的理想,则 R R R 作为加法群有商群 R / I R/I R/I,定义其乘法 ( a + I ) ( b + I ) = a b + I (a{+}I)(b{+}I)=ab{+}I (a+I)(b+I)=ab+I,不难验证其构成环。

不难发现 R / I R/I R/I 是整环,当且仅当 I I I R R R 的素理想。

幺环:存在乘法单位元(“幺元”)的环。

特征( characteristic \text{characteristic} characteristic):如果存在最小的正整数 n n n 使得 ∀ a ∈ R ,    n a = 0 \forall a\in R,\;na=0 aR,na=0,则 n n n 是环 R R R 的特征。如果不存在这样的 n n n,认为 R R R 的特征是 0 0 0

对于幺环 R R R,其特征就是乘法幺元 1 1 1 的加法阶(若无穷大则特征为零)。

整环( integral domain \text{integral domain} integral domain):无零因子的交换幺环。

定理:有限整环都是域。

证明:对 ∀ x ∈ R ∖ { 0 } \forall x\in R\setminus\{0\} xR{0},考虑 x R xR xR { x a : a ∈ R } \{xa:a\in R\} {xa:aR} 。注意到 x a = x b ⇒ x ( a − b ) = 0 ⇒ a = b xa=xb\Rightarrow x(a{-}b)=0\Rightarrow a=b xa=xbx(ab)=0a=b,故 ∣ x R ∣ = ∣ R ∣ ⇒ 1 ∈ x R |xR|=|R|\Rightarrow 1\in xR xR=R1xR x x x 存在逆元。 ■ \blacksquare

整环的整除理论

作为 OIer \text{OIer} OIer,唯一看重的非交换环就是矩阵。矩阵需要整除吗?

因此下面的讨论都针对整环 R R R

基本定义

ε ∈ R \varepsilon\in R εR 是单位( unit \text{unit} unit)当且仅当 ε \varepsilon ε 存在逆元素。

a , b a,b a,b 是相伴的( associated \text{associated} associated)当且仅当存在单位 ε \varepsilon ε 使得 a = ε b a=\varepsilon b a=εb

不难发现 a , b a,b a,b 相伴等价于 a ∣ b ∧ b ∣ a a\mid b\land b\mid a abba,因此在整除意义下,相伴就是等价关系。单位与幺元等价,这是其被称为 “单位” 的原因。

R R R 中不可逆非零元素 p p p 被称为素元,当且仅当不存在 a , b a,b a,b 使得 p ∣ a b p\mid ab pab p ∤ a p\nmid a pa p ∤ b p\nmid b pb

——插一句嘴:首先 p R pR pR R R R 的理想,而 p R pR pR 是素理想等价于 p p p 是素元。

R R R 中的不可逆非零元素 p p p 被称为不可约( irreducible \text{irreducible} irreducible)元素,当且仅当将其分解为两个元素的乘积 p = a b p=ab p=ab 时,不可能 a , b a,b a,b 都不是单位(即 p p p 只有平凡因子)。

定理:整环中的素元都是不可约元素。

证明:设 p = a b p=ab p=ab 为素元,不妨设 p ∣ a p\mid a pa a = p c a=pc a=pc 。则有 p = a b = ( p c ) b ⇒ p ( 1 − c b ) = 0 ⇒ c b = 1 p=ab=(pc)b\Rightarrow p(1{-}cb)=0\Rightarrow cb=1 p=ab=(pc)bp(1cb)=0cb=1 b b b 是单位。 ■ \blacksquare

最大公因子整环

对于不全为零的序列 a 1 , a 2 , … , a n    ( n > 1 ) a_1,a_2,\dots,a_n\;(n>1) a1,a2,,an(n>1),如果任意公因子 c c c 都有 c ∣ d c\mid d cd,则称 d d d 为最大公因子,记为 d = gcd ⁡ { a 1 , a 2 , … , a n } d=\gcd\{a_1,a_2,\dots,a_n\} d=gcd{a1,a2,,an}

整数环中的很多结论都可以直接迁移过来。

定理 c gcd ⁡ ( a , b ) c\gcd(a,b) cgcd(a,b) gcd ⁡ ( a c , b c ) \gcd(ac,bc) gcd(ac,bc) 相伴。

证明:设 d = gcd ⁡ ( a , b ) ,    q = gcd ⁡ ( a c , b c ) d=\gcd(a,b),\;q=\gcd(ac,bc) d=gcd(a,b),q=gcd(ac,bc),则 c d ∣ c a ∧ c d ∣ c b ⇒ c d ∣ q cd\mid ca\land cd\mid cb\Rightarrow cd\mid q cdcacdcbcdq 。设 q = c d e q=cde q=cde,联立 q ∣ c a q\mid ca qca c a = x q = c d e x ⇒ ( d e x − a ) c = 0 ⇒ a = d e x ca=xq=cdex\Rightarrow(dex{-}a)c=0\Rightarrow a=dex ca=xq=cdex(dexa)c=0a=dex d e ∣ a de\mid a dea 。同理 d e ∣ b de\mid b deb,因此 d e ∣ d de\mid d ded e e e 是单位,因此 q q q c d cd cd 相伴。 ■ \blacksquare

定理 gcd ⁡ ( a , b ) , gcd ⁡ ( a , c ) \gcd(a,b),\gcd(a,c) gcd(a,b),gcd(a,c) 都是单位时, gcd ⁡ ( a , b c ) \gcd(a,bc) gcd(a,bc) 是单位。

证明:用 ≊ \approxeq 表示相伴,则 gcd ⁡ ( a , b c ) ≊ gcd ⁡ ( gcd ⁡ ( a , a c ) , b c ) ≊ gcd ⁡ ( a , gcd ⁡ ( a c , b c ) ) ≊ gcd ⁡ ( a , c ) \gcd(a,bc)\approxeq\gcd(\gcd(a,ac),bc)\approxeq\gcd(a,\gcd(ac,bc))\approxeq\gcd(a,c) gcd(a,bc)gcd(gcd(a,ac),bc)gcd(a,gcd(ac,bc))gcd(a,c) 是单位,得证。 ■ \blacksquare

R R R 中任意两个非零元都存在最大公因子,则 R R R 被称为最大公因子整环。

定理:最大公因子整环中,不可约元素都是素元。

证明:设不可约元素 p ∣ a b p\mid ab pab,则 gcd ⁡ ( a , p ) ≊ gcd ⁡ ( b , p ) ≊ 1 \gcd(a,p)\approxeq\gcd(b,p)\approxeq 1 gcd(a,p)gcd(b,p)1 会说明 gcd ⁡ ( a b , p ) ≊ 1 \gcd(ab,p)\approxeq 1 gcd(ab,p)1 矛盾。不妨设 d = gcd ⁡ ( a , p ) ≊̸ 1 d=\gcd(a,p)\not\approxeq 1 d=gcd(a,p)1,注意到 d ∣ p d\mid p dp p p p 只有平凡因子,所以 d ≊ p d\approxeq p dp,即有 p ∣ a p\mid a pa ■ \blacksquare

唯一分解整环( UFD \text{UFD} UFD

认为整环 R R R 中元素 n n n 拥有唯一分解,当且仅当 n n n 可以被分解为 n = ∏ p i n=\prod p_i n=pi,且任何同种的分解 n = ∏ q i n=\prod q_i n=qi 满足:二者长度相同,且可以将 { q } \{q\} {q} 重排使得 p i , q i p_i,q_i pi,qi 相伴。

如果整环 R R R 中任意元素 n n n 满足,将其分解为若干素元(或不可约元)的乘积有唯一分解,则 R R R 是唯一分解整环( unique factorization domain \text{unique factorization domain} unique factorization domain)。

Remark. 在任意整环中,素元分解若存在即唯一,而不可约元素分解可能不唯一(但一定存在)。

定理:最大公因子整环都是唯一分解整环。

证明:在最大公因子整环上,不可约元素分解恰好构成素元分解。 ■ \blacksquare

欧几里得环( Euclidean Ring \text{Euclidean Ring} Euclidean Ring

通俗解释:能够进行辗转相除的环。

严谨定义:若整环 R R R 存在映射 ϕ : R ↦ N \phi:R\mapsto\N ϕ:RN 使得 a = m b + r  s.t.  ϕ ( r ) < ϕ ( b ) a=mb+r\text{ s.t. }\phi(r)<\phi(b) a=mb+r s.t. ϕ(r)<ϕ(b) 对任意 a , b ∈ R ,    b ≠ 0 a,b\in R,\;b\ne 0 a,bR,b=0 都存在,则 R R R 是欧几里得环。

可以看出 ϕ \phi ϕ 是某种 范数。但是不是这样有什么关系呢?我们只需要知道:

定理:欧几里得环都是最大公因子整环。

域( f i e l d \rm field field

若环 ⟨ F , + , × ⟩ \langle F,+,\times\rangle F,+,× 满足 ⟨ F ∖ { 0 } , × ⟩ \langle F\setminus\{0\},\times\rangle F{0},× 为阿贝尔群(其中 0 0 0 + + + 的单位元)则 ⟨ F , + , × ⟩ \langle F,+,\times\rangle F,+,× 为域。最常见的域是模质数 p p p 的伽罗瓦域 G F ( p ) \Bbb{GF}(p) GF(p)

线性空间

又称 向量空间 或矢量空间( vector space \text{vector space} vector space),因为其 维度 n n n 时,就与 n n n 维空间的向量集合是同构的。下面是详细的定义;但事实上将其理解为向量就很足够了。

具体而言,设 V V V 是一个非空集合, P P P 是一个域,若满足下列条件:

  • 加法封闭性: ∀ α , β ∈ V ,    ( α + β ) ∈ V \forall\alpha,\beta\in V,\;(\alpha+\beta)\in V α,βV,(α+β)V
  • 纯量乘法(数量乘法)封闭性: ∀ k ∈ P ,    ∀ α ∈ V ,    ( k ⋅ α ) ∈ V \forall k\in P,\;\forall \alpha\in V,\;(k\cdot \alpha)\in V kP,αV,(kα)V 。习惯上也可简写为 k α k\alpha kα
  • ( V , + ) (V,+) (V,+) 构成阿贝尔群(交换群);其单位元为零向量 0 → \overrightarrow{0} 0
  • 对于 P P P 中乘法单位元 ϵ \epsilon ϵ,有 ∀ α ∈ V ,    ϵ α = α \forall\alpha\in V,\;\epsilon\alpha=\alpha αV,ϵα=α
  • 乘法结合律: ∀ k , l ∈ P ,    ∀ α ∈ V ,    k ( l α ) = ( k l ) α \forall k,l\in P,\;\forall\alpha\in V,\;k(l\alpha)=(kl)\alpha k,lP,αV,k(lα)=(kl)α
  • 乘法分配律: ∀ k , l ∈ P ,    ∀ α ∈ V ,    ( k + l ) α = ( k α ) + ( l α ) \forall k,l\in P,\;\forall\alpha\in V,\;(k+l)\alpha=(k\alpha)+(l\alpha) k,lP,αV,(k+l)α=(kα)+(lα)
  • 乘法分配律: ∀ k ∈ P ,    ∀ α , β ∈ V ,    k ( α + β ) = ( k α ) + ( k β ) \forall k\in P,\;\forall\alpha,\beta\in V,\;k(\alpha+\beta)=(k\alpha)+(k\beta) kP,α,βV,k(α+β)=(kα)+(kβ)

则称 V V V 为域 P P P 上的一个线性空间。 P P P 称为线性空间的基域。

子空间( s u b s p a c e \rm subspace subspace

W , V W,V W,V 是域 P P P 上的线性空间,且 W ⊆ V W\subseteq V WV,则 W W W V V V 的子线性空间,简称子空间。

加法(和空间)

A , B A,B A,B 是线性空间 V V V 的子空间,定义二者的和 A + B = { α + β    ∣    α ∈ A ,    β ∈ B } A+B=\{\alpha+\beta\;|\;\alpha\in A,\;\beta\in B\} A+B={α+βαA,βB}

容易发现 ( A + B ) (A+B) (A+B) 仍然是线性空间 V V V 的子空间。

直和( direct sum \text{direct sum} direct sum

A ∩ B = { 0 → } A\cap B=\{\overrightarrow{0}\} AB={0 } 时,二者的和被称为直和(偶尔被称为笛卡尔和),记作 A ⊕ B A\oplus B AB

可以发现 ∀ γ ∈ ( A ⊕ B ) \forall\gamma\in(A\oplus B) γ(AB),方程 γ = α + β    ( α ∈ A ,    β ∈ B ) \gamma=\alpha+\beta\;(\alpha\in A,\;\beta\in B) γ=α+β(αA,βB) 有唯一解。

张成空间( s p a n \rm span span

α ∈ V \alpha\in V αV,显然 { k α    ∣    k ∈ P } \{k\alpha\;|\;k\in P\} {kαkP} 是子空间。记为 s p a n { α } span\{\alpha\} span{α}

递归地定义张成空间 s p a n { α 1 , α 2 , … , α k } = s p a n { α 1 , α 2 , … , α k − 1 } + s p a n { α k }    ( k ⩾ 2 ) span\{\alpha_1,\alpha_2,\dots,\alpha_k\}=span\{\alpha_1,\alpha_2,\dots,\alpha_{k-1}\}+span\{\alpha_k\}\;(k\geqslant 2) span{α1,α2,,αk}=span{α1,α2,,αk1}+span{αk}(k2),这里的加法是和空间。

张成空间是 V V V 的子空间。

线性无关

α 1 , α 2 , … , α k \alpha_1,\alpha_2,\dots,\alpha_k α1,α2,,αk 线性无关,当且仅当 ∀ i ∈ [ 1 , k ] ,    α i ∉ s p a n ( S ∖ { α i } ) \forall i\in[1,k],\;\alpha_i\notin span(S\setminus\{\alpha_i\}) i[1,k],αi/span(S{αi}),其中 S = { α 1 , α 2 , … , α k } S=\{\alpha_1,\alpha_2,\dots,\alpha_k\} S={α1,α2,,αk}

等价定义是,若存在非全零序列 λ 1 , λ 2 , … , λ k ∈ P ,    ∑ λ i α i = 0 → \lambda_1,\lambda_2,\dots,\lambda_k\in P,\;\sum\lambda_i\alpha_i=\overrightarrow{0} λ1,λ2,,λkP,λiαi=0 ,则它们是线性相关的;反之为线性无关。

维度( dim ⁡ \dim dim

在线性空间 V V V 中,存在线性无关向量组 α 1 , α 2 , … , α k ∈ V ∖ { 0 → } \alpha_1,\alpha_2,\dots,\alpha_k\in V\setminus\{\overrightarrow{0}\} α1,α2,,αkV{0 },最大的 k k k 就是 V V V 的维度,记为 dim ⁡ V = k \dim V=k dimV=k,此时的向量组 ⟨ α ⟩ \langle\alpha\rangle α 称为基底。基底可以有无穷多组。

等价定义: V = s p a n ( α 1 , α 2 , … , α k ) V=span(\alpha_1,\alpha_2,\dots,\alpha_k) V=span(α1,α2,,αk),且 α 1 , α 2 , … , α k \alpha_1,\alpha_2,\dots,\alpha_k α1,α2,,αk 线性无关。然而这个等价性的证明,不用克莱姆法则我不会证;而这就涉及到行列式了……

显然 dim ⁡ ( A ⊕ B ) = dim ⁡ A + dim ⁡ B \dim(A\oplus B)=\dim A+\dim B dim(AB)=dimA+dimB

* \color{red}{\text*} *除法(商空间)

这个好像不怎么有用……

定义 α + W = { α + β    ∣    β ∈ W }    ( α ∈ V ) \alpha+W=\{\alpha+\beta\;|\; \beta\in W\}\;(\alpha\in V) α+W={α+ββW}(αV),其中 W W W V V V 的子空间。显然它得到的是一堆向量的集合。可是这集合并不是线性空间。类似陪集。

定义 V / W = { α + W : α ∈ V } V/W=\{\alpha+W:\alpha\in V\} V/W={α+W:αV} 。也就是 “向量集合” 的一个集族。它的含义就是,认为 ( α − β ) ∈ W (\alpha-\beta)\in W (αβ)W α , β \alpha,\beta α,β 在一个 “等价类” 内,然后划分成若干等价类。类似陪集分解。

如果将子空间的加法推广到任意两个集合,那么我们会发现 V / W V/W V/W 是一个线性空间。因为 ( α + W ) + ( β + W ) = { α + β + ϕ + ψ : ϕ , ψ ∈ W } = ( α + β ) + W (\alpha+W)+(\beta+W)=\{\alpha+\beta+\phi+\psi:\phi,\psi\in W\}=(\alpha+\beta)+W (α+W)+(β+W)={α+β+ϕ+ψ:ϕ,ψW}=(α+β)+W,标量乘法同理也可验证其符合定义。

然后我们有 dim ⁡ ( V / W ) = dim ⁡ V − dim ⁡ W \dim(V/W)=\dim V-\dim W dim(V/W)=dimVdimW 。这很简单,因为 V / W V/W V/W 的基底实际上是表示若干差值不属于 W W W 的向量的。形式化地,若 V / W V/W V/W 基底是 α i + W    ( 1 ⩽ i ⩽ k ) \alpha_i+W\;(1\leqslant i\leqslant k) αi+W(1ik) W W W 基底是 β i    ( 1 ⩽ i ⩽ m ) \beta_i\;(1\leqslant i\leqslant m) βi(1im),那么一方面 ⟨ α i ⟩ , ⟨ β i ⟩ \langle\alpha_i\rangle,\langle\beta_i\rangle αi,βi 是线性无关的(因为 s p a n { α i } span\{\alpha_i\} span{αi} W = s p a n { β i } W=span\{\beta_i\} W=span{βi} 无交集),另一方面 V = s p a n { α i , β i } V=span\{\alpha_i,\beta_i\} V=span{αi,βi},因为每个向量都出现在了 V / W V/W V/W 的某一个向量集合中,所以这就是 V V V 的基底。

范数( norm \text{norm} norm

范数是一个 线性泛函,记为 ∥ x ∥ \Vert x\Vert x,满足

  • 正定性: ∥ x ∥ ⩾ 0 \Vert x\Vert\geqslant 0 x0,当且仅当 x = 0 → x=\overrightarrow{0} x=0 时取等。
  • 正值齐次性: ∀ x ∈ V ,    α ∈ P \forall x\in V,\;\alpha\in P xV,αP,满足 ∥ α x ∥ = ∣ α ∣ ⋅ ∥ x ∥ \Vert\alpha x\Vert=|\alpha|\cdot \Vert x\Vert αx=αx
  • 三角不等式: ∥ x + y ∥ ⩽ ∥ x ∥ + ∥ y ∥ \Vert x+y\Vert\leqslant\Vert x\Vert+\Vert y\Vert x+yx+y

我们最熟悉的就是欧几里得范数,即向量的模长。

线性变换

线性映射( linear map \text{linear map} linear map linear operator \text{linear operator} linear operator

对于两个线性空间 V , W V,W V,W,若存在映射 f : V ↦ W f:V\mapsto W f:VW 使得其加法运算、数量乘法都同态,则 f f f V ↦ W V\mapsto W VW 的线性映射(或线性算子)。

Comment. 似乎各处的定义不尽相同?这里就以 Wikipedia \text{Wikipedia} Wikipedia 为基准吧。

换句话说, ∀ α , β ∈ V ,    f ( α + β ) = f ( α ) + f ( β ) \forall\alpha,\beta\in V,\;f(\alpha+\beta)=f(\alpha)+f(\beta) α,βV,f(α+β)=f(α)+f(β) ∀ k ∈ P ,    f ( k α ) = k ⋅ f ( α ) \forall k\in P,\;f(k\alpha)=k\cdot f(\alpha) kP,f(kα)=kf(α)

线性泛函( linear functional \text{linear functional} linear functional

若线性算子 f f f V ↦ P V\mapsto P VP 的映射,则 f f f 是一个线性泛函。

线性变换( linear transformation \text{linear transformation} linear transformation

线性映射 f : V ↦ V f:V\mapsto V f:VV 被称为线性变换。后面我们会说到,线性变换总可以表示为 矩阵(在选定基底之后)。

线性变换对加法有 “分配律”,对乘法有 “交换律”,是近似于乘法的运算。所以为了方便,我们用 A \mathscr A A 表示线性变换, A α \mathscr A\alpha Aα 表示 f ( α ) f(\alpha) f(α) 。这是比较贴近算子概念的东西。

核( k e r n e l \rm kernel kernel

ker ⁡ ( A ) = { α    ∣    A α = 0 → } \ker(\mathscr A)=\{\alpha\;|\;\mathscr A\alpha=\overrightarrow{0}\} ker(A)={αAα=0 },也就是那些映射到零向量上的向量。

可以发现 ker ⁡ ( A ) \ker(\mathscr A) ker(A) V V V 的子空间。另:更常写为 Ker ( A ) \text{Ker}(\mathscr A) Ker(A),但是 LaTeX \LaTeX LATEX\ker 就是小写的……

象( i m a g e \rm image image)

Im ( A ) = { A α    ∣    α ∈ V } \text{Im}(\mathscr A)=\{\mathscr A\alpha\;|\;\alpha\in V\} Im(A)={AααV},也就是映射的值域。

可以发现 Im ( A ) \text{Im}(\mathscr A) Im(A) V V V 的子空间。另:我讨厌复数,它抢走了 \Im(虚部符号)。

降维打击

定理 dim ⁡ V = dim ⁡ ker ⁡ ( A ) + dim ⁡ Im ( A ) \dim V=\dim\ker(\mathscr A)+\dim\text{Im}(\mathscr A) dimV=dimker(A)+dimIm(A)

证明:取 ker ⁡ ( A ) \ker(\mathscr A) ker(A) 的基底 ⟨ α ⟩ \langle\alpha\rangle α;取 Im ( A ) \text{Im}(\mathscr A) Im(A) 的基底 ⟨ θ ⟩ \langle\theta\rangle θ,则存在 ⟨ β ⟩ \langle\beta\rangle β 使得 A β i = θ i \mathscr A\beta_i=\theta_i Aβi=θi 。只需要证明 V V V 的基底是 ⟨ α ⟩ , ⟨ β ⟩ \langle\alpha\rangle,\langle\beta\rangle α,β

先证 V = s p a n { α i , β j } V=span\{\alpha_i,\beta_j\} V=span{αi,βj} 。任取 γ ∈ V \gamma\in V γV,存在 ν ∈ s p a n { β i } \nu\in span\{\beta_i\} νspan{βi} 使得 A γ = A ν \mathscr A\gamma=\mathscr A\nu Aγ=Aν,因为 s p a n { A β i } = s p a n { θ i } = Im ( A ) span\{\mathscr A\beta_i\}=span\{\theta_i\}=\text{Im}(\mathscr A) span{Aβi}=span{θi}=Im(A) 。于是 A ( γ − ν ) = 0 → \mathscr A(\gamma-\nu)=\overrightarrow{0} A(γν)=0 ,即 γ − ν ∈ ker ⁡ ( A ) = s p a n { α i } \gamma-\nu\in\ker(\mathscr A)=span\{\alpha_i\} γνker(A)=span{αi} 。所以有 s p a n { β i } + s p a n { α i } = V = s p a n { α i , β j } span\{\beta_i\}+span\{\alpha_i\}=V=span\{\alpha_i,\beta_j\} span{βi}+span{αi}=V=span{αi,βj}

再证其为直和,即 { α i , β j } \{\alpha_i,\beta_j\} {αi,βj} 线性无关。这简单至极1:若 ∑ λ i α i + ∑ φ i β i = 0 → \sum\lambda_i\alpha_i+\sum\varphi_i\beta_i=\overrightarrow{0} λiαi+φiβi=0 ,两边同时做线性变换 A \mathscr A A ∑ φ i θ i = 0 → \sum\varphi_i\theta_i=\overrightarrow{0} φiθi=0 。由于 ⟨ θ ⟩ \langle\theta\rangle θ 线性无关,所以必须 φ i = 0 \varphi_i=0 φi=0,代回原式得 ∑ λ i α i = 0 \sum\lambda_i\alpha_i=0 λiαi=0,由于 ⟨ α ⟩ \langle\alpha\rangle α 线性无关,所以 λ i = 0 \lambda_i=0 λi=0 。即全零为唯一解。所以线性无关。 ■ \blacksquare

坐标与矩阵

随意找一组基底 ⟨ α 1 , α 2 , … , α n ⟩ \langle\alpha_1,\alpha_2,\dots,\alpha_n\rangle α1,α2,,αn,则 ∀ β ∈ V \forall\beta\in V βV 可用唯一分解 β = ∑ λ i α i \beta=\sum\lambda_i\alpha_i β=λiαi 的系数 ⟨ λ ⟩ \langle\lambda\rangle λ 唯一确定。记为 β = ( λ 1 , λ 2 , … , λ n ) \beta=(\lambda_1,\lambda_2,\dots,\lambda_n) β=(λ1,λ2,,λn),称为 β \beta β 的坐标表示。

在坐标表示下,若 A α = β \mathscr A\alpha=\beta Aα=β,那么二者的坐标表示必然是线性关系(否则 A \mathscr A A 无法满足线性映射的性质)。于是可以找到系数矩阵 x i , j    ( 1 ⩽ i , j ⩽ n ) x_{i,j}\;(1\leqslant i,j\leqslant n) xi,j(1i,jn) 使得 λ b : i = ∑ j = 1 n x i , j λ a : j \lambda_{b:i}=\sum_{j=1}^{n}x_{i,j}\lambda_{a:j} λb:i=j=1nxi,jλa:j,这就是 A \mathscr A A 的矩阵表达。

矩阵的秩 rank \text{rank} rank 为矩阵中最多的线性无关列向量数量,也就是 dim ⁡ Im ( A ) \dim\text{Im}(A) dimIm(A),因为 A α A\alpha Aα 只能是这些列向量的线性和。

正交分解

线性变换的复合是 t r i v i a l \rm trivial trivial 的,显然其构成半群。而自复合则构成阿贝尔群 虽然这很蠢。因此关于 A \mathscr A A 的多项式环 P [ A ] P[\mathscr A] P[A] 构成交换环(乘法具有交换律)。

不变子空间

W W W V V V 的子空间,满足 ∀ α ∈ W ,    A α ∈ W \forall\alpha\in W,\;\mathscr A\alpha\in W αW,AαW,则 W W W V V V A \mathscr A A 上的不变子空间。

很明显 ker ⁡ ( A ) \ker(\mathscr A) ker(A) 就是一个不变子空间。尽管它可能小到只含零向量

定理:任何关于 A \mathscr A A 的多项式 f ( A ) f(\mathscr A) f(A) 都满足 ker ⁡ [ f ( A ) ] \ker[f(\mathscr A)] ker[f(A)] A \mathscr A A 上的不变子空间。

证明: ∀ α ∈ ker ⁡ [ f ( A ) ] ,    f ( A ) A α = A f ( A ) α = 0 →    ⟹    A α ∈ ker ⁡ [ f ( A ) ] \forall \alpha\in\ker[f(\mathscr A)],\;f(\mathscr A)\mathscr A\alpha=\mathscr Af(\mathscr A)\alpha=\overrightarrow{0}\implies\mathscr A\alpha\in\ker[f(\mathscr A)] αker[f(A)],f(A)Aα=Af(A)α=0 Aαker[f(A)] ■ \blacksquare

矩阵分解

如果我们能找到若干不变子空间 W 1 , W 2 , … , W k W_1,W_2,\dots,W_k W1,W2,,Wk 使得 W 1 ⊕ W 2 ⊕ ⋯ ⊕ W k = V W_1\oplus W_2\oplus\cdots\oplus W_k=V W1W2Wk=V,那么 V V V 有一组基底是所有 W i W_i Wi 的基底的并。在这个基底意义下,将 A \mathscr A A 矩阵化,将得到近乎 准对角矩阵,因为一组基底进行 A \mathscr A A 后的结果仍然可以用自己的线性和表示。

多项式分解

定理:若 f ( x ) = f 1 ( x ) f 2 ( x ) f(x)=f_1(x)f_2(x) f(x)=f1(x)f2(x) gcd ⁡ [ f 1 ( x ) , f 2 ( x ) ] = 1 \gcd[f_1(x),f_2(x)]=1 gcd[f1(x),f2(x)]=1(多项式构成 欧几里得环),则 ker ⁡ [ f ( A ) ] = ker ⁡ [ f 1 ( A ) ] ⊕ ker ⁡ [ f 2 ( A ) ] \ker[f(\mathscr A)]=\ker[f_1(\mathscr A)]\oplus\ker[f_2(\mathscr A)] ker[f(A)]=ker[f1(A)]ker[f2(A)]

证明: gcd ⁡ = 1 ⇔ ∃ t 1 ( x ) , t 2 ( x ) \gcd=1\Leftrightarrow \exists t_1(x),t_2(x) gcd=1t1(x),t2(x) 使得 t 1 ( x ) f 1 ( x ) + t 2 ( x ) f 2 ( x ) = 1 t_1(x)f_1(x)+t_2(x)f_2(x)=1 t1(x)f1(x)+t2(x)f2(x)=1

先证 ker ⁡ [ f ( A ) ] ⫅ ker ⁡ [ f 1 ( A ) ] + ker ⁡ [ f 2 ( A ) ] \ker[f(\mathscr A)]\subseteqq\ker[f_1(\mathscr A)]+\ker[f_2(\mathscr A)] ker[f(A)]ker[f1(A)]+ker[f2(A)] 。任取 α ∈ ker ⁡ [ f ( A ) ] \alpha\in\ker[f(\mathscr A)] αker[f(A)],令
{ β = t 2 ( A ) f 2 ( A ) α γ = t 1 ( A ) f 1 ( A ) α \begin{cases} \beta=t_2(\mathscr A)f_2(\mathscr A)\alpha\\ \gamma=t_1(\mathscr A)f_1(\mathscr A)\alpha \end{cases} {β=t2(A)f2(A)αγ=t1(A)f1(A)α

可见
f 1 ( A ) β = t 2 ( A ) f 1 ( A ) f 2 ( A ) α = t 2 ( A ) f ( A ) α = t 2 ( A ) 0 → = 0 → \begin{aligned} f_1(\mathscr A)\beta &=t_2(\mathscr A)f_1(\mathscr A)f_2(\mathscr A)\alpha\\ &=t_2(\mathscr A)f(\mathscr A)\alpha\\ &=t_2(\mathscr A)\overrightarrow{0}=\overrightarrow{0} \end{aligned} f1(A)β=t2(A)f1(A)f2(A)α=t2(A)f(A)α=t2(A)0 =0

β ∈ ker ⁡ [ f 1 ( A ) ] \beta\in\ker[f_1(\mathscr A)] βker[f1(A)] 。同理 γ ∈ ker ⁡ [ f 2 ( A ) ] \gamma\in\ker[f_2(\mathscr A)] γker[f2(A)] 。而 α = β + γ \alpha=\beta+\gamma α=β+γ,得证。

再证 ker ⁡ [ f ( A ) ] ⫆ ker ⁡ [ f 1 ( A ) ] + ker ⁡ [ f 2 ( A ) ] \ker[f(\mathscr A)]\supseteqq\ker[f_1(\mathscr A)]+\ker[f_2(\mathscr A)] ker[f(A)]ker[f1(A)]+ker[f2(A)] 。这是显而易见的。

最后证明二者无交集,为直和。若 α ∈ ker ⁡ [ f 1 ( A ) ] ∩ ker ⁡ [ f 2 ( A ) ] \alpha\in\ker[f_1(\mathscr A)]\cap\ker[f_2(\mathscr A)] αker[f1(A)]ker[f2(A)],则 α = [ t 1 ( A ) f 1 + t 2 ( A ) f 2 ( A ) ] α = 0 → \alpha=[t_1(\mathscr A)f_1+t_2(\mathscr A)f_2(\mathscr A)]\alpha=\overrightarrow{0} α=[t1(A)f1+t2(A)f2(A)]α=0 ■ \blacksquare

零化多项式

使得 f ( A ) = 0 f(\mathscr A)=0 f(A)=0 的多项式,就是 A \mathscr A A 的零化多项式。这里的 0 0 0 是基域 P P P 中的乘法零元。度数最小的首一零化多项式被称为最小多项式。

如果我们找到了 A \mathscr A A 的首一零化多项式 g ( A ) g(\mathscr A) g(A),不妨设 g ( x ) = ∏ ( x − γ i ) t i g(x)=\prod (x-\gamma_i)^{t_i} g(x)=(xγi)ti,利用 多项式分解 我们知道 ker ⁡ [ g ( A ) ] = ⨁ ker ⁡ [ ( A − γ i ) t i ] \ker[g(\mathscr A)]=\bigoplus\ker[(\mathscr A-\gamma_i)^{t_i}] ker[g(A)]=ker[(Aγi)ti] 。而 g ( A ) = 0 g(\mathscr A)=0 g(A)=0,这说明 ker ⁡ [ g ( A ) ] = V \ker[g(\mathscr A)]=V ker[g(A)]=V,所以 ker ⁡ [ ( A − γ i ) t i ] \ker[(\mathscr A-\gamma_i)^{t_i}] ker[(Aγi)ti] 是对原线性空间 V V V 的一个剖分。

不变子空间 中说过 ker ⁡ [ ( A − γ i ) t i ] \ker[(\mathscr A-\gamma_i)^{t_i}] ker[(Aγi)ti] A \mathscr A A 上的不变子空间,故在这些子空间中分别取基底,就可以将 A \mathscr A A 的矩阵形式转化为 准对角矩阵

特征多项式

A v = λ v    ( v ∈ V ∖ { 0 → } ,    λ ∈ P ) \mathscr Av=\lambda v\;(v\in V\setminus\{\overrightarrow 0\},\;\lambda\in P) Av=λv(vV{0 },λP) 则称 v v v A \mathscr A A 的特征向量, λ \lambda λ A \mathscr A A 的特征值。

求解是容易的:实际上就是 v ∈ ker ⁡ ( A − λ ) v\in\ker(\mathscr A-\lambda) vker(Aλ) 。在矩阵意义下, 0 ≠ dim ⁡ ker ⁡ ( A − λ I ) = dim ⁡ V − rank ( A − λ I ) 0\ne\dim\ker(A-\lambda I)=\dim V-\text{rank}(A-\lambda I) 0=dimker(AλI)=dimVrank(AλI),所以只要 A − λ I A-\lambda I AλI 不满秩即可。于是求解 λ \lambda λ 就是解方程
f ( λ ) = det ⁡ ( λ I − A ) = 0 f(\lambda)=\det(\lambda I-A)=0 f(λ)=det(λIA)=0

其中 det ⁡ ( B ) \det(B) det(B) 表示矩阵 B B B 的行列式。定义 f ( λ ) f(\lambda) f(λ) A A A 的特征多项式。不难发现 f ( x ) f(x) f(x) deg ⁡ = dim ⁡ V \deg=\dim V deg=dimV 的首一多项式。

有些有趣的性质。根据定义 f ( 0 ) = det ⁡ ( − A ) f(0)=\det(-A) f(0)=det(A),而同时我们知道 f ( x ) = ∏ ( x − λ i ) f(x)=\prod(x-\lambda_i) f(x)=(xλi)(因为每个根都是特征值),所以 ∏ λ i = det ⁡ ( − A ) \prod \lambda_i=\det(-A) λi=det(A) 。它的应用后面再说。

可能有重根;若 { λ i } \{\lambda_i\} {λi} 为互异的特征根,则 f ( x ) = ∏ ( x − λ i ) τ i f(x)=\prod(x-\lambda_i)^{\tau_i} f(x)=(xλi)τi,其中 τ i \tau_i τi λ i \lambda_i λi 的代数重数,而其对应的特征向量的张成子空间 s p a n { v    ∣    A v = λ i v } span\{v\;|\;Av=\lambda_i v\} span{vAv=λiv} dim ⁡ \dim dim λ i \lambda_i λi 的几何重数。

Cayley–Hamilton \text{Cayley–Hamilton} Cayley–Hamilton 定理:特征多项式是零化多项式。2

引理:若几何重数均为 1 1 1,则最小多项式就是特征多项式。3

相似变换

如果存在可逆矩阵 P P P 使得
B = P − 1 A P B=P^{-1}AP B=P1AP
那么 B B B 就和 A A A 是相似的。这个变换叫做相似变换。

其相似的本质是: B B B A A A 只是在不同的基底下考察相同的线性映射。

Jordan \text{Jordan} Jordan 标准型

因为译名有明显分歧——有译为 “约当” 的,也有译为 “若尔当” 的——所以就保留英文 Jordan \text{Jordan} Jordan 了。

定义 Jordan \text{Jordan} Jordan 块是形如
A i , j = { λ ( j = i ) [ j = i + 1 ] ( j ≠ i ) A_{i,j}=\begin{cases} \lambda& (j=i)\\ \lbrack j=i{+}1\rbrack & (j\ne i) \end{cases} Ai,j={λ[j=i+1](j=i)(j=i)

的方阵 A A A 。定义 Jordan \text{Jordan} Jordan 标准型矩阵是 Jordan \text{Jordan} Jordan 块构成的 准对角矩阵

定理:在不考虑 Jordan \text{Jordan} Jordan 块相对顺序时,每个矩阵都相似于唯一一个 Jordan \text{Jordan} Jordan 标准型矩阵。

按:每个 Jordan \text{Jordan} Jordan 块都是特征空间的一个基向量。因此 λ \lambda λ 对应的 Jordan \text{Jordan} Jordan 块的数量就是其几何重数。而大小显然是代数重数,因此我们得到

引理:每个特征值的几何重数不大于代数重数。

推论:矩阵可对角化,当且仅当其所有特征根的几何重数与代数重数相等。

Comment. 我并没有学会该知识点。从知乎文章中应该能学到更多东西。

迹( trace \text{trace} trace

矩阵 A A A 的迹被定义为
tr ⁡ A = ∑ i = 1 n a i , i \operatorname{tr}A=\sum_{i=1}^{n}a_{i,i} trA=i=1nai,i

即主对角线的元素和。很容易证明
tr ⁡ ( A B ) = tr ⁡ ( B A ) \operatorname{tr}(AB)=\operatorname{tr}(BA) tr(AB)=tr(BA)

因此我们可以证明相似矩阵的迹是相同的。
tr ⁡ ( P − 1 A P ) = tr ⁡ ( P P − 1 A ) = tr ⁡ A \operatorname{tr}(P^{-1}AP)=\operatorname{tr}(PP^{-1}A)=\operatorname{tr}A tr(P1AP)=tr(PP1A)=trA

通过 Jordan 标准型,我们立刻可以知道
tr ⁡ A = ∑ λ i \operatorname{tr}A=\sum\lambda_i trA=λi

其中 λ i \lambda_i λi A A A 的特征值,即 A A A 的特征多项式为 ∏ ( x − λ i ) \prod(x-\lambda_i) (xλi)

对偶空间( dual space \text{dual space} dual space

这里有一些对它的阐释。我并不很懂 dual space \text{dual space} dual space,因此先把参考文章贴出来。

线性空间 V V V 的对偶空间,记为 V ∗ V^\ast V,是全体 V V V 上的线性泛函。显然函数之间有加法与乘法,且构成矢量空间。

按:事实上,如果将 V ∗ V^\ast V 内元素用 对偶基 坐标化,那么其作用效果相当于向量内积。

对偶基( dual basis \text{dual basis} dual basis

V ∗ V^* V 存在一组基 { ϕ i } \{\phi_i\} {ϕi} 满足
ϕ i ( e j ) = [ i = j ] ϵ \phi_i(e_j)=[i=j]\epsilon ϕi(ej)=[i=j]ϵ

其中 { e j } \{e_j\} {ej} V V V 的一组基, ϵ \epsilon ϵ 是基域 P P P 的幺元。这组基 { ϕ i } \{\phi_i\} {ϕi} 被称为对偶基。

典范同构( canonical isomorphism \text{canonical isomorphism} canonical isomorphism

注意到 V ∗ V^* V 也是线性空间,因此 V ∗ V^* V 也存在对偶空间,记为 V ∗ ∗ V^{**} V∗∗,它被称为 V V V bidual \text{bidual} bidual

首先 dim ⁡ ( V ) = dim ⁡ ( V ∗ ) = dim ⁡ ( V ∗ ∗ ) \dim(V)=\dim(V^\ast)=\dim(V^{\ast\ast}) dim(V)=dim(V)=dim(V∗∗) 。而且 V V V V ∗ ∗ V^{\ast\ast} V∗∗ 之间存在典范同构:设 u ∈ V u\in V uV u ^ ∈ V ∗ ∗ \hat u\in V^{\ast\ast} u^V∗∗ 是同态元素,定义
u ^ ( ϕ ) = ϕ ( u ) ( ∀ ϕ ∈ V ∗ ) \hat u(\phi)=\phi(u)\quad(\forall\phi\in V^\ast) u^(ϕ)=ϕ(u)(ϕV)

不难验证 u ^ \hat u u^ V ∗ V^\ast V 上的线性泛函,且 u u u u ^ \hat u u^ 同态。

对偶映射( dual map \text{dual map} dual map

任取线性映射 f : V ↦ W f:V\mapsto W f:VW,则对于任意 W W W 上的线性泛函 h h h,可以发现复合函数 h ∘ f h\circ f hf V V V 上的线性泛函。并且它关于 h h h 肯定是 linear \text{linear} linear 的。因此这给出了 f ∗ : W ∗ ↦ V ∗ f^\ast:W^\ast\mapsto V^\ast f:WV 对偶空间之间的线性映射。这被称为 f f f 的对偶或 转置 transpose \text{transpose} transpose)。因为

定理 f ∗ f^\ast f dual basis \text{dual basis} dual basis 上的矩阵就是 f f f 的矩阵的转置。

证明:坐标化后, f f f 的矩阵的每一列就是 f ( e i ) f(e_i) f(ei),其中 { e i } \{e_i\} {ei} V V V 的基。

考虑 W W W 上的线性泛函 h = ⟨ x 1 , x 2 , ⋯   , x n ⟩ h=\langle x_1,x_2,\cdots,x_n\rangle h=x1,x2,,xn,尝试写出 h ∘ f h\circ f hf 的坐标。显然 e i e_i ei 将会提供 h ( f ( e i ) ) h(f(e_i)) h(f(ei)),也就是 η i = ∑ j x j A j , i \eta_i=\sum_{j}x_j A_{j,i} ηi=jxjAj,i,其中 A A A f f f 对应的矩阵,第 i i i 列恰为 f ( e i ) f(e_i) f(ei) 坐标。

不难发现这就是 A T h A^{\sf T}h ATh,因此 A T A^\mathsf{T} AT 就是 f ∗ f^\ast f 对应的矩阵。 ■ \blacksquare

伴随矩阵

对于 n × n n\times n n×n 方阵 A A A,将第 i i i 行、第 j j j 列元素移除后,剩余的行和列按原顺序排列,得到 ( n − 1 ) (n{\rm-}1) (n1) 阶方阵,其行列式记为 M i , j M_{i,j} Mi,j,称为余子式。

定义 C i , j = ( − 1 ) i + j M i , j C_{i,j}=(-1)^{i+j}M_{i,j} Ci,j=(1)i+jMi,j 为代数余子式,定义 A A A 的伴随矩阵 A ∗ A^{*} A A i , j ∗ = C j , i A^*_{i,j}=C_{j,i} Ai,j=Cj,i 。此时有
[ A × A ∗ ] i , j = ∑ k A i , k A k , j ∗ = ∑ k A i , k C j , k [A\times A^*]_{i,j}=\sum_{k}A_{i,k}A^*_{k,j}=\sum_{k}A_{i,k}C_{j,k} [A×A]i,j=kAi,kAk,j=kAi,kCj,k

i = j i=j i=j 时,该式为 det ⁡ ( A ) \det(A) det(A) 的按行展开 。当 i ≠ j i\ne j i=j 时,该值等价于将第 j j j 行元素替换为第 i i i 行元素后按行展开的 det ⁡ \det det,即 0 0 0 。于是我们得到
A × A ∗ = det ⁡ ( A ) ⋅ I A\times A^*=\det(A)\cdot I A×A=det(A)I

其中 I I I 是单位对角矩阵。

性质推导

rank ( A ) \text{rank}(A) rank(A) A A A 的秩,则
rank ⁡ ( A ∗ ) = { n , rank ⁡ ( A ) = n 1 , rank ⁡ ( A ) = n − 1 0 , rank ⁡ ( A ) < n − 1 \operatorname{rank}(A^*)= \begin{cases} n, &\operatorname{rank}(A)=n\\ 1, &\operatorname{rank}(A)=n-1\\ 0, &\operatorname{rank}(A)<n-1 \end{cases} rank(A)= n,1,0,rank(A)=nrank(A)=n1rank(A)<n1

对于第一项:对 A × A ∗ = det ⁡ ( A ) ⋅ I A\times A^*=\det(A)\cdot I A×A=det(A)I 两边同时取行列式得 det ⁡ ( A ) ⋅ det ⁡ ( A ∗ ) = det ⁡ ( A ) n ⇒ det ⁡ ( A ∗ ) = det ⁡ ( A ) n − 1 ≠ 0 \det(A)\cdot \det(A^*)=\det(A)^n\Rightarrow\det(A^*)=\det(A)^{n-1}\ne 0 det(A)det(A)=det(A)ndet(A)=det(A)n1=0 rank ⁡ ( A ∗ ) = n \operatorname{rank}(A^*)=n rank(A)=n

对于第三项:此时删去一行一列后,仍不满秩,故 M i , j = 0 M_{i,j}=0 Mi,j=0,即 A ∗ A^* A 为全零矩阵。

对于第二项:此时 A × A ∗ = det ⁡ ( A ) ⋅ I A\times A^*=\det(A)\cdot I A×A=det(A)I 为全零阵,所以 A ∗ A^* A 的列向量 v v v 满足 A v = 0 → Av=\overrightarrow{0} Av=0 。而 rank ⁡ ( A ) = n − 1 \operatorname{rank}(A)=n-1 rank(A)=n1,所以 A v = 0 Av=0 Av=0 的解 v v v 至多有一个自由元,即解空间的 dim ⁡ = 1 \dim=1 dim=1 。所以 A ∗ A^* A 的列向量组的秩为 1 1 1,即 rank ⁡ ( A ∗ ) = 1 \operatorname{rank}(A^*)=1 rank(A)=1

代码求解

在域上

rank ⁡ ( A ) = n \operatorname{rank}(A)=n rank(A)=n 时,由于 A − 1 A^{-1} A1 可以 O ( n 3 ) \mathcal O(n^3) O(n3) 求解,故 A ∗ = ∣ A ∣ ⋅ A − 1 A^*=|A|\cdot A^{-1} A=AA1 也可以快速求解。平凡情况 rank ⁡ ( A ) < n − 1 \operatorname{rank}(A)<n-1 rank(A)<n1 略。只需要讨论 rank ⁡ ( A ) = n − 1 \operatorname{rank}(A)=n-1 rank(A)=n1 的情况。

事实上,性质推导 中已经说过解法:解 A v = 0 Av=0 Av=0 可得非零向量特解 v 0 v_0 v0,则 A ∗ A^* A 的列向量都是 v v v 的若干倍。同理可解行向量 q q q 使得 q A = 0 qA=0 qA=0,则 q q q 也是 A ∗ A^* A 任意一行的若干倍。

存在 i , j i,j i,j 使得 v i q j ≠ 0 v_iq_j\ne 0 viqj=0 。暴力求出 C i , j C_{i,j} Ci,j,那么 A ∗ A^* A 列向量 “除以” v v v 的商的比值就是 q 1 , q 2 , … , q n q_1,q_2,\dots,q_n q1,q2,,qn,故 A x , y = q y q j ⋅ v x v i ⋅ A i , j A_{x,y}=\frac{q_y}{q_j}\cdot\frac{v_x}{v_i}\cdot A_{i,j} Ax,y=qjqyvivxAi,j,可以全部求出。总复杂度 O ( n 3 ) \mathcal O(n^3) O(n3)

在欧几里得环上

也就是说,我们主要的工具就只是高斯消元。考虑完全意义上的解决原问题:删去一行一列后求行列式。

首先枚举一行,将其删去,求出剩余矩阵高斯消元后的结果,不难发现其应只在 j ⩾ i − 1 j\geqslant i-1 ji1 a i , j ≠ 0 a_{i,j}\ne 0 ai,j=0 。我们姑且不考虑此步的复杂度。

再枚举删去哪一列,则左上方为对角矩阵、右下角为上海森堡矩阵。只需求解任意右下角 i × i i\times i i×i 上海森堡矩阵的行列式。将 det ⁡ \det det 按第一行展开得
f i = ∑ j = i n ( − 1 ) j − i f j + 1 a i , j ∏ k = i j − 1 a k , k f_i = \sum_{j=i}^{n} (-1)^{j-i} f_{j+1} a_{i,j}\prod_{k=i}^{j-1} a_{k,k} fi=j=in(1)jifj+1ai,jk=ij1ak,k

于是压力来到删去一行上。事实上只需分治,将确定要保留的部分立刻消元完毕。

消去一个变元的时间复杂度是 O [ n ⋅ ( n + log ⁡ ∣ R ∣ ) ] \mathcal O[n\cdot(n+\log|R|)] O[n(n+logR)],其中 ∣ R ∣ |R| R 是环的大小。共 O ( n log ⁡ n ) \mathcal O(n\log n) O(nlogn) 次消元,总复杂度 O ( n 3 log ⁡ n + n 2 log ⁡ n log ⁡ ∣ R ∣ ) \mathcal O(n^3\log n + n^2\log n\log|R|) O(n3logn+n2lognlogR)

在模合数的环上

前面的做法基于高斯消元。消元的本质是左乘初等行变换矩阵。所以我们实际上求出了
A ′ × A ∗ = det ⁡ ( A ) ⋅ C A'\times A^\ast = \det(A)\cdot C A×A=det(A)C

其中 C C C 是若干初等行变换矩阵的乘积, A ′ A' A 是高斯消元的结果。对两边同时提取 ( i , j ) (i,j) (i,j) 位置的系数,根据 A ′ A' A 为上三角矩阵的特性可知
∑ k ⩾ i A i , k ′ A k , j ∗ = det ⁡ ( A ) ⋅ C i , j \sum_{k\geqslant i} A'_{i,k} A^\ast_{k,j} = \det(A)\cdot C_{i,j} kiAi,kAk,j=det(A)Ci,j

只要 A i , i ′ A'_{i,i} Ai,i 的逆元存在,且 A ∗ A^* A 更靠后的行上的值已知,就可以得到 A i , j ∗ A^*_{i,j} Ai,j 了。因此只用讨论这些行。

不妨将所有这样的元素放在最后 k k k k k k 列的主对角线上(对应修改 C C C 矩阵即可)。则左上角的 ( n − k ) × ( n − k ) (n{-}k)\times(n{-}k) (nk)×(nk) 方阵是对角矩阵,而最后 k k k 列无法消元。

利用 CRT \textit{CRT} CRT,只需求出模数为 p τ p^{\tau} pτ 的答案。

定理:若 k > τ k>\tau k>τ 则所有余子式为 p k p^k pk 的倍数。

证明:把模数当成 p p p 之后 rank ⩽ n − τ \text{rank}\leqslant n-\tau ranknτ,删去一行之后仍有至少 ( τ − 1 ) (\tau{-}1) (τ1) 个主对角线元素为 0 0 0(是 p p p 的倍数)因此取模 p k p^k pk 意义下所有余子式是零。 ■ \blacksquare

因此 k ⩽ τ ⩽ log ⁡ P k\leqslant\tau\leqslant\log P kτlogP 时才需要计算;这 k k k 行套用 在欧几里得环上 的做法,时间复杂度 O ( n 3 + n 2 log ⁡ P log ⁡ log ⁡ P ) \mathcal O(n^3+n^2\log P\log\log P) O(n3+n2logPloglogP)

递推数列

常系数线性递推数列

其基础算法内容写在另一文中。

求向量或矩阵的最短递推式

设运算在 G F ( p ) \mathbb{GF}(p) GF(p) 下进行。先考虑求解向量列的最短递推式。

随机生成 n n n 维向量 v v v,则可以将每个向量先与 v v v 求内积,再求解内积的最短递推式。

不难发现,此时求出的线性递推式 A ( x ) A(x) A(x) 是使得 [ A ( x ) f ( x ) − R ( x ) ] ⋅ v = 0 [A(x)f(x)-R(x)]\cdot v=0 [A(x)f(x)R(x)]v=0 的解,其中多项式的系数为向量。根据 Schwartz–Zippel \text{Schwartz–Zippel} Schwartz–Zippel 引理4,随机向量 v v v 与非零向量相乘,得到零的概率不超过 n p \frac{n}{p} pn 。在 n ≪ p n\ll p np 时可以放心选用。

n × m n{\times}m n×m 矩阵列,可随机 n n n 维行向量和 m m m 维列向量,然后作向量乘法。同理,若矩阵非全零,第一次乘法得到零向量概率不超过 n p \frac{n}{p} pn,在非零向量情况下第二次乘法得到零概率不超过 m p \frac{m}{p} pm,所以正确率至少 ( p − n ) ( p − m ) p 2 ⩾ n + m p \frac{(p-n)(p-m)}{p^2}\geqslant\frac{n+m}{p} p2(pn)(pm)pn+m

求矩阵最小多项式

最短线性递推式就是最小多项式。且长度不超过 n n n,因为特征多项式是解。

于是我们只需要得到 { a b , a M b , a M 2 b , … , a M 2 n b } \{ab,aMb,aM^2b,\dots,aM^{2n}b\} {ab,aMb,aM2b,,aM2nb},其中 a , b a,b a,b 是随机向量, M M M 是原矩阵。对它作 BM \textit{BM} BM O ( n 2 ) \mathcal O(n^2) O(n2) 的,并非瓶颈。

全体 a M i aM^i aMi 可以 O ( n 3 ) \mathcal O(n^3) O(n3) 求出(总是用向量乘矩阵),然后乘 b b b,总复杂度 O ( n 3 ) \mathcal O(n^3) O(n3) 。特别地,若 M M M 只有 α \alpha α 个非零值,则 v M vM vM 的计算复杂度是 O ( n + α ) \mathcal O(n{+}\alpha) O(n+α),因此总复杂度为 O ( n 2 + α n ) \mathcal O(n^2{+}\alpha n) O(n2+αn) 。这将使得下面的算法对于稀疏矩阵有较好的结果。

解满秩线性方程组

先求出最小多项式 f ( x ) f(x) f(x),由 f ( A ) = 0 f(A)=0 f(A)=0 A − 1 A^{-1} A1 后移项得 A − 1 = − 1 [ x 0 ] f ( x ) ∑ i = 1 deg ⁡ ( f ( x ) ) A i − 1 [ x i ] f ( x ) A^{-1}=-\frac{1}{[x^0]f(x)}\sum_{i=1}^{\deg(f(x))}A^{i-1}[x^i]f(x) A1=[x0]f(x)1i=1deg(f(x))Ai1[xi]f(x) 。解满秩线性方程组就是求 A − 1 b A^{-1}b A1b,由上述等式,可以 O ( n 2 + α n ) \mathcal O(n^2{+}\alpha n) O(n2+αn) 的求出答案。

求稀疏矩阵行列式

引理 知,几何重数均为 1 1 1 时,最小多项式是特征多项式。特征多项式的常数项就是 det ⁡ ( − A ) \det(-A) det(A),由此可知 det ⁡ ( A ) \det(A) det(A) 。而最小多项式可以 O ( n 2 + α n ) \mathcal O(n^2{+}\alpha n) O(n2+αn)

遗憾的是 A A A 未必满足上述性质。于是随机 n × n n{\times}n n×n 对角矩阵 B B B,可以证明 A × B A\times B A×B 至少有 ( 1 − 2 n 2 − n p ) (1-\frac{2n^2-n}{p}) (1p2n2n) 的概率满足该性质3。求出 det ⁡ ( A × B ) \det(A\times B) det(A×B) 后除以 det ⁡ ( B ) \det(B) det(B) 即可。时间复杂度 O ( n 2 + α n ) \mathcal O(n^2{+}\alpha n) O(n2+αn)

整式递推数列

基本定义

若存在有限非空多项式列 { P 0 ( x ) , P 1 ( x ) , P 2 ( x ) , … , P m − 1 ( x ) } \{P_0(x),P_1(x),P_2(x),\dots,P_{m-1}(x)\} {P0(x),P1(x),P2(x),,Pm1(x)} 满足 P m − 1 ( x ) ≠ 0 P_{m-1}(x)\ne 0 Pm1(x)=0 ∑ i = 0 m − 1 P i ( x ) A ( i ) ( x ) = 0 \sum_{i=0}^{m-1}P_i(x)A^{(i)}(x)=0 i=0m1Pi(x)A(i)(x)=0,则称形式幂级数 A ( x ) A(x) A(x) 为微分有限( D-finite \text{D-finite} D-finite)的,其中 A ( i ) ( x ) A^{(i)}(x) A(i)(x) 表示 A ( x ) A(x) A(x) i i i 阶导函数。

若存在有限非空多项式列 { P 0 ( x ) , P 1 ( x ) , P 2 ( x ) , … , P m − 1 ( x ) } \{P_0(x),P_1(x),P_2(x),\dots,P_{m-1}(x)\} {P0(x),P1(x),P2(x),,Pm1(x)} 满足 P 0 ( x ) ≠ 0 P_0(x)\ne 0 P0(x)=0 ∑ i = 0 m − 1 a n − i P i ( n ) = 0    ( n ⩾ m − 1 ) \sum_{i=0}^{m-1}a_{n-i}P_i(n)=0\;(n\geqslant m{-}1) i=0m1aniPi(n)=0(nm1) 则称 { P i ( x ) } \{P_i(x)\} {Pi(x)} { a i } \{a_i\} {ai} 的整式递推式,此时 { a i } \{a_i\} {ai} 是一个整式递推数列。

也就是说,递推的系数是关于当前项的下标 n n n 的有理式(对于分式只需令 P 0 ( x ) P_0(x) P0(x) 为分母) 。但 deg ⁡ P i ( x ) = + ∞ \deg P_i(x)=+\infty degPi(x)=+ 时,不很令人满意……

定理 { a i } \{a_i\} {ai} 是整式递推数列,当且仅当其普通生成函数 A ( x ) A(x) A(x) 是微分有限的。

求复合后的系数

主要参考 EI \textsf{EI} EI干货讲义与配套的实验性讲稿 Prean \textsf{Prean} Prean重讲了一遍。

我也试试启发性讲法。这个想法的启发源自线性求 B e l l \rm Bell Bell 数:

欲求 [ x n ] exp ⁡ ( exp ⁡ ( x ) − 1 ) = [ x n ] ∑ i = 0 + ∞ ( exp ⁡ ( x ) − 1 ) i i ! [x^n]\exp(\exp(x)-1)=[x^n]\sum_{i=0}^{+\infty}\frac{(\exp(x)-1)^i}{i!} [xn]exp(exp(x)1)=[xn]i=0+i!(exp(x)1)i,由 [ x 0 ] exp ⁡ ( x ) − 1 = 0 [x^0]\exp(x)-1=0 [x0]exp(x)1=0 i > n i>n i>n 时无贡献。由此答案即为
[ x n ] ∑ i = 0 n ( exp ⁡ ( x ) − 1 ) i i ! = [ x n ] ∑ i = 0 n ∑ j = 0 i ( − 1 ) i − j exp ⁡ ( x j ) 1 j ! ( i − j ) ! = [ x n ] ∑ j = 0 n exp ⁡ ( x j ) j ! ∑ i = 0 n − j ( − 1 ) i i ! = ∑ j = 0 n j n j ! ∑ i = 0 n − j ( − 1 ) i i ! \begin{aligned} [x^n]\sum_{i=0}^{n}\frac{(\exp(x){-}1)^i}{i!} &=[x^n]\sum_{i=0}^n\sum_{j=0}^i(-1)^{i-j}\exp(xj)\frac{1}{j!(i{-}j)!}\\ &=[x^n]\sum_{j=0}^{n}\frac{\exp(xj)}{j!}\sum_{i=0}^{n-j}\frac{(-1)^i}{i!}\\ &=\sum_{j=0}^{n}\frac{j^n}{j!}\sum_{i=0}^{n-j}\frac{(-1)^i}{i!} \end{aligned} [xn]i=0ni!(exp(x)1)i=[xn]i=0nj=0i(1)ijexp(xj)j!(ij)!1=[xn]j=0nj!exp(xj)i=0nji!(1)i=j=0nj!jni=0nji!(1)i

后者是前缀和,可预处理。前者利用线性筛求出。时间复杂度 O ( n ) \mathcal O(n) O(n)

关键点:其一是内层函数常数项为零;其二是外层函数可展开为幂级数。

那么,更一般地,我们考虑求解 ∑ i = 0 n a i [ x i ] F ( G ( x ) ) \sum_{i=0}^{n}a_i[x^i]F(G(x)) i=0nai[xi]F(G(x)),其中 F ( x ) F(x) F(x) 是微分有限的,不妨设 ∑ j = 0 m − 1 P j ( x ) F ( j ) ( x ) = 0 \sum_{j=0}^{m-1}P_j(x)F^{(j)}(x)=0 j=0m1Pj(x)F(j)(x)=0 。引入系数 a i a_i ai 只是为了 用来卖萌 显得更通用。下面是 E I \sf EI EI 的讲法。

第一步,让 G ( x ) G(x) G(x) 常数为零(多项式平移)。直接写出微分有限的条件
∑ i = 0 m − 1 P i ( x + c ) F ( i ) ( x + c ) = 0 \sum_{i=0}^{m-1}P_i(x{+}c)F^{(i)}(x{+}c)=0 i=0m1Pi(x+c)F(i)(x+c)=0

因为答案就是关于 F ( y + c ) ∣ y = G ( x ) − c F(y{+}c)\Big|_{y=G(x)-c} F(y+c) y=G(x)c 的,并且只需 y n y^n yn 以内的项。

第二步,截断。令 F ( x + c ) = F ( x + c )   m o d   x n + 1 \mathscr F(x{+}c)=F(x{+}c)\bmod x^{n+1} F(x+c)=F(x+c)modxn+1,考虑对方程的影响。设 γ = max ⁡ deg ⁡ ( P i ) \gamma=\max\deg(P_i) γ=maxdeg(Pi),显然会存在多项式 D ( x ) \mathscr D(x) D(x),其只在 x n − m + 2 x^{n-m+2} xnm+2 x n + γ x^{n+\gamma} xn+γ 项有值,且
∑ i = 0 m − 1 P i ( x + c ) F ( i ) ( x + c ) = D ( x ) ⇒ ∑ i = 0 m − 1 P i ( x ) F ( i ) ( x ) = D ( x − c ) \begin{aligned} \sum_{i=0}^{m-1}P_i(x{+}c)\mathscr{F}^{(i)}(x{+}c)&=\mathscr{D}(x)\\ \Rightarrow\sum_{i=0}^{m-1}P_i(x)\mathscr{F}^{(i)}(x)&=\mathscr{D}(x{-}c) \end{aligned} i=0m1Pi(x+c)F(i)(x+c)i=0m1Pi(x)F(i)(x)=D(x)=D(xc)

两边对比系数可以 O ( m γ n ) \mathcal O(m\gamma n) O(mγn) 求出 [ x i ] F ( x )    ( i ⩽ n ) [x^i]\mathscr{F}(x)\;(i\leqslant n) [xi]F(x)(in) 。对于需自行推导的多项式,一般 m , γ m,\gamma m,γ 都是常数级别。

第三步,求答案。由于截断过程实际上只消去了 ( G ( x ) − c ) (G(x){-}c) (G(x)c) ( n + 1 ) (n{+}1) (n+1) 及更高次项,所以答案不受影响,即
∑ i = 0 n a i [ x i ] F ( G ( x ) ) = ∑ i = 0 n a i [ x i ] F ( G ( x ) ) = ∑ i = 0 n a i [ x i ] ∑ j = 0 n G ( x ) j [ x j ] F ( x ) = ∑ j = 0 n [ x j ] F ( x ) ∑ i = 0 n a i [ x i ] G ( x ) j \begin{aligned} \sum_{i=0}^{n}a_i[x^i]F(G(x)) =\sum_{i=0}^{n}a_i[x^i]\mathscr{F}(G(x))\\ =\sum_{i=0}^{n}a_i[x^i]\sum_{j=0}^{n}G(x)^j[x^j]\mathscr{F}(x)\\ =\sum_{j=0}^{n}[x^j]\mathscr{F}(x)\sum_{i=0}^{n}a_i[x^i]G(x)^j \end{aligned} i=0nai[xi]F(G(x))=i=0nai[xi]F(G(x))=i=0nai[xi]j=0nG(x)j[xj]F(x)=j=0n[xj]F(x)i=0nai[xi]G(x)j

所以我们只需快速求出 G ( x ) j    ( j ⩽ n ) G(x)^j\;(j\leqslant n) G(x)j(jn) 中某些系数的线性和。当 { a i } \{a_i\} {ai} 非零值少,或 G ( x ) G(x) G(x) 形式简单时,这是很可能实现的。例题较零碎,写于他处


  1. 补充一句: A 0 → = 0 → \mathscr A\overrightarrow{0}=\overrightarrow{0} A0 =0 ,因为 A \mathscr A A 需要对加法有 “分配律”,那么单位元必须仍然是单位元。 ↩︎

  2. 定理证明参见维基百科因为我看不懂。或参见 E I \sf EI EI博客,当然其更难懂。 ↩︎

  3. 2019 2019 2019 年论文《两类递推数列的性质和应用》被提及;我无法给出证明。 ↩︎ ↩︎

  4. 引理内容参见维基百科↩︎

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值