lu,qr,svd分解以及matlab实现

1.lu分解

lu,qr,svd分解以及matlab实现
将原正方 (square) 矩阵分解成一个上三角形矩阵或是排列(permuted) 的上三角形矩阵和一个 下三角形矩阵,这样的分解法又称为LU分解法。它的用途主要在简化一个大矩阵的行列式值的计算过程,求逆矩阵,和求解联立方程组。不过要注意这种分解法所得到的上下三角形矩阵并非唯一,还可找到数个不同 的一对上下三角形矩阵,此两三角形矩阵相乘也会得到原矩阵。

a=[1,2,3;4,5,6;7,8,9]

a =

     1     2     3
     4     5     6
     7     8     9
     
x=lu(a)

x =

    7.0000    8.0000    9.0000
    0.1429    0.8571    1.7143
    0.5714    0.5000    0.0000

2.qr分解

lu,qr,svd分解以及matlab实现
对于非方阵的m∗n(m≥n)m∗n(m≥n)阶矩阵A也可能存在QR分解。这时Q为mm阶的正交矩阵,R为mn阶上三角矩阵。这时的QR分解不是完整的(方阵),因此称为约化QR分解(对于列满秩矩阵A必存在约化QR分解)。同时也可以通过扩充矩阵A为方阵或者对矩阵R补零,可以得到完全QR分解。

y=qr(a)

y =

   -8.1240   -9.6011  -11.0782
    0.4384    0.9045    1.8091
    0.7672    0.9091   -0.0000

lu,qr,svd分解以及matlab实现

对任意m*n的矩阵都能分解,SVD是最可靠的分解法,但是它比QR 分解法要花上近十倍的计算时间, 和QR分解法相同, 原矩阵A不必为正方矩阵。

z=svd(a)

z =

   16.8481
    1.0684
    0.0000