第4讲(4)Matlab中的矩阵分解命令

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1

4—6 矩阵分解的Matlab 命令

2

(1)矩阵的LU 分解

(2)矩阵的QR 分解(3 )矩阵的Cholesky 分解(4) 矩阵的奇异值分解(5)矩阵的特征值分解(6) 矩阵的Schur 分解(7) 矩阵的Jordan 标准型分解

3(1)矩阵的LU 分解

在Matlab 中用函数lu 来实现矩阵的LU 分解,其命令格式为:[L, U]=lu(X)

说明:U 矩阵为上三角矩阵,满足X=L*U.

4

[L,U,P]=lu(X)

说明:返回的P 矩阵是置换矩阵,矩阵U 是上三角矩阵,矩阵L 满秩矩阵,满足L*U=P*X.

5例4.1

>>a=[1,2,4;2,-1,5;-1,10,4];>> [b,c,p]=lu(a)运行结果:b =

1.0000 0 0-0.5000 1.0000 00.5000 0.2632 1.0000

6

c =

2.0000 -1.0000 5.00000 9.5000 6.50000 0 -0.2105p =0 1 00 0 11 0 0

7

(2)矩阵的QR 分解

在Matlab 中,矩阵的QR 分解可由函数qr 来实现,其常用的调用格式如下:①[B,C]=qr(A)

说明:返回的C 矩阵为上三角矩阵,矩阵B 为满秩矩阵。

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

说明:返回的矩阵E 是置换矩阵,矩阵R 是上三角矩阵,矩阵Q 是满秩矩阵,上述矩阵满足关系A*E=Q*R.

8

例4.2

>> a=[1,2,4;2,-1,5;-1,10,4];>> [b,c,e]=qr(a)运行结果:b =

-0.1952 -0.5068 -0.83970.0976 -0.8619 0.4976-0.9759 0.0152 0.2177

9

c =

-10.2470 -4.1964 0.9759

0 -6.2762 -2.24580 0 -0.0622e =0 0 11 0 00 1 0

10

(3 )矩阵的Cholesky 分解

在Matlab 中用函数chol 对矩阵进行Cholesky 分解,函数chol 的调用格式为:1.R=chol(X)

说明:矩阵X 必须是正定矩阵,否则会返回错误信息,返回的矩阵R 是上三角矩阵。2.[R,p]=chol(X)

说明:此调用格式不管矩阵X 是否正定,都不会返回错误信息。如果矩阵X 正定,则返回上三角矩阵R, p 为零;如果矩阵X 非正定,则返回的矩阵R 也是上三角矩阵,但p 为正数。

11例4.4

>> a=[3,-1,1;-1,5,2;1,2,4];>> b=chol(a)运行结果:b =

1.7321 -0.5774 0.57740

2.1602 1.08010 0 1.5811

12

(4) 矩阵的奇异值分解

在Matlab 中,矩阵的奇异值分解则由函数svd 来实现,其调用格式为:[b,c,d]=svd(A)

说明:返回的矩阵b 为左奇异矩阵,矩阵d 为右奇异矩阵,矩阵c 为奇异值矩阵。例4.5

>> a=[1,2,4;2,-1,5;-1,10,4];>> [b,c,d]=svd(a)

13运行结果:b =

0.3249 0.4385 -0.83800.1393 0.8542 0.50100.9354 -0.2795 0.2164c =

11.4170 0 00 6.1359 00 0 0.0571

14

d =

-0.0291 0.3954 -0.91800.8640 -0.4518 -0.22200.5026 0.7997 0.3285

15

(5) 矩阵的特征值分解

Matlab 中求矩阵的特征值的函数是eig 和eigs ,其中函数eigs 主要用于稀疏矩阵。函数eig 主要有以下几种调用格式:1.D=eig(A)

说明:矩阵D 为矩阵A 的特征向量矩阵。2.D=eig(A,B)

说明:矩阵D 为矩阵A,B 的广义特征向量矩阵。3.[V,D]=eig(A)

说明:矩阵V,D 为矩阵A 的特征值矩阵和特征向量矩阵。

16

4.[V,D]=eig(A ,‘nobalance’)

说明:‘nobalance’表示在求矩阵A 的特征值矩阵和特征向量矩阵时禁止“平衡”程序的运行。当矩阵A 中有元素小到与截断误差相当时,这样做可以减少计算的误差。5.[V,D]=eig(A,B)

说明:矩阵V,D 为矩阵A,B 的广义特征值矩阵和特征向量矩阵,满足A*V=B*V*D.

17

6.[V,D]=eig(A,B,flag)

说明:使用某种确定的分解算法来计算矩阵的特征值和特征向量,参数flag 可以取”chol”或”qz”。当参数flag 取”chol”时,表示对B 使用乔累斯基分解算法来计算矩阵A,B 的特征值和特征向量,若矩阵A 为对称矩阵,矩阵B 为对称正定矩阵,此算法为默认算法;当参数flag 取”qz”时,则忽略对称性。

18

例4.6

>> B=[3,-2,-0.9,2*eps;-2,4,-1,-eps;-eps/4,eps/2,-1,0;-0.5,-0.5,0.1,1];>> [VB,DB]=eig(B)运行结果:VB =

0.6153 -0.4176 -0.0000 -0.3305-0.7881 -0.3261 -0.0000 -0.2949-0.0000 -0.00000.0000 -0.81360.0189 0.8481 1.0000 -0.3765

相关文档
最新文档