1. 程式人生 > >線性代數之——A 的 LU 分解

線性代數之——A 的 LU 分解

1. A = LU

之前在消元的過程中,我們看到可以將矩陣 A A 變成一個上三角矩陣 U U U

U 的對角線上就是主元。下面我們將這個過程反過來,通一個下三角矩陣 L L 我們可以從 U U 得到 A
A
L L 中的元素也就是乘數 l i j
l_{ij}

如果有一個 3*3 的矩陣,假設不需要進行行交換,那我們需要三個消元矩陣 E 21 , E 31 , E 32 E_{21}, E_{31}, E_{32} 來分別使矩陣 A A 的 (2, 1)、(3, 1) 和 (3, 2) 位置為零,然後我們就有

乘數 l i j l_{ij} 正好就是 L L ( i , j ) (i, j) 處的元素。因為當我們計算 U U 的第三行的時候,實際上是用 A A 的第三行減去 U U 的前兩行的一些倍數。

因此有

下面看一個特殊的例子

如果 A A 的某一行以 0 開始,說明該位置不需要進行消元,也即 L L 中對應位置的元素為 0。

如果 A A 的某一列以 0 開始,該位置元素在消元過程始終不會改變,也即 U U 中對應位置的元素為 0。

由於 L L 的對角線上都是 1,而 U U 的對角線上為主元,因此,這是不對稱的。我們可以進一步將 U U 進行分解,使得 U U 的對角線上元素也都為 1。

這時候, A A 的分解就變成了 A = L U = L D U A = LU = LDU ,其中 D D 是一個對角矩陣, L L 是一個下三角矩陣, U U 是一個上三角矩陣。

當我們從左邊的 A A 得到 L L U U 後,我們就對右邊的 b b 進行同樣的消元過程得到 L c = b Lc = b ,然後再通過迴帶 U x = c Ux=c 求出方程組的解。

2. 消元過程的計算複雜度

假設我們有一個 n n n*n 的矩陣,首先我們要將第一列主元以下的元素都變成 0 0 。這時候,每一個元素變成 0 0 我們都需要 n n 次乘法和 n n 次減法,總共有 n 1 n-1 個元素需要變成 0 0 ,總的乘法次數為 n ( n 1 ) n(n-1) ,近似為 n 2 n^2 。然後,我們要依次將後面列的主元下面的元素變成 0 0 ,需要的總的乘法次數為 n 2 + ( n 1 ) 2 + + 2 + 1 1 3 n 3 n^2+(n-1)^2+\cdots + 2 + 1 \approx \frac{1}{3}n^3

也就是說對左邊的 A A 消元要進行 1 3 n 3 \frac{1}{3}n^3 次的乘法操作和 1 3 n 3 \frac{1}{3}n^3 次的加法操作。

再來看右邊對 b b 進行消元,首先我們需要將 b 2 , b 3 b n b_2, b_3 \cdots b_n 都減去 b 1 b_1 ,需要 n 1 n-1 次操作,往後我們依次需要 n 2 , n 3 1 n-2, n-3 \cdots 1 次操作。迴帶的時候,求解最後一個方程的時候,我們只需要進行 1 次操作,依次往上我們需要 2 , 3 n 2, 3 \cdots n 次操作。因此,求解的過程總共需要 n 2 n^2 次的乘法操作和 n 2 n^2 次的加法操作

3. 轉置和置換矩陣

A A 的轉置矩陣稱為 A T A^T ,其中 A T A^T 的列就是 A A 的行,也即 ( A T ) i j = A j i (A^T)_{ij} = A_{ji}

( A + B ) T = A T + B T (A+B)^T = A^T + B^T
( A B ) T = B T A T (AB)^T = B^TA^T

相關推薦

線性代數——ALU 分解

1. A = LU 之前在消元的過程中,我們看到可以將矩陣 A A A 變成一個上三角矩陣

線性代數——對角化和 A 的冪

利用特徵向量的屬性,矩陣 \(A\) 可以變成一個對角化矩陣 \(\Lambda\)。 1. 對角化 假設一個 \(n×n\) 的矩陣 \(A\) 有 \(n\) 個線性不相關的特徵向量 \(x_1,\cdots,x_n\) ,把它們作為特徵向量矩陣 \(S\) 的列,那麼就有 \(S^{-1}

線性代數二------任意階行列式的計算

code 數學 都是 sum bsp 表達 logs 就會 觀察 上一篇,我們講到了二階行列式的定義,接下來我們要將其拓展到任意階的行列式。 在此之前,我們要講一個叫做逆序數的東西,它與行列式的定義可謂是息息相關。 那麽,什麽是逆序數呢? 眾所周知,任意一個大小為n的集合都

線性代數行列式的C#研究實現

學習 ops {0} builder att interop turn gen new 最近學習機器學習 才發現以前數學沒有學好 開始從線性代數開始學起 讀完行列式一章寫了些C#的代碼學習一下。 直接上C#代碼: using System; using Syste

線性代數——行影象和列影象

1. 線性方程組的幾何解釋 線性代數的中心問題就是解決一個方程組,這些方程都是線性的,也就是未知數都是乘以一個數字的。 \[\begin{alignedat}{2} &x \space- \space&2&y \space=\space 1 \\ 3&x\space+\sp

線性代數——消元法

1. 消元的思想 針對下面的方程,我們無法直接得到方程的解。 \[\begin{alignedat}{2} &x \space- \space&2&y \space=\space 1 \\ 3&x\space+\space&2&y \space=\space

線性代數——矩陣乘法和逆矩陣

1. 矩陣乘法 如果矩陣 \(B\) 的列為 \(b_1, b_2, b_3\),那麼 \(EB\) 的列就是 \(Eb_1, Eb_2, Eb_3\)。 \[\boldsymbol{EB = E[b_1 \quad b_2 \quad b_3] = [Eb_1 \quad Eb_2 \quad Eb_3

線性代數——向量空間

1. 向量空間和子空間 向量空間 \(\boldsymbol R^n\) 由所有的 \(n\) 維向量 \(v\) 組成,向量中的每個元素都是實數。 向量空間 \(\boldsymbol R^2\) 可以用 \(xy\) 平面來表示,其中的每個向量有兩個元素,它們定義了平面上一個點的座標。 在一個

線性代數——秩和解的結構

1. 矩陣的秩 \(m\) 和 \(n\) 給出了矩陣的大小,但卻不是線性方程組的真正大小。因為,一個 \(0=0\) 的方程實際上是不算的。如果 \(A\) 中有完全相等的兩行,或者第三行是第一行和第二行的線性組合,那麼消元過程中就會出現全零的行。線性方程組的真正大小由秩來確定。 矩陣的秩是主元的

線性代數——向量簡介

1. 二維向量 在二維平面中,一個二維向量可以用一個箭頭來表示,這個箭頭起始於原點,終點座標 ( x

線性代數——正交向量與子空間

1. 正交子空間 兩個向量垂直,意味著 \(v^Tw=0\)。 兩個子空間 \(\boldsymbol V\) 和 \(\boldsymbol W\) 是正交的,如果\(\boldsymbol V\) 中的每個向量 \(v\) 都垂直於 \(\boldsymbol W\) 中的每個向量 \(w\)。

線性代數——子空間投影

1. 投影 向量 $ b = (2, 3, 4)$ 在 \(z\) 軸上和在 \(xy\) 平面上的投影是什麼,哪個矩陣能產生到一條線上和到一個平面的投影? 當 \(b\) 被投影到 \(z\) 軸上時,它的投影 \(p\) 就是 \(b\) 沿著那條線的部分。當 \(b\) 被投影到一個平面時,它的投影

線性代數——四個基本子空間

1. 四個基本子空間 行空間 C ( A

線性代數——線性相關性、基和維數

1. 線性相關性 矩陣 A A A 的列是線性不相關的當且僅當

線性代數——行列式及其性質

方陣的行列式是一個數字,這個數字包含了矩陣的大量資訊。首先,它立即告訴了我們這個矩陣是否可逆。矩陣的行列式為零的話,矩陣就沒有逆矩陣。當 \(A\) 可逆的時候,其逆矩陣 \(A^{-1}\) 的行列式為 \(1 / det(A)\)。 行列式可以用來求逆矩陣、計算主元和求解方程組,但是我們很少這樣做,因為

線性代數——正交矩陣和 Gram-Schmidt 正交化

這部分我們有兩個目標。一是瞭解正交性是怎麼讓 \(\hat x\) 、\(p\) 、\(P\) 的計算變得簡單的,這種情況下,\(A^TA\) 將會是一個對角矩陣。二是學會怎麼從原始向量中構建出正交向量。 1. 標準正交基 向量 \(q_1, \cdots, q_n\) 是標準正交的,如果它們滿

線性代數——最小二乘

1. 最小二乘 A x = b

線性代數——行列式公式及代數餘子式

計算機通過主元來計算行列式,但還有另外兩種方法,一種是大公式,由 \(n!\) 項置換矩陣組成;另一種是代數餘子式公式。 主元的乘積為 \(2 * \frac{3}{2}* \frac{4}{3}* \frac{5}{4} = 5\)。 大公式有 \(4!=24\) 項,但只有 5 個非零項。

線性代數——克拉默法則、逆矩陣和體積

1. 克拉默法則 這部分我們通過代數方法來求解 \(Ax=b\)。 用 \(x\) 替換單位矩陣的第一列,然後再乘以 \(A\),我們得到一個第一列為 \(b\) 的矩陣,而其餘列則是從矩陣 \(A\) 中對應列直接拷貝過來的。 利用行列式的乘法法則,我們有 \[|A|(x_1)=|B_1|\]

線性代數——特徵值和特徵向量

線性方程 \(Ax=b\) 是穩定狀態的問題,特徵值在動態問題中有著巨大的重要性。\(du/dt=Au\) 的解隨著時間增長、衰減或者震盪,是不能通過消元來求解的。接下來,我們進入線性代數一個新的部分,基於 \(Ax=\lambda x\),我們要討論的所有矩陣都是方陣。 1. 特徵值和特徵向量 幾乎所有