文档

qrupdate

QR分解排名1更新

语法

(Q1, R1) = qrupdate (Q, R, u, v)

描述

(Q1, R1) = qrupdate (Q, R, u, v)(Q, R) = qr (A)是原来的QR因式分解一个,返回的QR分解一个+ u * v ',在那里u而且v是长度适当的列向量。

例子

矩阵

mu = root (eps) mu = 1.4901e-08 A = [ones(1,4);μ*眼(4)];

在最小二乘中有一个著名的例子表明了形成的危险吗“*.相反,我们使用QR分解——标准正交Q和上三角R。

(Q, R) = qr (A);

我们预计,R是上三角。

R = -1.0000 -1.0000 -1.0000 -1.0000 0 0.0000 0.0000 0000 0.0000 0.0000 0000 00

在这种情况下,上三角项R除第一行外,的数量级为sqrt (eps)

考虑更新向量

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

而不是计算相当琐碎的QR分解这个秩一更新到一个从头开始,

[QT,RT] = qr(A + u*v') QT = 00 00 1 -1 00 00 00 0 -1 00 00 00 -1 00 00 0 -1 00 00 -1 00 00 RT = 1.0e-007 * -0.1490 00 00 -0.1490 00 00 -0.1490 00 00 0

我们可以使用qrupdate

[Q1,R1] = qrupdate(Q,R,u,v) Q1 = -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.0000 1.0000 R1 = 1.0e-007 * 0.1490 0.0000 0.0000 0.0000 0.0000 0.1490 0.0000 00 0.1490 0000 0.1490 0000 00

注意,这两种分解都是正确的,尽管它们是不同的。

提示

qrupdate只适用于全矩阵。

算法

qrupdate的第三版第12.5.1节中的算法矩阵计算Golub和van Loan的作品。qrupdate是有用的,如果我们取N = max (m, N),则从零开始计算新的QR分解大致为ON3.)算法,而简单地以这种方式更新现有的因子是一个ON2)算法。

参考文献

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

另请参阅

|

之前介绍过的R2006a

这个话题有帮助吗?