赞
踩
定义:给定矩阵A,将A表示成下三角矩阵L和上三角矩阵U的乘积,称为LU分解。再进一步,希望L的对角元素都是1,这样利于后面的计算。
此外,形如A=LDU的分解称为LDU分解,L是下三角矩阵,D是对角阵,U是上三角矩阵,其中L和U的对角元素都是1。
对于正方矩阵来说,上面的分解结果L和U的大小显而易见,都和原矩阵A的size相同。那么对于非正方矩阵而言呢?
长矩阵B经过LU分解的结果希望是如下的形式:
宽矩阵C经过LU分解的结果希望是如下的形式:
一旦完成了LU分解,利用L和U的性质,再去求行列式的值或者解线性方程组,计算量就大大减少了。
LU分解作为基本工具在各种数值计算问题中被广泛应用。例如求解线性方程组Ax=b时,只需要做一次A=LU的分解,后面面对不同的b就可以反复使用L和U了。
可以先设定最终LU分解的两个矩阵中的所有未知数,之后通过原始矩阵的每个元素反解出L和U中的每个元素,这里可以以任意例子做实验。但是需要注意,如果原始矩阵的对角元素有0,那么情况就另当别论,需要对LU的样子稍作改变再进行分解。
对于方阵A,若已经有形如A=LU的LU分解,则立即可以得到行列式值detA。因为
d e t A = d e t ( L U ) = ( d e t L ) ( d e t U ) det A = det (LU) = (det L) (det U) detA=det(LU)=(detL)(detU)
所以只需要求出det L和det U即可。而下三角矩阵和上三角矩阵的行列式就是对角元素的乘积。这里det L恰好等于1,于是
d e t A = U 的 对 角 元 素 的 乘 积 det A = U的对角元素的乘积 detA=U的对角元素的乘积
这里以有解的情况为例,考虑n阶可逆方阵A和n维向量y,需要求解满足Ax=y的向量x。
将A进行LU分解,解方程的问题就被分为了两个步骤,LUx=y。第一步就是求出满足Lz=y的z;
第二步就是求出满足Ux=z的x。
用数学表达式表述就是
A x = L U x = L ( U x ) = L z = y A \boldsymbol{x}=L U \boldsymbol{x}=L(U \boldsymbol{x})=L \boldsymbol{z}=\boldsymbol{y} Ax=LUx=L(Ux)=Lz=y
这样有什么好处?其实,由于L和U都是具有特殊形式的矩阵,所以求解过程要简单许多。对于第一步:
( 1 车 1 孙 郑 1 李 王 卫 1 ) ( z 1 z 2 z 3 z 4 ) = ( 子 丑 寅 卯 ) \left(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。