matlab矩阵分解

来源:互联网 发布:set js 编辑:程序博客网 时间:2024/05/22 14:07

矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有LU分解(三角分解)、QR分解(正交变换)、Cholesky分解,以及Schur分解、Hessenberg分解、奇异分解等。

(1) LU分解(三角分解)

矩阵的LU分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式。线性代数中已经证明,只要方阵A是非奇异(即行列式不等于0)的,LU分解总是可以进行的。

MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格式为:

[L,U]=lu(X):产生一个上三角阵U和一个变换形式的下三角阵L(行交换),使之满足X=LU。注意,这里的矩阵X必须是方阵。

[L,U,P]=lu(X):产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,使之满足PX=LU。当然矩阵X同样必须是方阵。

P 是一个 m×n  (0,1) 矩阵,如 m≤n P*P′=E,则称 P为一个 m×n的置换矩阵。

实现LU分解后,线性方程组Ax=b的解x=U(Lb)x=U(LPb),这样可以大大提高运算速度。

7-2 LU分解求解例7-1中的线性方程组。

命令如下:

A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];

b=[13,-9,6,0]';

[L,U]=lu(A);

x=U(Lb)

或采用LU分解的第2种格式,命令如下:

[L,U ,P]=lu(A);

x=U(LP*b)

(2) QR分解(正交变换)

对矩阵X进行QR分解,就是把X分解为一个正交矩阵Q和一个上三角矩阵R的乘积形式。QR分解只能对方阵进行。MATLAB的函数qr可用于对矩阵进行QR分解,其调用格式为:

[Q,R]=qr(X):产生一个一个正交矩阵Q和一个上三角矩阵R,使之满足X=QR

[Q,R,E]=qr(X):产生一个一个正交矩阵Q、一个上三角矩阵R以及一个置换矩阵E,使之满足XE=QR

实现QR分解后,线性方程组Ax=b的解x=R(Qb)x=E(R(Qb))

7-3 QR分解求解例7-1中的线性方程组。

命令如下:

A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];

b=[13,-9,6,0]';

[Q,R]=qr(A);

x=R(Qb)

或采用QR分解的第2种格式,命令如下:

[Q,R,E]=qr(A);

x=E*(R(Qb))

(3) Cholesky分解

如果矩阵X对称正定的,则Cholesky分解将矩阵X分解成一个下三角矩阵和上三角矩阵的乘积。设上三角矩阵为R,则下三角矩阵为其转置,即X=R'RMATLAB函数chol(X)用于对矩阵X进行Cholesky分解,其调用格式为:

R=chol(X):产生一个上三角阵R,使R'R=X。若X为非对称正定,则输出一个出错信息。

[R,p]=chol(X):这个命令格式将不输出出错信息。当X为对称正定的,则p=0R与上述格式得到的结果相同;否则p为一个正整数。如果X为满秩矩阵,则R为一个阶数为q=p-1的上三角阵,且满足R'R=X(1:q,1:q)

实现Cholesky分解后,线性方程组Ax=b变成R‘Rx=b,所以x=R(R’b)

7-4 Cholesky分解求解例7-1中的线性方程组。

命令如下:

A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];

b=[13,-9,6,0]';

R=chol(A)

??? Error using ==> chol

Matrix must be positive definite

命令执行时,出现错误信息,说明A为非正定矩阵。

(4) 任意方阵的Schur分解

任意一个n阶方阵X可以分解为X=URU',其中U酉矩阵R为上三角schur矩阵且其主对角线上的元素为X的特征值。

酉矩阵的相关性质:

  设有AB矩阵

  (1)若A是酉矩阵,则A的逆矩阵也是酉矩阵

  (2)若AB是酉矩阵,则AB也是酉矩阵

  (3)若A是酉矩阵,则|detA|=1

  (4A是酉矩阵的充分必要条件是,它的n个列向量是两两正交的单位向量

[U,R]=schur(X)

(5) 任意方阵的Hessenberg分解

任意一个n阶方阵X可以分解为X=PHP', 其中P为酉矩阵, H的第一子对角线下的元素均为0,即HHessenberg矩阵。

[P,H]=hess(X)

(6) 任意方阵的特征值分解EVD

任意一个n阶方阵X可以分解为XV=VD,其中DX的特征值对角阵,VX的特征向量矩阵。

[V,D]=eig(X)

[V,D]=eig(X,Y)计算广义特征值矩阵D和广义特征值向量矩阵V,使得XV=YVD

(7)任意矩阵的奇异值分解SVD

任意一个m*n维的矩阵X可以分解为X=USV'UV均为酉矩阵,Sm*n维的对角矩阵,其对角线元素为X的从大到小排序的非负奇异值。U,V为正交阵,S为对角阵,svd(A)恰好返回S的对角元素,而且就是A的奇异值(定义为:矩阵A’*A的特征值的算数平方根)

[U,S,V]=svd(X)

(8) 任意矩阵的几何均值分解GMD

任意矩阵m*n维的矩阵X可以分解为X=QRP', QP均为酉矩阵,Rk*k维的实正线上三角矩阵,其主对角线元素均等于X的所有K个正奇异值的几何均值,k=rank(X)

PS: 一个n × n的实对称矩阵 M 是正定的当且仅当对于所有的非零实系数向量z,都有 zTMz > 0。其中zT 表示z转置

对于复数的情况,定义则为:一个n × n埃尔米特矩阵 M 是正定的当且仅当对于每个非零的复向量z,都有z*Mz > 0。其中z* 表示z共轭转置。由于 M埃尔米特矩阵,经计算可知,对于任意的复向量zz*Mz必然是实数,从而可以与0比较大小。因此这个定义是自洽的。正定方阵M的所有的特征值 λi都是正的。)

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 分手了还是想他怎么办 两岁宝宝夜惊怎么办 孩子误吃了牙膏怎么办 孩子跳舞脸上的妆卸不掉怎么办 4周岁还不会说话怎么办 宝贝2岁多还不会说话怎么办 孩子20个月离婚怎么办 两个月宝宝闹夜怎么办 两个月宝宝闹瞌睡怎么办 2岁宝宝话特别多怎么办 宝宝3岁还不会说话怎么办 小儿3岁说话晚怎么办 1岁半了不会说话怎么办 宝宝2岁还说话晚怎么办 一岁宝宝不愿意学说话怎么办 2周岁宝宝不愿意学说话怎么办 三岁宝宝不爱说话应该怎么办 三岁宝宝不理人怎么办 两岁半宝宝不说话不连贯怎么办 宝宝三岁说话口齿不清怎么办 b超宝宝腿短怎么办 两岁宝宝学说话口吃怎么办 两岁宝宝说话少怎么办 三岁宝宝说话少怎么办 快4岁不会说话怎么办 宝宝2岁半不爱说话怎么办 两岁半宝宝注意力不集中怎么办 中国出生的外籍小孩怎么办签证 中国人入外籍后国内财产怎么办 中国人入外籍后国内资产怎么办 小孩去美国上小学怎么办 咳嗽震的胸口疼怎么办 高中孩子对手机着迷怎么办 小孩不肯读书沉迷游戏怎么办 小孩沉迷吃鸡游戏怎么办 高一数学成绩差怎么办 小孩子学数学用手指算怎么办 孩子d和b分不清怎么办 和家人走散后怎么办幼儿教案 小孩胃口不好不爱吃饭怎么办 幼儿园孩子学习记不住怎么办