矩阵及其基本运算(7)

2019-04-16 14:47

第1章 矩阵及其基本运算

A'*A,这种方法计算A'*A时减少了内在数字信息的损耗。

[C,R] = qr(A,b) %用于稀疏最小二乘问题:minimize||Ax-b||的两步解:[C,R] =

qr(A,b),x = R\\c。

R = qr(A,0) %针对稀疏矩阵A的经济型分解

[C,R] = qr(A,b,0) %针对稀疏最小二乘问题的经济型分解

例1-68

>>A =[ 1 2 3;4 5 6; 7 8 9; 10 11 12]; >>[Q,R] = qr(A)

Q =

-0.0776 -0.8331 0.5444 0.0605 -0.3105 -0.4512 -0.7709 0.3251 -0.5433 -0.0694 -0.0913 -0.8317 -0.7762 0.3124 0.3178 0.4461 R =

-12.8841 -14.5916 -16.2992 0 -1.0413 -2.0826 0 0 0.0000 0 0 0

函数 qrdelete

格式 [Q,R] = qrdelete(Q,R,j) %返回将矩阵A的第j列移去后的新矩阵的qr分解 例1-69

>> A=[-149 -50 -154;537 180 546;-27 -9 -25]; >> [Q,R]=qr(A)

Q =

-0.2671 -0.7088 0.6529 0.9625 -0.1621 0.2176 -0.0484 0.6865 0.7255 R =

557.9418 187.0321 567.8424 0 0.0741 3.4577 0 0 0.1451

>> [Q,R]=qrdelete(Q,R,3) %将A的第3列去掉后进行qr分解。

Q =

-0.2671 -0.7088 0.6529 0.9625 -0.1621 0.2176 -0.0484 0.6865 0.7255 R =

557.9418 187.0321 0 0.0741 0 0

函数 qrinsert

格式 [Q,R] = qrinsert(Q,R,j,x) %在矩阵A中第j列插入向量x后的新矩阵进行qr分

解。若j大于A的列数,表示在A的最后插入列x。

例1-70

>> A=[-149 -50 -154;537 180 546;-27 -9 -25];

>> x=[35 10 7]';

>> [Q,R]=qrinsert(Q,R,4,x)

Q =

-0.2671 -0.7088 0.6529

31 MATLAB6.0数学手册 0.9625 -0.1621 0.2176 -0.0484 0.6865 0.7255 R =

557.9418 187.0321 567.8424 -0.0609 0 0.0741 3.4577 -21.6229 0 0 0.1451 30.1073

1.3.4 Schur分解

函数 schur

格式 T = schur(A) %产生schur矩阵T,即T的主对角线元素为特征值的三角阵。

T = schur(A,flag) %若A有复特征根,则flag='complex',否则flag='real'。

[U,T] = schur(A,?) %返回正交矩阵U和schur矩阵T,满足A = U*T*U'。

例1-71

>> H = [ -149 -50 -154; 537 180 546; -27 -9 -25 ]; >> [U,T]=schur(H)

U =

0.3162 -0.6529 0.6882 -0.9487 -0.2176 0.2294 0.0000 0.7255 0.6882 T =

1.0000 -7.1119 -815.8706 0 2.0000 -55.0236 0 0 3.0000

1.3.5 实Schur分解转化成复Schur分解

函数 rsf2csf

格式 [U,T] = rsf2csf (U,T) %将实舒尔形式转化成复舒尔形式 例1-72

>> A=[1 1 1 3;1 2 1 1;1 1 3 1;-2 1 1 4]; >> [u,t]=schur (A)

u =

-0.4916 -0.4900 -0.6331 -0.3428 -0.4980 0.2403 -0.2325 0.8001 -0.6751 0.4288 0.4230 -0.4260 -0.2337 -0.7200 0.6052 0.2466 t =

4.8121 1.1972 -2.2273 -1.0067 0 1.9202 -3.0485 -1.8381 0 0.7129 1.9202 0.2566 0 0 0 1.3474 >> [U,T]=rsf2csf (u,t)

U =

-0.4916 -0.2756 - 0.4411i 0.2133 + 0.5699i -0.3428 -0.4980 -0.1012 + 0.2163i -0.1046 + 0.2093i 0.8001 -0.6751 0.1842 + 0.3860i -0.1867 - 0.3808i -0.4260 -0.2337 0.2635 - 0.6481i 0.3134 - 0.5448i 0.2466 T =

4.8121 -0.9697 + 1.0778i -0.5212 + 2.0051i -1.0067 0 1.9202 + 1.4742i 2.3355 0.1117 + 1.6547i 0 0 1.9202 - 1.4742i 0.8002 + 0.2310i

0 0 0 1.3474

32 第1章 矩阵及其基本运算

1.3.6 特征值分解

函数 eig

格式 d = eig(A) %求矩阵A的特征值d,以向量形式存放d。

d = eig(A,B) %A、B为方阵,求广义特征值d,以向量形式存放d。 [V,D] = eig(A) %计算A的特征值对角阵D和特征向量V,使AV=VD成立。 [V,D] = eig(A,'nobalance') %当矩阵A中有与截断误差数量级相差不远的值时,

该指令可能更精确。'nobalance'起误差调节作用。 [V,D] = eig(A,B) %计算广义特征值向量阵V和广义特征值阵D,满足

AV=BVD。

[V,D] = eig(A,B,flag) % 由flag指定算法计算特征值D和特征向量V,flag的

可能值为:'chol' 表示对B使用Cholesky分解算法,这里A为对称Hermitian矩阵,B为正定阵。'qz' 表示使用QZ

算法,这里A、B为非对称或非Hermitian矩阵。

说明 一般特征值问题是求解方程:Ax??x解的问题。广义特征值问题是求方程:

Ax??Bx解的问题。

1.3.7 奇异值分解

函数 svd

格式 s = svd (X) %返回矩阵X的奇异值向量

[U,S,V] = svd (X) %返回一个与X同大小的对角矩阵S,两个酉矩阵U和V,

且满足= U*S*V'。若A为m3n阵,则U为m3m阵,V

为n3n阵。奇异值在S的对角线上,非负且按降序排列。

[U,S,V] = svd (X,0) %得到一个“有效大小”的分解,只计算出矩阵U的前n列,矩阵S的大小为n3n。

例1-73

>> A=[1 2;3 4;5 6;7 8]; >> [U,S,V]=svd(A)

U =

-0.1525 -0.8226 -0.3945 -0.3800 -0.3499 -0.4214 0.2428 0.8007 -0.5474 -0.0201 0.6979 -0.4614 -0.7448 0.3812 -0.5462 0.0407 S =

14.2691 0 0 0.6268 0 0 0 0 V =

-0.6414 0.7672 -0.7672 -0.6414 >> [U,S,V]=svd(A,0)

U =

-0.1525 -0.8226 -0.3499 -0.4214

33 MATLAB6.0数学手册 -0.5474 -0.0201 -0.7448 0.3812 S =

14.2691 0 0 0.6268 V =

-0.6414 0.7672 -0.7672 -0.6414

1.3.8 广义奇异值分解

函数 gsvd 格式 [U,V,X,C,S] = gsvd(A,B) %返回酉矩阵U和V、一个普通方阵X、非负对角矩

阵C和S,满足A = U*C*X',B = V*S*X',C'*C + S'*S

= I (I为单位矩阵);A和B的列数必须相同,行数可

以不同。

[U,V,X,C,S] = gsvd(A,B,0) %含义与前面相似

sigma = gsvd (A,B) %返回广义奇异值sigma

例1-74

>> A=reshape(1:12,3,4) %产生3行4列矩阵,元素由1,2,?,12构成。

A =

1 4 7 10 2 5 8 11 3 6 9 12

>> B=magic(4) %产生4阶魔方阵

B =

16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> [U,V,X,C,S]=gsvd(A,B)

U =

0.4082 0.7071 0.5774 -0.8165 0.0000 0.5774 0.4082 -0.7071 0.5774 V =

0.2607 -0.7950 -0.5000 0.2236 -0.4029 0.3710 -0.5000 0.6708 -0.5452 -0.0530 -0.5000 -0.6708 0.6874 0.4770 -0.5000 -0.2236 X =

0 -9.4340 -17.0587 3.4641 1.8962 8.7980 -17.0587 8.6603 3.7924 8.1620 -17.0587 13.8564 -5.6885 -7.5260 -17.0587 19.0526 C =

0 0.0000 0 0 0 0 0.0829 0 0 0 0 1.0000 S =

1.0000 0 0 0 0 1.0000 0 0

34 第1章 矩阵及其基本运算

0 0 0.9966 0 0 0 0 0.0000

1.3.9 特征值问题的QZ分解

函数 qz

格式 [AA,BB,Q,Z,V] = qz(A,B) %A、B为方阵,产生上三角阵AA和BB,正

交矩阵Q、Z或其列变换形式,V为特征向量

阵。且满足:Q*A*Z= AA 和Q*B*Z = BB。

[AA,BB,Q,Z,V] = qz(A,B,flag) %产生由flag决定的分解结果,flag取值为:

'complex':表示复数分解(默认),取值为'real':表示实数分解。

1.3.10 海森伯格形式的分解

如果矩阵H的第一子对角线下元素都是0,则H为海森伯格(Hessenberg)矩阵。如果矩阵是对称矩阵,则它的海森伯格形式是对角三角阵。MATLAB可以通过相似变换将矩阵变换成这种形式。

函数 hess

格式 H = hess(A) %返回矩阵A的海森伯格形式

[P,H] = hess(A) %P为酉矩阵,满足:A = PHP' 且P'P = eye(size(A))。

例1-75

>> A=[-149 -50 -154;537 180 546;-27 -9 -25]; >> [P,H]=hess(A)

P =

1.0000 0 0 0 -0.9987 0.0502 0 0.0502 0.9987 H =

-149.0000 42.2037 -156.3165 -537.6783 152.5511 -554.9272 0 0.0728 2.4489

H的第一子对角元素是H(3,1)=0。

1.4 线性方程的组的求解

我们将线性方程的求解分为两类:一类是方程组求唯一解或求特解,另一类是方程组求无穷解即通解。可以通过系数矩阵的秩来判断:

若系数矩阵的秩r=n(n为方程组中未知变量的个数),则有唯一解;

若系数矩阵的秩r

线性方程组的无穷解 = 对应齐次方程组的通解+非齐次方程组的一个特解;其特解的求法属于解的第一类问题,通解部分属第二类问题。

1.4.1 求线性方程组的唯一解或特解(第一类问题)

这类问题的求法分为两类:一类主要用于解低阶稠密矩阵 —— 直接法;另一类是解大

35


矩阵及其基本运算(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公司股权转让后原债务由原股东负责案例

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: