線性代數之——A 的 LU 分解
1. A = LU
之前在消元的過程中,我們看到可以將矩陣 變成一個上三角矩陣 , 的對角線上就是主元。下面我們將這個過程反過來,通一個下三角矩陣 我們可以從 得到 , 中的元素也就是乘數 。
如果有一個 3*3 的矩陣,假設不需要進行行交換,那我們需要三個消元矩陣 來分別使矩陣 的 (2, 1)、(3, 1) 和 (3, 2) 位置為零,然後我們就有
乘數 正好就是 中 處的元素。因為當我們計算 的第三行的時候,實際上是用 的第三行減去 的前兩行的一些倍數。
因此有
下面看一個特殊的例子
如果 的某一行以 0 開始,說明該位置不需要進行消元,也即 中對應位置的元素為 0。
如果 的某一列以 0 開始,該位置元素在消元過程始終不會改變,也即 中對應位置的元素為 0。
由於 的對角線上都是 1,而 的對角線上為主元,因此,這是不對稱的。我們可以進一步將 進行分解,使得 的對角線上元素也都為 1。
這時候, 的分解就變成了 ,其中 是一個對角矩陣, 是一個下三角矩陣, 是一個上三角矩陣。
當我們從左邊的 得到 和 後,我們就對右邊的 進行同樣的消元過程得到 ,然後再通過迴帶 求出方程組的解。
2. 消元過程的計算複雜度
假設我們有一個 的矩陣,首先我們要將第一列主元以下的元素都變成 。這時候,每一個元素變成 我們都需要 次乘法和 次減法,總共有 個元素需要變成 ,總的乘法次數為 ,近似為 。然後,我們要依次將後面列的主元下面的元素變成 ,需要的總的乘法次數為 。
也就是說對左邊的 消元要進行 次的乘法操作和 次的加法操作。
再來看右邊對 進行消元,首先我們需要將 都減去 ,需要 次操作,往後我們依次需要 次操作。迴帶的時候,求解最後一個方程的時候,我們只需要進行 1 次操作,依次往上我們需要 次操作。因此,求解的過程總共需要 次的乘法操作和 次的加法操作
3. 轉置和置換矩陣
的轉置矩陣稱為 ,其中 的列就是 的行,也即 。