本文的閱讀等級:高級
前文“Jordan 形式大解讀(上)”說明了 Jordan 矩陣 蘊含的矩陣特徵訊息,本文將利用這些結果設計一個 Jordan 典型形式計算法。考慮以下問題:給定一
階矩陣
,試求一
階可逆矩陣
使得
,其中
為 Jordan 矩陣。我們假設已經得知
的所有相異特徵值
,
,但各個特徵值的相重數可以是未知的。下面介紹的演算法分為兩階段:先解出 Jordan 矩陣
,再推算相似變換矩陣
。
Jordan 矩陣 由對應相異特徵值
的超級 Jordan 分塊
的直和構成:
其中 階超級 Jordan 分塊
的結構完全由
決定,
,第一階段的任務是設法從矩陣
得到上述資訊。由相似變換
可知
,接著推得
上式表明冪矩陣 相似於
,由於相似變換不改變矩陣秩,於是有
。接下來的問題是超級 Jordan 分塊秩
和 Jordan 矩陣秩
之間有什麼關係?考慮這個
矩陣的直和表達式:
直和的冪矩陣同樣也可表示為直和形式:
明顯地,矩陣直和的秩等於各分塊秩之和:
因此斷定
當 ,
的主對角元皆不為零,也就是說,對於任意
,
都是滿秩的,
。因為
,可得
並定義 。縱使我們不確知
,由上式仍然可以算出矩陣秩差額,如下:
對應特徵值 ,
階基本 Jordan 分塊的個數即為
我們用一個例子展示 Jordan 形式 的計算過程。考慮這個
階方陣 (取自“Jordan 典型形式淺說(下)”)
上三角矩陣 的主對角元即為特徵值,
有兩相異特徵值
,
,因此 Jordan 矩陣
由兩個超級 Jordan 分塊的直和構成:
首先計算 和
,從
開始,直到
,如下:
:
:
冪矩陣秩 停止改變表示
,此
值即為
的指標,亦即最大的基本 Jordan 分塊尺寸,本例中,
的指標為
,
的指標也為
。接著分別就各特徵值計算矩陣秩差額:
:
:
最後算出所有特徵值所含的各尺寸基本 Jordan 分塊數:
:
:
結論:對應 僅存在
個
基本分塊,
有
個
基本分塊和
個
基本分塊,所以超級 Jordan 分塊分別是
Jordan 矩陣 即為
一旦得到了 Jordan 矩陣 ,我們便可利用它來推算相似變換矩陣
。暫時只考慮對應特徵值
的一個
階基本分塊
,主要關係式
具有下列形式:
其中我們令矩陣 對應基本分塊
的行向量為
,去除其他不相關的部分可得
展開矩陣乘積導出下列 個方程式,依序解出
:
注意 就是對應
的特徵向量,而
則為廣義特徵向量,這些向量滿足
,
。
回到我們的例子,寫出
廣義特徵向量的標準算法略為複雜 (見“Jordan 型式大解讀之尋找廣義特徵向量”),不過小型矩陣則相對容易計算。將上式乘開,爲了解出 ,選擇
,結果如下:
即得到相似變換矩陣
最後我們將推演出的 Jordan 形式算法整理於下:
- 求出
的所有相異特徵值
,
,如果可能的話直接解出特徵多項式的根。提醒讀者,這是最麻煩的計算步驟。
- 針對
的每個相異特徵值
,計算
,
,直到矩陣秩不改變為止,分析計算結果可得超級 Jordan 分塊
,它們的直和即為 Jordan 矩陣
。
- 就
的每個相異特徵值
,根據步驟 (2) 得到的超級 Jordan 分塊
解出對應各基本 Jordan 分塊的特徵向量和廣義特徵向量,相似變換矩陣
即由這些向量組成。
理論上,上述 Jordan 形式算法適用於任意 階矩陣
,但我們並不建議將此法應用於數值計算,理由是 Jordan 形式在本質上是一個數值不穩定結構。舉例來說,
,
,則
,其中
,
。當
,
,
,然而零矩陣並非
的 Jordan 矩陣,
的轉置即為其 Jordan 矩陣。Jordan 形式之所以不具數值穩定性的原因在於矩陣秩
不為
的連續函數,例如,
,當
,
,但若
,則
。不連續的矩陣秩可能引發災難,我們看到矩陣
各元的極小擾動量便足以造成 Jordan 矩陣
的劇烈變動,很不幸,這是 Jordan 形式與生俱來無可逃避的宿命。
縱使就數值應用而言,Jordan 形式沒有任何實用價值,但它還是一個好用的矩陣理論分析利器。如果我們想要證明某類型的矩陣具備一些特殊的性質,可以先從形式較簡單可對角化矩陣著手,之後再繼續延伸至 Jordan 矩陣與其相似矩陣。譬如,證明 相似於
的最便捷方式即是透過兩者擁有相同的 Jordan 形式 (參閱“矩陣與其轉置的相似性”)。
一個小地方不甚明白:
Jordan 形式之所以不具數值穩定性的原因在於 矩陣秩rank(A)不為A的連續函數.
可以請老師再說明清楚一點嗎? 謝謝喔
我應該這樣說:矩陣
的 Jordan form
未必是
各元
的連續函數,如上面的例子所顯示的那樣。
然後,我應該再說:本文以計算
方式求得
矩陣的演算法不具備數值穩定性,因為
不是一個連續函數,
可能因為受到微小擾動而產生大改變。
MATLAB 計算 Jordan form 的指令說明如下:
http://www.mathworks.com/help/toolbox/symbolic/jordan.html
J = jordan(A) computes the Jordan canonical (normal) form of a symbolic or numeric matrix A. The Jordan form of a numeric matrix is extremely sensitive to numerical errors. To compute Jordan canonical form of a matrix, represent the elements of the matrix by integers or ratios of small integers, if possible.
上篇所讲“超级块
每增加一次幂损失的矩阵秩,恰好等于阶数大于或等于 p 的基本Jordan 分块总数”不甚了解。此讲中演算得出的
每增加一次幂所损失的矩阵秩可以用对应的超级块来计算, 但这算出来的值又如何与某个超级快
的具体分块方式有联系呢,毕竟一个是
而另一个
?
我將你的迴響編輯過以正確顯示LaTeX,方法是在 $J(0)$ 的第一個$後面加入latex和一個空格。
Jordan form
可以表示為超級Jordan 分塊
的直和,因此解析過程是針對每一個特徵值
,找出
的基本分塊結構。而後者可由冪零矩陣
算得(過程如上文(3)Jordan 分塊所述,有些複雜,你可能要多讀幾遍),關鍵式:
但
相似於
,因此我們可以直接從
推導出超級Jordan 分塊
。
可能我是学习软件工程,而非数学专业,所以有些吃力。又看几遍后,这是我的理解思路,我将整个过程调整了顺序,老师您看看对不对:一,正如上篇所讲,超级块
结构可由对应的矩阵
相邻幂之间的矩阵秩差值求得。二,通过演算发现
的矩阵秩的差值可由矩阵J的差值表示,而不需要知道具体每个超级块大小,(当然这也是因为我们无法知道J,所以无法知道每个超级块形状,否则直接就可以算超级块的矩阵秩差值)也就是结论
。三,由于我们不知道矩阵J,然而却可以根据相似,通过原始矩阵A来求得矩阵J的秩。
不好意思,第一次公式没能显示,再写一次。可能我是学习软件工程,而非数学专业,所以有些吃力。又看几遍后,这是我的理解思路,我将整个过程调整了顺序,老师您看看对不对:一,正如上篇所讲,超级块
结构可由对应的矩阵
相邻幂之间的矩阵秩差值求得。二,通过演算发现
的矩阵秩的差值可由矩阵J的差值表示,而不需要知道具体每个超级块大小,(当然这也是因为我们无法知道J,所以无法知道每个超级块形状,否则直接就可以算超级块的矩阵秩差值)也就是结论
。三,由于我们不知道矩阵J,然而却可以根据相似,通过原始矩阵A来求得矩阵J的秩。
總結得很清楚,完全正確。
可能我还是没能弄对,latex公式好像只能显示第一个,其他的不能显示,如您所说在$xxxx$的第一个$后加latex和空格,其他不变。
你將 \lambda 打成 \lamda 了。
請問一下
有一矩陣A,J為A的jordan form
則有一可逆矩陣P使P^(-1)AP=J
而這個可逆矩陣唯一嗎
謝謝
如果不考慮Jordan分塊的排序,
是唯一的,但
不是唯一的,表面的例子如
,底層的原因比較複雜,見下文例子的步驟三:
https://ccjou.wordpress.com/2011/02/14/jordan-%E5%BD%A2%E5%BC%8F%E5%A4%A7%E8%A7%A3%E8%AE%80%E4%B9%8B%E5%B0%8B%E6%89%BE%E5%BB%A3%E7%BE%A9%E7%89%B9%E5%BE%B5%E5%90%91%E9%87%8F/