用矩阵分解法求解线性方程组
- 格式:ppt
- 大小:277.50 KB
- 文档页数:31
Doolittle分解方法是一种用于解决线性方程组的数值方法,它可以将一个矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积,从而可以方便地求解线性方程组。
在本文中,我们将介绍Doolittle分解方法的原理和实现过程,并用编程语言实现该方法来解方程组。
一、Doolittle分解方法原理1.1 Doolittle分解方法是一种LU分解的特例,它将一个矩阵A分解为一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU。
其中,L 的主对角线元素全为1,U的主对角线以上的元素全为0。
这样的分解可以方便地求解线性方程组Ax=b,其中b是一个已知的列向量。
1.2 Doolittle分解方法的具体实现过程是通过高斯消元法来实现的。
将矩阵A分解为一个下三角矩阵L和一个上三角矩阵U,然后通过回代法求解线性方程组Ax=b。
具体来说,我们首先将矩阵A分解为L 和U,然后用L和U的乘积代替原来的矩阵A,将原来的线性方程组Ax=b变为LUx=b,然后通过两次回代法求解线性方程组Ly=b和Ux=y,最终得到线性方程组的解x。
1.3 Doolittle分解方法的优点是可以方便地求解多个方程组,因为一旦矩阵A被分解为L和U,就可以通过多次回代法来求解不同的线性方程组,而不需要重新分解矩阵A。
1.4 Doolittle分解方法的缺点是需要对原始的矩阵A进行分解,这需要一定的计算量,特别是对于比较大的矩阵来说。
Doolittle分解方法在实际应用中往往需要结合其他数值方法来提高求解线性方程组的效率。
二、Doolittle分解方法的实现过程2.1 我们需要定义一个函数来实现Doolittle分解。
该函数的输入是一个矩阵A,输出是矩阵A的下三角矩阵L和上三角矩阵U。
2.2 接下来,我们需要通过高斯消元法来实现Doolittle分解。
具体来说,我们首先对矩阵A进行行变换和列变换,使得矩阵A的主对角线元素非零,然后逐步消去矩阵A的非主对角线元素,得到下三角矩阵L和上三角矩阵U。
LDL T 分解法求解对称线性方程组朱松盛 041002045 南京师范大学一、 LDL T 分解法原理利用矩阵 A 的T LDL 分解来解Ax = b ,的方法称为T LDL 分解法。
当求解方程组的系数矩阵是对称矩阵时,则用T LDL 分解法可以简化程序设计并减少计算量。
当矩阵 A 的各阶顺序主子式不为零时,A 有唯一的 Doolittle 分解 A = LU ,其中⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=-1111121323121nn n n l l l l l l L ,⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=nn n n n u u u u u u u u u u U 333223*********。
此时,当然有01≠=∏=ni iiuA det ,所以矩阵U 的对角线元素0≠ii u ,( , , 2 , 1n i =),将矩阵U 每行依次提出ii u ,则有U D U ~=,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛=nn u u u D2211,⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=---1111111222222311111131112n n n n n n u u u u u u u u u u u u U~因而U LD A ~=,显然这种A 的分解也是唯一的,当A 为对称矩阵时,由A A T =,得()U LD DL U L D U U LD T T T T T T ~~~~===,由分解的唯一性,有L U T =~,即T L U =~。
由此可得,若对称矩阵A 的各阶顺序主子式不为零时,A 可唯一分解为T LDL A =,其中⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=-1111121323121nn n n l l l l l l L ,⎪⎪⎪⎪⎪⎭⎫⎝⎛=n d d d D 21,T L 为L 的转置矩阵。
当A 有T LDL 分解时,利用矩阵运算法则及相等原理易得计算ik l 及k d 的公式为⎪⎪⎩⎪⎪⎨⎧-=-=∑∑-=-=kk m m km im ik ik k m m km kk k dd l l a l d l a d /)(11112 , , , 2 , 1 , , 2 , 1n k k i n k ++== 为减少乘法次数,引入辅助量k ik ik d l u =,则上面公式可写成⎪⎪⎪⎩⎪⎪⎪⎨⎧=-=-=∑∑-=-=k ik ik k m km im ik ik k m kmkm kk k d u l l u a u l u a d / 1111,n k k i n k , , 2 , 1 , , 2 , 1 ++== (1) 当设计程序时,为了减少存储空间,又由于矩阵A 在经过计算后就不需要再使用了,因此可以采用原位存储的方法。
矩阵分解在求解齐次线性方程组中的应用金少华;金大永;徐勇【期刊名称】《高师理科学刊》【年(卷),期】2016(036)004【总页数】1页(P61-61)【作者】金少华;金大永;徐勇【作者单位】河北工业大学理学院,天津 300401;河北工业大学理学院,天津300401;河北工业大学理学院,天津 300401【正文语种】中文矩阵的满秩分解及奇异值分解[1-2]在优化理论和统计学领域有着广泛的应用.本文研究了矩阵的满秩分解及奇异值分解在求解齐次线性方程组中的应用,并给出了算例.1 运用矩阵的满秩分解求解齐次线性方程组定理设矩阵的满秩分解为,则的充要条件是.证明必要性.如果,那么显然有,即.充分性.如果,那么显然有,由于为矩阵的满秩分解,所以矩阵的列向量线性无关,由此可知,方程组只有零解,于是有.证毕.例1 求解齐次线性方程组,其中:.解对进行初等行变换化为,则的满秩分解为,解方程组,得到方程组的通解为.2 运用矩阵的奇异值分解求解齐次线性方程组设(为实数域上秩为的全体阶矩阵的集合)的奇异值分解为,,其中:是阶正交矩阵;是阶正交矩阵;,为的正奇异值.于是可写为.方程两边左乘,得.令,则有,该方程的通解为,其中:为第个数为的单位列向量().设阶正交矩阵的第个列向量为(),则方程组的通解为().因为在矩阵的奇异值分解中,的列向量是的特征向量.所以恰为的属于特征根0的特征向量.所以应用奇异值分解求解齐次线性方程组的方法为:求出的属于特征根0的线性无关特征向量,则这些特征向量的任意线性组合即为的通解.需要指出的是,若无特征根0,说明可逆,即列满秩,从而只有零解.例2 求解齐次线性方程组,其中:.解的属于特征根0的线性无关特征向量为,因此方程组的通解为(,).[1] 程云鹏,张凯院,徐仲.矩阵论[M].西安:西北工业大学出版社,2000[2] 杨明,刘先忠.矩阵论[M].武汉:华中科技大学出版社,2005。
增广矩阵lu分解一、引言矩阵分解是线性代数中的一个重要概念,它可以将一个矩阵分解成若干个简单的矩阵,从而方便进行计算和求解。
其中,增广矩阵LU分解是一种常见的矩阵分解方法。
本文将详细介绍增广矩阵LU分解的定义、原理、算法流程以及应用。
二、定义增广矩阵LU分解是指将一个增广矩阵A=[A|b] 分解成两个部分:一个下三角矩阵L和一个上三角矩阵U,使得A=LU。
其中,下三角矩阵L的对角线元素均为1,上三角矩阵U的主对角线元素均不为0。
三、原理增广矩阵LU分解的基本思想是通过高斯消元法将系数矩阵A变换为上三角形式,并在变换过程中记录每一步消元所用到的系数,从而得到下三角形式的L和上三角形式的U。
四、算法流程1. 将增广矩阵A写成系数矩阵和常数向量的形式:A=[a11,a12,...,a1n|b1;a21,a22,...,a2n|b2;...;an1,an2,...,ann|bn]。
2. 初始化下三角矩阵L为单位矩阵,上三角矩阵U为A的复制品。
3. 对于每一列j=1,2,...,n,进行以下操作:a. 如果Ujj=0,则交换第j行和下面的某一行k(k>j),使得Ujj≠0。
b. 计算系数mij=aij/ujj (i=j+1,j+2,...,n),并将其存储在Lij中。
c. 用第j行乘以mij,然后将结果加到下面的所有行i=j+1,j+2,...,n中去。
4. 得到分解结果:A=LU。
五、应用增广矩阵LU分解可以用于求解线性方程组、求逆矩阵、计算行列式等问题。
其中,求解线性方程组的方法是先通过增广矩阵LU分解将系数矩阵A分解成下三角形式的L和上三角形式的U,然后利用LU分解的性质将Ax=b转化为Ly=b和Ux=y两个方程组进行求解。
这种方法比直接高斯消元法更加高效,尤其是在需要多次求解不同常数向量b时。
此外,增广矩阵LU分解还可以用来计算特征值和特征向量等问题。
六、总结增广矩阵LU分解是一种常见的矩阵分解方法,其基本思想是通过高斯消元法将系数矩阵A变换为上三角形式,并在变换过程中记录每一步消元所用到的系数,从而得到下三角形式的L和上三角形式的U。
关于线性方程组的解的几个结论
1、关于线性方程组的解:
(1)线性方程组有唯一解:当且仅当它的系数矩阵是可逆的时候,线性
方程组有唯一的解。
(2)线性方程组的解的形式:线性方程组的解可以用矩阵的乘法表示出来,也可以用分解的方式表示出来。
(3)线性方程组有无穷多个解:如果系数矩阵是奇异的,则线性方程组
有无穷多个解;如果系数矩阵是正确的,则线性方程组有唯一解。
(4)线性方程组无解:如果系数矩阵不正确,则线性方程组不存在解。
(5)特征根与解:如果系数矩阵有特征根,则线性方程组有无限多个解。
(6)特殊解:如果系数矩阵有非常规解,则线性方程组也有可能存在非
常规解。
2、线性方程组求解的方法:
(1)列主元高斯消元法:由行级元列优先求解的算法,是一种有效的数
值方法;
(2)分解方法:分解后可得出系数矩阵,提取出其中的特征值,进而得
出解;
(3)矩阵乘法:矩阵乘法可将线性方程组化为矩阵形式,可求出解;
(4)块分解法:使用这种法可以利用稀疏性,把矩阵分解成小的子矩阵,进行求解。
3、线性方程组的应用:
(1)统计学中的概率分布:利用多元正态分布可使用线性方程组来求解
均值和方差;
(2)复数可能性:利用复数线性方程组可以用来解决涉及多个平行、垂
直可能性组合的复数学问题;
(3)数据分析:线性方程组可以用来分析因变量与自变量之间的关系;
(4)线性规划:线性方程组可以用来解决线性规划问题,求出一组最优解。
矩阵的几种分解及应用
矩阵的分解是线性代数中的重要概念之一,它将一个复杂的矩阵分解成若干简单矩阵的乘积形式,从而简化了矩阵的运算和求解。
常见的矩阵分解方法包括LU分解、QR分解、SVD分解等,每种分解方法都有其独特的特点和应用场景。
LU分解是将一个矩阵分解成一个下三角矩阵和一个上三角矩阵的乘积形式,可以用于求解线性方程组和矩阵的逆。
QR分解是将一个矩阵分解成一个正交矩阵和一个上三角矩阵的乘积形式,可以用于求解最小二乘问题和矩阵的特征值。
SVD分解是将一个矩阵分解成一个正交矩阵、一个对角矩阵和一个正交矩阵的乘积形式,可以用于矩阵压缩、信号处理等领域。
除了以上三种分解方法外,还有很多其他常用的矩阵分解方法,如特征值分解、广义逆矩阵分解、奇异值分解等。
矩阵分解在科学计算、数据挖掘、机器学习等领域都有广泛的应用,如图像处理、推荐系统、文本分析等。
总之,矩阵分解是线性代数中的重要概念,掌握不同的分解方法及其应用场景可以帮助我们更好地理解和应用矩阵运算。
- 1 -。
axb=c矩阵方程解法 矩阵方程是线性代数中常见的问题之一,其中,axb=c矩阵方程是一种特殊形式的线性方程组。
解决这种方程可以帮助我们在各种实际问题中求解未知量,并找到满足方程条件的解。
本文将详细介绍解决这种矩阵方程的一种常见方法。
一、背景介绍 矩阵是数学中的一种数据结构,由m行n列的数构成。
矩阵中的元素可以是数、变量或者函数等。
矩阵常被用来表示线性方程组、线性映射等。
1.2 矩阵方程 矩阵方程是指将已知的矩阵和未知的矩阵通过某种运算关系连接在一起形成的方程。
矩阵方程的解即满足方程的未知矩阵。
二、解axb=c矩阵方程的方法2.1 矩阵的逆 若矩阵A是一个可逆矩阵,即存在一个矩阵B,使得AB=BA=I,其中I是单位矩阵。
那么对于方程AXB=C,我们可以左乘A的逆矩阵A^-1,得到X=B^-1C,即X的解。
2.2 高斯-约当消元法 高斯-约当消元法是求解线性方程组的常用方法,也适用于解矩阵方程。
该方法将矩阵方程转化为等价的简化行阶梯形方程组,进而求解出未知矩阵。
2.3 LU分解法 LU分解是一种将矩阵分解为下三角矩阵L和上三角矩阵U相乘的方法。
通过LU分解,我们可以将矩阵方程转化为简化的形式,从而求解未知矩阵。
2.4 迭代法 对于某些大规模的矩阵方程,解析解可能并不容易求得。
迭代法是一种通过逐步逼近的方式来求解矩阵方程的方法。
常见的迭代法包括雅可比迭代法、高斯-赛德尔迭代法等。
三、案例说明 为了更好地理解解axb=c矩阵方程的方法,我们可以通过一个具体的案例来说明。
假设有如下矩阵方程: [[2, 1], [1, 3]] * X = [[4], [5]]。
3.1 使用矩阵的逆 首先,我们需要判断矩阵[[2, 1], [1, 3]]是否可逆。
通过计算行列式得知该矩阵可逆,且其逆矩阵为[[3/5, -1/5], [-1/5, 2/5]]。
将逆矩阵左乘方程,得到X的解为[[3], [1]]。
3.2 使用高斯-约当消元法 将矩阵方程进行初等行变换,化简为[[1, 0], [0, 1]] * X = [[2], [1]]。
一计算题
1. 能不能用迭代法求解下列方程,如果不能时,试将方程改写成能用迭代法求解的形式。
2. 用矩阵的LU分解算法求解线性方程组
X1+2X2+3X3 = 0
2X1+2X2+8X3 = -4
-3X1-10X2-2X3 = -11
3. 用高斯消去法求解线性方程组
4. 给定常微分初值问题试构造一个求解常微分初值问题的两步差分格式。
5. 用矩阵的Doolittle分解算法求解线性方程组
2X1+X2+X3 = 4
6X1+4X2+5X3 =15
4X1+3X2+6X3 = 13
6. 利用Doolittle分解法解方程组Ax=b,即解方程组
7. 用矩阵的Doolittle分解算法求解线性方程组
X1+2X2+3X3 = 1
2X1– X2+9X3 = 0
-3X1+ 4X2+9X3 = 1
8. 用Doolittle分解法解方程组
9. 方程将其改写为
10. 用高斯消元法解方程组
11. 方程将其改写为
12. 用Doolittle三角分解法求解线性代数方程组:
13. 用高斯消去法求解线性方程组
2X1- X2+3X3 = 2
4X1+2X2+5X3 = 4
-3X1+4X2-3X3 = -3
14. 给定方程
(1)分析该方程存在几个根;
(2)构造迭代公式,说明迭代公式是收敛的。
15. 用Euler方法求解
(取h=0.2)。
矩阵解方程组的方法全文共四篇示例,供读者参考第一篇示例:矩阵是线性代数中的重要概念,而矩阵解方程组也是线性代数中的基础内容之一。
在实际应用中,往往会遇到包含多个未知数和多个方程的方程组,如何通过矩阵的方法来高效地解决这些方程组成了一项重要的技能。
本文将介绍矩阵解方程组的方法,包括高斯消元法、矩阵求逆法以及克拉默法则等。
一、高斯消元法高斯消元法是解线性方程组的一种基本方法。
它的基本思想是通过对方程组进行一系列的行变换,将其转化为简化的阶梯形或行最简形,从而得到方程组的解。
下面通过一个具体的例子来说明高斯消元法的应用。
考虑如下的线性方程组:\begin{cases}2x + 3y - z = 1 \\3x + 2y + z = 3 \\x - y + 2z = 9\end{cases}首先将上述的方程组写成增广矩阵的形式:然后通过一系列的行变换,将增广矩阵转化为简化的阶梯形:\begin{bmatrix}1 & -1 &2 & | & 9 \\0 & 5 & -5 & | & -10 \\0 & 0 & 1 & | & 0\end{bmatrix}最后通过反向代入法,可以求得方程组的解为x=2, y=-2, z=0。
二、矩阵求逆法A = \begin{bmatrix}1 &2 \\2 & 1\end{bmatrix},X = \begin{bmatrix}x \\y\end{bmatrix},B = \begin{bmatrix}3 \\4\end{bmatrix}然后求解系数矩阵A 的逆矩阵A^{-1}:最后通过矩阵乘法,可以求得方程组的解为X = A^{-1}B =\begin{bmatrix}1 \\1\end{bmatrix}。
三、克拉默法则首先求解系数矩阵A 的行列式|A|:然后求解系数矩阵A 分别替换成结果矩阵B 的行列式|B_x| 和|B_y|:最后通过克拉默法则,可以求得方程组的解为x = \frac{|B_x|}{|A|} = \frac{-5}{-3} = \frac{5}{3},y = \frac{|B_y|}{|A|} = \frac{-2}{-3} = \frac{2}{3}。
用矩阵的直接三角分解法解方程组
矩阵的直接三角分解法是一种用于解决线性方程组的方法,它可以将一个矩阵分解为一个上三角矩阵和一个下三角矩阵的乘积。
这个过程可以通过高斯消元法来实现。
具体地,设一个n阶矩阵A,将其分解为下三角矩阵L和上三角矩阵U的乘积,即A=LU。
这样,原始的线性方程组Ax=b可以被转化为LUx=b。
我们可以通过以下的步骤来解决这个方程组:
1. 用高斯消元法将A变为上三角矩阵U。
2. 对于每一个i,设L的第i行的第j个元素为lij,则有:
(1) l11=1
(2) 对于j<i,lij=aij/ujj
(3) lij=0,对于j≥i
3. 用前向替换法求解Ly=b,然后用后向替换法求解Ux=y。
这个方法的优点是可以通过一次消元来得到L和U,这个过程的计算量为O(n^3),而求解方程组的计算量为O(n^2)。
因此,这个方法的计算效率比较高。
- 1 -。
1、 分别用矩阵求逆、矩阵除法以及矩阵分解求线性方程组的解。
(1)⎪⎩⎪⎨⎧=+-=++=++57347310532z y x z y x z y x答:矩阵求逆法:>> A=[2 3 5;3 7 4;1 -7 1];>> b = [10 3 5]';>> x=inv (A)*b矩阵除法:>> A=[2 3 5;3 7 4;1 -7 1];>> b = [10 3 5]';>> x=A\b矩阵分解法:>> A=[2 3 5;3 7 4;1 -7 1];>> b = [10 3 5]';>> [L,U]=lu(A);>> x=U\(L\b)(2)⎪⎪⎩⎪⎪⎨⎧-=+=+--=-+=-+14235231543421431321x x x x x x x x x x x 答:矩阵求逆法:>> A=[5 1 -1 0;1 0 3 -1;-1 -1 0 5;0 0 2 4];>> b=[1;2;3;-1];>> x=inv(A)*b矩阵除法:>> A=[5 1 -1 0;1 0 3 -1;-1 -1 0 5;0 0 2 4];>> b=[1;2;3;-1];>> x=A\b矩阵分解法:>> A=[5 1 -1 0;1 0 3 -1;-1 -1 0 5;0 0 2 4];>> b=[1;2;3;-1];>> [L,U]=lu(A);>> x=U\(L\b)(3)⎪⎪⎩⎪⎪⎨⎧=+-=-++=-+--=+-+1129312243134945256421432143214321x x x x x x x x x x x x x x x答:矩阵求逆法:>> A=[6 5 -2 5;9 -1 4 -1;3 4 2 -2;3 -9 0 2];>> b=[-4 13 1 11]';>> x=inv(A)*b矩阵除法:>> A=[6 5 -2 5;9 -1 4 -1;3 4 2 -2;3 -9 0 2];>> b=[-4 13 1 11]';>>x=A\b矩阵分解法:>> A=[6 5 -2 5;9 -1 4 -1;3 4 2 -2;3 -9 0 2];>> b=[-4 13 1 11]';>> [L,U]=lu(A);>> x=U\(L\b)2、 求非齐次线性方程组的通解。
引言数学是人类历史中发展最早,也是发展最为庞大的基础学科。
许多人说数学是万理之源,因为许多学科的研究都是以数学做为基础,有了数学的夯实基础,人类才铸就起了众多学科的高楼大厦,所以数学的研究和发展一直在不断的发展壮大。
在数学中有一支耀眼的分支,那就是矩阵。
在古今矩阵的研究发展长河中产生了许多闪耀星河的大家。
英国数学大家詹姆斯·约瑟夫·西尔维斯特,一个数学狂人,正是他的孜孜不倦的研究使得矩阵理论正式被确立并开启了矩阵发展的快速发展通道。
凯莱和西尔维斯特是非常要好的朋友,他也是一位非常伟大的数学大师,正是他们伟大的友谊,加上两人的齐心协力最后他们共同发展了行列式和矩阵的理论。
后来高斯在矩阵方面的研究取得重要的成就,尤其是高斯消去法的确立,加速了矩阵理论的完善和发展。
而在我国,矩阵的概念古已有之。
从最早的数学大家刘徽开始我们古代数学大家都已或多或少的研究了矩阵。
尤其在数学大家刘徽写的《九章算术》中,它最早提出了矩阵的类似定义。
而且是将矩阵的类似定义用在了解决遍乘直除问题里了。
这已经开始孕育出了最早的矩阵形式。
随着时间转移,矩阵的理论不断的完善,在对于那些大型矩阵的计算中如果用基本方法显得过于繁重,于是发展出了矩阵的分解,随着对矩阵分解的不断研究完善,矩阵分解方法和理论也日趋成熟矩阵经常被当做是数学工具,因为在数学问题中要经常用上矩阵的知识。
矩阵是一个表格,要掌握其运算法则,作为表格的运算与数的运算既有联系又有差别,在所有矩阵的运算方法中,矩阵的分解是他们中一种最重要并且也是应用最广泛。
矩阵分解主要是对高斯消去法的延续和拓展。
在一些大型的矩阵计算中,其计算量大,化简繁杂,使得计算非常复杂。
如果运用矩阵的分解,将那些大型矩阵分解成简单的矩阵的乘积形式,则可大大降低计算的难度以及计算量。
这就是矩阵分解的主要目的。
而且对于矩阵的秩的问题,特征值的问题,行列式的问题等等,通过矩阵的分解后都可以清楚明晰的反应出来。
C语言LU分解法实现解线性方程组LU分解法是一种常用于解线性方程组的方法。
在C语言中,可以通过编写相应的函数来实现这一方法。
首先,我们需要定义一个函数来进行LU分解。
LU分解将一个矩阵分解为一个下三角矩阵L和一个上三角矩阵U的乘积。
下面是一个示例函数实现:```cfor (int i = 0; i < n; i++)for (int k = i; k < n; k++)double sum = 0;for (int j = 0; j < i; j++)sum += L[i][j] * U[j][k];}U[i][k] = A[i][k] - sum;}for (int k = i; k < n; k++)if (i == k)L[i][i]=1;} elsefor (int j = 0; j < i; j++)sum += L[k][j] * U[j][i];}L[k][i] = (A[k][i] - sum) / U[i][i];}}}```上述函数中,A是输入的矩阵,n是矩阵的维度,L和U是输出的下三角矩阵和上三角矩阵。
接下来,我们可以定义一个函数来解线性方程组。
利用LU分解后的矩阵L和U,我们可以通过两次前代和回代来求解线性方程组。
下面是一个示例函数实现:```cvoid solveLU(double **L, double **U, double *b, double *x, int n)double *y = malloc(n * sizeof(double));// Solve Ly = b using forward substitutionfor (int i = 0; i < n; i++)for (int j = 0; j < i; j++)sum += L[i][j] * y[j];}y[i] = b[i] - sum;}// Solve Ux = y using backward substitutionfor (int i = n - 1; i >= 0; i--)double sum = 0;for (int j = i + 1; j < n; j++)sum += U[i][j] * x[j];}x[i] = (y[i] - sum) / U[i][i];}free(y);```上述函数中,L和U是LU分解后的下三角矩阵和上三角矩阵,b是线性方程组的右侧向量,x是待求解的变量向量,n是矩阵的维度。