上QQ阅读APP看书,第一时间看更新
2.6 LU分解
LU分解,也称为上下因子分解(lower upper factorization),是一种线性方程组的求解方法。LU分解将矩阵A分解为两个矩阵的乘积:一个下三角矩阵L和一个上三角矩阵U。分解过程如下所示:
A = LU
矩阵A中,a = l11u11,b = l11u12,以此类推。下三角矩阵对角线右上方系数全部为零,相反即为上三角矩阵。
相对于Cholesky分解,LU分解可应用于任意方阵,而Cholesky分解只能用于正定矩阵。
不同于之前的例子,这次我们通过SciPy模块的linalg
包实现LU分解,从而进行矩阵方程的求解。
输入下列代码,显示x
的值:
运算得到a、b、c的值分别为6
、15
和-23
。
此处我们应用scipy.linalg
的lu_factor()
函数,将LU变量定义为矩阵A的LU分解形式,利用lu_solve()
函数求解该方程组。
如果我们利用lu()
函数对矩阵A进行LU分解,会得到三个变量:置换矩阵P、下三角函数L和上三角函数U:
得到上述变量后,可以将矩阵A和LU分解形式的关系表示如下:
LU分解可以理解为高斯消元法的矩阵形式,将复杂矩阵分解为两个简单的三角矩阵。