3.8矩阵的分解,根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。
1)Cholesky分解,对应正定矩阵(也就是正矩阵)可以分解为上三角矩阵和下三角矩阵的乘积,这种分解叫Cholesky分解。
不是所有矩阵都可以进行Cholesky分解,能够进行Cholesky分解的矩阵必须是正矩阵,矩阵的所有对角元素必须是正的同时矩阵的非对角元素不能太大
eig(s)查看s的特征值是否为正,然后在chol(s)进行分解
2)LU分解,又称为高斯消去法,将方阵A分解为下三角矩阵的置换矩阵L和上三角矩阵U的乘积
[L1,U1]=lu(A),该函数将矩阵分解为下三角矩阵的置换矩阵L1和上三角矩阵U1
[L2,U2,P]=lu(A),该函数将矩阵分解为下三角矩阵L2和上三角矩阵U2,以及置换矩阵P
Y=lu(A),该函数将下三角矩阵和上三角矩阵合并在矩阵Y中,矩阵Y的对角元素为上三角矩阵的对角元素。
3)QR分解,又称为正交分解,QR分解将一个m行h列的矩阵A分解为要给正交矩阵Q(m行m列)和一个上三角矩阵R(m行n列)的乘积
[Q,R]=qr(a),该函数将矩阵a进行QR分解,返回正交矩阵Q和上三角矩阵R
4)SVD分解,奇异值分解在矩阵分析中非常重要,也是常用的矩阵分解。通过函数svd()进行矩阵的svd分解或者叫奇异值分解。
s=svd(a),该函数对矩阵a进行奇异值分解,返回由奇异值组成的列向量,奇异值按照从大到小的顺序进行排列。
[U,S,V]=svd(A),该函数对矩阵进行奇异值分解,其中U和V为酉矩阵,S为一个对角矩阵,对角线的元素为矩阵的奇异值的降序排列
5)矩阵的Schur()分解,对矩阵的Schur分解公式为A=UxSxU',矩阵A必须是方阵,U为酉矩阵,S为块对角矩阵。
[U,S]=schur(A),该函数将矩阵A 进行Schur分解,返回酉矩阵U和对角矩阵S
S=schur(A),该函数仅返回块对角矩阵S
6)Hessenberg分解,对于任意一个n阶方阵可以进行Hessenberg分解,分解公式为:A=PHP',其中P是酉矩阵,H的第一子对角线下的元素均为0,即H为Hessenberg矩阵。
H=hess(A),该函数对方阵A进行Hessenberg分解,返回Hessenberg矩阵
[P,H]=hess(A),该函数对方阵A进行Hessenberg分解,返回值为P和H,满足A=PHP'