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

对矩阵ALU分解可以表示为:

>> A = [-1 2 0;4 1 8; 2 7 1];
>> [L,U] = lu(A)
L =
   -0.2500    0.3462    1.0000
    1.0000         0         0
    0.5000    1.0000         0
U =
    4.0000    1.0000    8.0000
         0    6.5000   -3.0000
         0         0    3.0385

至此,我们又多了一种求线性方程组的解的方法-----------LU分解法。
假设A是某个方程的系数矩阵,而
在这里插入图片描述
组的解可以通过两次左除得到:

x = U\(L\b)
>> b = [12;-8;6];
>> x = U\(L\b)
x =
   -6.9367
    2.5316
    2.1519

看方程组:
在这里插入图片描述
MATLAB中输入:

>> A = [3 2 -9;-9 5 2; 6 7 3];
>> b = [-65;16;5];

求出ALU分解:

>> [L,U] = lu(A)
L =
   -0.3333    0.3548    1.0000
    1.0000         0         0
   -0.6667    1.0000         0
U =
   -9.0000    5.0000    2.0000
         0   10.3333    4.3333
         0         0   -9.8710

现在我们可以通过左除来求解:

>> x = U\(L\b)
x =
   -1.0065
   -1.2549
    6.6078
发布了84 篇原创文章 · 获赞 18 · 访问量 5805

猜你喜欢

转载自blog.csdn.net/qq_44486550/article/details/105141731