約當標準形

約當塊的函數

怎麼把一個函數 f(如 exp、sqrt 或多項式)作用到矩陣上?在單個約當塊上,答案優美而顯式:f(J_k(lambda)) 是上三角的,對角線上是 f(lambda),往上的各條超對角線依次是 f'(lambda)、f''(lambda)/2!、...——即 f 在 lambda 處的泰勒係數。

把 J 寫成 lambda*I + N,其中 N 是冪零移位(N^k = 0)。則形式上 f(J) = sum(j>=0)f^{(j)}(lambda)/j! * N^j,由於 N^k = 0,這個和在 k 項後終止。因為 N^j 在第 j 條超對角線上為 1,所以 f(J) 的 (p,q) 元在 q >= p 時為 f^{(q-p)}(lambda)/(q-p)!,對角線以下為 0。只有 f(lambda), f'(lambda), ..., f^{(k-1)}(lambda) 這些值有關係。

這是矩陣函數演算的引擎。要對一般 A 計算 f(A):換到約當基使 A = P J P^-1,用上面的泰勒公式逐塊作用 f,再共軛回去:f(A) = P f(J) P^-1。只要 f 在每個特徵值附近解析(且所需導數存在),它就成立。

正是這條注意點讓約當形在此不可或缺:對一個虧損(defective)矩陣,你確實需要導數,而不只是值 f(lambda)。一個僅僅可對角化的矩陣只會在每個特徵值上用 f(lambda);超對角線上的那些導數項,恰恰是非對角線上的 1 留下的印記。

f(J_3(lambda)) = [f(lambda) f'(lambda) f''(lambda)/2; 0 f(lambda) f'(lambda); 0 0 f(lambda)]

大小為 3 的塊的函數:f 在 lambda 處的泰勒係數沿各條超對角線上升。

兩個函數給出相同的 f(A),當且僅當它們在每個特徵值的值以及前(塊大小減 1)階導數上都一致。

又稱
holomorphic functional calculus on a block约当块上的函数演算約當塊上的函數演算