以下是关于下三角矩阵L的行列式一定等于+-1的一些说明
证明:在LU分解中,下三角矩阵L的行列式一定是.
在证明之前,我这里先补充几条关于行列式的性质:
性质1:对于三角矩阵而言,不论是上三角矩阵还是下三角矩阵,其行列式的值都等于主对角线上元素的乘积。
此处引用Gilbert strang的线性代数教科书《introduction to linear algebra》中,第251页处的一段关于矩阵行列式的相应说明:
第七条性质说:如果矩阵A是一个三角矩阵,则矩阵A的行列式等于其对角线上元素的乘积。
性质2:两个矩阵A,B的积AB的行列式|AB|等于这两个矩阵各自的行列式|A|和|B|的积,即:
性质3:单位矩阵I的行列式为1。
性质4:对矩阵进行行与行之间的交换后,需要改变原矩阵行列式的正负号。
在LU分解中,下三角阵L是高斯消元的逆过程,是多个消元矩阵E的逆矩阵的乘积(形如下图中的矩阵)。
首先,根据上面说的性质1可知,所有消元矩阵E的逆矩阵的行列式等于其对角线上所有元素的乘积。又因为矩阵对角线上元素都是1,所以,的行列式一定等于1。此外,根据性质2,L的行列式等于多个的行列的乘积,所以,L的行列式必然等于1,即:
在对矩阵A进行高斯消元时,遇到对角线上的元素为0时,需要对矩阵进行行交换,使得原来的A=LU,变成PA=LU(其中P为置换矩阵)。因为置换矩阵P只不过是对单位矩阵I进行行交换后的结果,因此,综合性质3和性质4可知,置换矩阵P的行列式的值只能是+1或-1。
因此,计算出A的LU分解,并基于LU分解计算出det后,应该再根据置换矩阵P去调整det的符号。事实上,在matlab中自带的计算det的函数就是这么干的。
这是官方说明文档的截图:
按照他的官方说明,他的lu分解函数有很多种用法。只是他在计算行列式时,调用的是[L,U]=lu(A)。
这就是说,他把PA=LU变成了。且,对于置换矩P而言,置换矩阵的逆等于置换矩阵的转置,因此上式又可改写为。继续,按照他官方文档的说法,分解后的L矩阵和U矩阵中,只有L矩阵被置换过。
因此,我们可以把 看出是,其中括号包着的就是他文中提到的“经过置换的”L矩阵。因为,置换矩阵的转置也是一个置换矩阵(或者是置换矩阵的逆也是一个置换矩阵),所以(P'L)的行列式|P'L|等于|P'|x|L|,等于(+-1)x(1)=(+-1),即:
最终我们得到 ---> 在LU分解中,下三角阵L的行列式一定是。此外,最终我们得到矩阵A中基于高斯消元的lu分解的行列式的完整计算方法:
例子:
(全文完)
作者 --- 松下J27
参考文献(鸣谢):
1,https://en.wikipedia.org/wiki/Determinant
2,Determinant of a Matrix
3,矩阵行列式 - MATLAB det- MathWorks 中国
(配图与本文无关)
版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27