Jordan标准形的求法——以一个四阶矩阵为例

一个简单的例子

这篇博客里,我们会求一个矩阵的Jordan标准形(在C中):

A=[3100110030534131]

我们会顺着上一篇博客的思路,用一个比较“机械”的办法,求出矩阵的Jordan标准形。但是,每一步的原因都是能给出的。“机械”的意思是说,有章可循。如果你有编程基础,你完全可以依照这个办法把求Jordan标准形的步骤写成程序。不过,通往Jordan标准形的路有好几条,我觉得更适合用计算机程序写的路不应该是这篇博客的办法,而应该是这个网站的计算办法。

1. 求特征多项式、极小多项式

求这个矩阵的特征多项式能得到

f(λ)=(λ2)2(λ(35i))(λ(3+5i))

当然,这个矩阵是不能对角化的,因为我们可以发现有

m(λ)=f(λ)

求这两个方程的目的是显然的,Jordan要用到准素分解、循环分解,而准素分解需要用到极小多项式,极小多项式又和特征多项式有很多联系。

同时,我们能得到特征根

λ1=2λ2=2λ3=35iλ4=3+5i

2. 对矩阵进行准素分解

我们已经知道,在C上存在可逆矩阵P使得

A=P1[A1A2A3]P

其中A1的特征多项式f1=(λ2)2,极小多项式m1=(λ2)2A2的极小多项式和特征多项式m2=f2=λ(35i)A3的极小多项式和特征多项式m3=f3=λ(3+5i)

这就是之前讲过的先进行准素分解。先利用极小多项式的因子进行切割,然后在每个子矩阵进行仔细分析。下面是详细步骤。


我们已经知道,有

C4=ker(λ2)2ker(λ(35i))ker(λ(3+5i))

所以我们需要求出4个广义特征向量。由(AI)2v=0

v1=[14100]v2=[34010]

(A(35i)I)v=0

v3=[0025i31]

(A(3+5i)I)v=0

v4=[002+5i31]

我们得到了过渡矩阵

P=[14340010000125i32+5i30011]

且有准素分解

P1AP=[54340034114000035i00003+5i]

这就对应了本节开始的

A1=[543434114],A2=[35i],A3=[3+5i].

特征多项式和极小多项式都是可以直接验证的。

3. 对准素分解得到的子矩阵进行循环分解

首先,我们仔细回顾一下,为了得到Jordan链,我们需要进行什么工作。对于矩阵Ai,我们进行循环分解,得到有理标准形

Qi1AiQi=diag(Ai1,,Airi)

然后,对每个子矩阵Aijmij=(λλi)kij的友阵),考虑Bij=AijλiI,不难发现Bij的极小多项式是λkij,所以只需要再对Bij进行一次循环分解即可(如果很难理解,可以回顾一下上篇博客)。按照这个原理,在准素分解得到的A1A2A3中,后两个的阶数为1,已经不需要分解,相似于自己即可。

对于矩阵

A1=[543434114]

考虑到不变因子m11=(λ2)2=λ24λ+4,有且仅有一个,我们能得到它的有理标准形是

A11=[0414]

A1A11的过渡矩阵可以取循环基α=(1,0)TA1α=(54,34)T,构成过渡矩阵Q=[154034]。此时就有

Q1A1Q=A11

B11=A112I=[2412],又重新取循环基,α=(1,0)TB11α=(2,1)T,得到过渡矩阵U=[1201],这个时候又有

U1B11U=[0010]

从而对于A11来说又有

U1A11U=[2012]

再回到矩阵A1,又有

U1Q1A1QU=[2012]

V1=QU,我们就得到了A1=V11J2(2)V1,得到一个和Jordan块的相似。

4. 将所有矩阵组装起来,得到原矩阵到Jordan标准形的总过渡矩阵

对于A2A3来说,对应的V2V3都是一阶单位矩阵,因为本身就已经不能再化简了。结果,我们得到了从diag(A11,A22,A33)到Jordan标准形的过渡矩阵S=diag(V1,V2,V3),也就是说

S=[134000340000100001]

满足

S1[54340034114000035i00003+5i]S=[200012000035i00003+5i]=J

最后再加上用来准素分解的P,我们就得到了从原矩阵A到Jordan标准形J的过渡矩阵

T=PS=[1434001340003425i32+5i30011]

满足T1AT=J。到这里,我们的过渡矩阵就被求出来了。每一步都有缘由,都直接运用前面的线性代数理论,没有任何偏差。

但是要注意,Jordan标准形中,指定特征值下的Jordan块,不一定只有一个。这篇博客中的矩阵A,在特征值为2下有一个,这是因为极小多项式和特征多项式恰好相等。Jordan标准形中有多个相同特征值下的Jordan块的例子有没有?当然有,而且很简单,单位矩阵就是一个例子。

Comments