MATLAB 与线性代数--矩阵分解
矩阵的LU(三角)分解
概念:
LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积。
Matlab
内置有LU
分解的函数,说明如下:
[L,U] = lu(A)
将矩阵A分解的上三角矩阵保存在U当中,将一个下三角矩阵保存在L中,满足A=L*U
,注意A不必须是方阵。[L,U,P] = lu(A)
返回三个矩阵,下三角矩阵L、上三角矩阵U和一个置换矩阵P,满足P*A=L*U
。
对矩阵A
的LU
分解可以表示为:
>> A = [-1 2 0;4 1 8; 2 7 1];
>> [L,U] = lu(A)
L =-0.2500 0.3462 1.00001.0000 0 00.5000 1.0000 0
U =4.0000 1.0000 8.00000 6.5000 -3.00000 0 3.0385
至此,我们又多了一种求线性方程组的解的方法-----------LU
分解法。
假设A
是某个方程的系数矩阵,而
组的解可以通过两次左除得到:
x = U\(L\b)
>> b = [12;-8;6];
>> x = U\(L\b)
x =-6.93672.53162.1519
看方程组:
在MATLAB
中输入:
>> A = [3 2 -9;-9 5 2; 6 7 3];
>> b = [-65;16;5];
求出A
的LU
分解:
>> [L,U] = lu(A)
L =-0.3333 0.3548 1.00001.0000 0 0-0.6667 1.0000 0
U =-9.0000 5.0000 2.00000 10.3333 4.33330 0 -9.8710
现在我们可以通过左除来求解:
>> x = U\(L\b)
x =-1.0065-1.25496.6078
发布评论