首页 > 编程笔记 > MATLAB笔记

MATLAB lu()分解函数的用法

矩阵的 LU 分解又称矩阵的三角分解,它的目的是将一个矩阵分解成一个下三角矩阵 L 和一个上三角矩阵 U 的乘积,即 A=LU。这种分解在解线性方程组、求矩阵的逆等计算中有着重要的作用。

在 MATLAB 中,实现 LU 分解的函数是 lu(),它的调用格式及说明如下表所示。

表:lu()函数调用格式及说明
调用格式 说明
[L,U] = lu(A) 对矩阵 A 进行 LU 分解,其中 L 为单位下三角矩阵或其变换形式,U 为上三角矩阵。
[L, U, P] = lu(A) 对矩阵 A 进行 LU 分解,其中 L 为单位下三角矩阵,U 为上三角矩阵,P 为置换矩阵,满足 LU=PA。

【实例】分别用 lu() 函数的两种调用格式对对称正定矩阵 A 进行 LU 分解,比较二者的不同。MATLAB 程序如下:
>> clear                    % 清除工作区的变量
>> A = gallery('minij',4)   % 生成4阶对称正定测试矩阵A
A =
     1     1     1     1
     1     2     2     2
     1     2     3     3
     1     2     3     4
>> [L,U]=lu(A)              % 对测试矩阵A进行LU分解,返回单位下三角矩阵和上三角矩阵
L =
     1     0     0     0
     1     1     0     0
     1     1     1     0
     1     1     1     1
U =
     1     1     1     1
     0     1     1     1
     0     0     1     1
     0     0     0     1
>> [L,U,P]=lu(A)            % 对测试矩阵A进行LU分解,返回单位下三角矩阵、上三角矩阵和置换矩阵
L =
     1     0     0     0
     1     1     0     0
     1     1     1     0
     1     1     1     1
U =
     1     1     1     1
     0     1     1     1
     0     0     1     1
     0     0     0     1
P =
     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1

推荐阅读