存一下。MATLAB矩阵分解:LU,QR,SVD详解

来源:互联网 发布:好用的乳液知乎 编辑:程序博客网 时间:2024/06/06 09:50

矩阵分解
矩阵分解 (decomposition, factorization)是将矩阵拆解为数个矩阵的乘积,可分为三角分解、满秩分解、QR分解、Jordan分解和SVD(奇异值)分解等,常见的有三种:1)三角分解法 (Triangular Factorization),2)QR 分解法 (QR Factorization),3)奇异值分解法 (Singular Value Decomposition)。
1. 三角分解法是将原正方 (square) 矩阵分解成一个上三角形矩阵或是排列(permuted) 的上三角形矩阵和一个 下三角形矩阵,这样的分解法又称为LU分解法。它的用途主要在简化一个大矩阵的行列式值的计算过程,求逆矩阵,和求解联立方程组。不过要注意这种分解法所得到的上下三角形矩阵并非唯一,还可找到数个不同 的一对上下三角形矩阵,此两三角形矩阵相乘也会得到原矩阵。
MATLAB以lu函数来执行lu分解法, 其语法为[L,U]=lu(A)。
例如:
假设 A 是某个方程组的系数矩阵,而b为等式右边解的列矩阵
b=[12,8,6]’
方程组的解可以通过两次左除得到:
x = U(L\b)
我们求得:

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

2. QR分解法编辑
QR分解法是将矩阵分解成一个正规正交矩阵与上三角形矩阵,所以称为QR分解法,与此正规正交矩阵的通用符号Q有关。
MATLAB以qr函数来执行QR分解法, 其语法为[Q,R]=qr(A)。
3. 奇异值分解法
奇异值分解 (singular value decomposition,SVD) 是另一种正交矩阵分解法;SVD是最可靠的分解法,但是它比QR 分解法要花上近十倍的计算时间。[U,S,V]=svd(A),其中U和V分别代表两个正交矩阵,而S代表一对角矩阵。 和QR分解法相同, 原矩阵A不必为正方矩阵。使用SVD分解法的用途是解最小平方误差法和数据压缩。
MATLAB以svd函数来执行svd分解法, 其语法为[S,V,D]=svd(A)

原创粉丝点击