主要内容

qrupdate.

排名1更新到QR分解

句法

[Q1,R1] = QRUPDATE(Q,R,U,V)

描述

[Q1,R1] = QRUPDATE(Q,R,U,V)什么时候[q,r] = qr(a)是原始的QR分解一种,返回QR分解A + U * V',在哪里V.是适当长度的柱矢量。

例子

矩阵

mu = sqrt(eps)mu = 1.4901e-08 a = [(1,4);mu *眼睛(4)];

是一个众所周知的例子,其在最小二乘面上表示成型的危险'* a。相反,我们使用QR分解 - 正交式Q和上三角形R.

[q,r] = qr(a);

我们期待,R.是上三角形。

R = -1.0000 -1.0000 -1.0000 -1.0000 0 0.0000 0.0000 0 0 0.0000 0.0000 0 0 0 0.0000 0 0 0 0 0

在这种情况下,上三角条目R.,排除第一行,是按顺序排列SQRT(EPS)

考虑更新向量

U = [-1 0 0 0 0]'';v = =(4,1);

而不是计算这个等级的相当琐碎的QR分解一种从划伤

[Qt,RT] = QR(A + U * V')QT = 0 0 0 0 1 -1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 0 0 0 0 -1 0 RT = 1.0e-007 * -0.1490 0 0 0 0 -0.1490 0 0 0 0 0.1490 0 0 0 0 0. 0 0 0

我们可以使用qrupdate.

[q1,r1] = qrupdate(q,r,u,v)q1 = -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.000000 0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000-0.0000 -0.0000 1.0000 0.0000 R1 = 1.0E-007 * 0.1490 0.0000 0.0000 0 0.1490 0.0000 0. 0 0 0 0.1490 0.00 0 0 0 0 0.1490 0 0 0 0 0

请注意,两个因素都是正确的,即使它们是不同的。

提示

qrupdate.仅适用于完整矩阵。

算法

qrupdate.使用第三版第12.5.1节中的算法矩阵计算由Golub和Van贷款。qrupdate.自从我们采取以来是有用的n = max(m,n),然后计算从头划痕计算新的QR分组是大致的O.N3.)算法,同时简单地以这种方式更新现有因素是一个O.N2)算法。

参考资料

[1] Golub,Gene H.和Charles Van Loan,矩阵计算,第三版,约翰霍普金斯大学出版社,巴尔的摩,1996年

扩展能力

也可以看看

|

在R2006A之前介绍