一个矩阵称为下三角矩阵如果对角线上方的元素全部为0。类似地,一个矩阵称为上三角矩阵如果对角线下方的元素全部为0。
定义
定义:若矩阵L具有下列形式:
则称为下三角矩阵。
若矩阵U具有下列形式:
则称为上三角矩阵。
许多矩阵运算保持下三角性不变:
严格上(下)三角矩阵
若上(下)三角矩阵对角线元素全是0,则称为严格上(下)三角矩阵。
原子三角矩阵
一个原子下(上)三角矩阵是矩阵的一种特殊形式,所有的地方非对角元素为零,除了在单个列的条目。这样一个矩阵也被称为弗罗贝尼乌斯矩阵,高斯矩阵或高斯变换矩阵。即原子下三角矩阵的形式
一个原子三角矩阵的逆再次原子三角形。事实上,我们有
例子
是上三角阵。
是下三角阵
是原子下三角矩阵,其逆为
方程组求解
一个矩阵方程形式 或 很容易解决的一个迭代过程给出求解。
其解迭代公式为
算法
下面给出一个C语言的算法实现:
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 < b.Length; i++)
{
y[i] = b[i];
for (int j = 0; j < i; 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 < n; j++) {
x[i] -= U[i][j] * x[j];
}
x[i] /= U[i][i];
}
return x;
}