定義
定義:若矩陣L具有下列形式:
則稱為下三角矩陣1。
若矩陣U具有下列形式:
則稱為上三角矩陣。
許多矩陣運(yùn)算保持下三角性不變:
兩個(gè)下三角矩陣的和下三角。
兩個(gè)下三角矩陣的乘積是下三角。
一個(gè)可逆的下三角矩陣的逆是下三角。
下三角矩陣與常數(shù)相乘是一個(gè)下三角矩陣。
以上性質(zhì)對(duì)上三角矩陣也成立。
嚴(yán)格上(下)三角矩陣若上(下)三角矩陣對(duì)角線元素全是1,則稱為嚴(yán)格上(下)三角矩陣。
原子三角矩陣一個(gè)原子下(上)三角矩陣是矩陣的一種特殊形式,所有的地方非對(duì)角元素為零,除了在單個(gè)列的條目。這樣一個(gè)矩陣也被稱為弗羅貝尼烏斯矩陣,高斯矩陣或高斯變換矩陣。即原子下三角矩陣的形式2
一個(gè)原子三角矩陣的逆再次原子三角形。事實(shí)上,我們有
例子 是上三角陣。
是下三角陣
是原子下三角矩陣,其逆為
方程組求解一個(gè)矩陣方程形式 或
很容易解決的一個(gè)迭代過程給出求解。
Lx = b矩陣方程可以寫成一個(gè)線性方程組
其解迭代公式2為
算法下面給出一個(gè)C語言的算法實(shí)現(xiàn):
public static double[] luEvaluate(double[][] L, double[][] U, double[] b)
{
// Ax = b -> LUx = b. Then y is defined to be Ux
double[] x = new double[b.Length];
double[] y = new double[b.Length];
// Forward solve Ly = b
for (int i = 0; i
{
y[i] = b[i];
for (int j = 0; j
y[i] -= L[i][j] * y[j];
}
y[i] /= L[i][i];
}
// Backward solve Ux = y
for (int i = b.Length - 1; i >= 0; i--)
{
x[i] = y[i];
for (int j = i + 1; j
x[i] -= U[i][j] * x[j];
}
x[i] /= U[i][i];
}
return x;
}