下一节:希望得到哪些奇异值和奇异向量? 上一级:迭代算法 上一节:迭代算法

什么操作是可以承受的?

最经济的矩阵操作是乘法,通过AAA^* AAAAA^*H(A)H(A)进行。注意,y=AAxy=A^*Ax的计算方式是y=A(Ax)y=A^*(Ax),即先进行一次AA的乘法,然后进行一次AA^*的乘法。不直接形成AAA^* A有两个原因:首先,AAA^* A可能比AA稠密得多,因此乘法成本更高。实际上,即使AA只有一行非零元素,AAA^* A也可能非常稠密。其次,形成AAA^* A的成本相当于计算n/4n/4A(Ax)A^*(Ax),这通常已经足够计算所需的奇异三元组。

类似的情况也适用于AAAA^*,只是由于AAAA^*mmmm的矩阵,而mnm \geq nAAAA^*可能(任意)比AAA^* A大。此外,存储和操作nn个向量的成本可能(任意)比mm个向量低。因此,通常使用AAA^* A而不是AAAA^*更好,并通过ui=Avi/σiu_i = Av_i / \sigma_iAAA^* A的特征向量viv_i(即AA的右奇异向量)恢复左奇异向量uiu_i。(但请参阅下面的移位-反转注释,了解AAAA^*AAA^* A更好的情况。)

进行一次H(A)H(A)的乘法成本与进行一次AAA^* AAAAA^*的乘法相同。

现在考虑移位-反转,这需要计算以下矩阵之一的LULULDLLDL^*分解: AAσIA^*A - \sigma IAAσIAA^* - \sigma IH(A)σIH(A) - \sigma I。 这里σ\sigma是一个移位,或从其减去的矩阵的近似特征值。这些分解的成本强烈依赖于矩阵的稀疏结构。根据AA的维度和稀疏结构,对以下矩阵之一进行分解可能比其他矩阵便宜得多: AAσIA^*A - \sigma IAAσIAA^* - \sigma IH(A)σIH(A) - \sigma I。以下是一些例子:

  1. 如果AA在第一列和主对角线上非零,那么AAA^* AH(A)H(A)AA几乎一样稀疏,但AAAA^*是稠密的。因此,形成和分解AAσIA^*A - \sigma I的时间和空间成本分别为O(m+n)O(m+n)O(n)O(n),而AAσIAA^* - \sigma I的时间和空间成本分别为O(m3)O(m^3)O(m2)O(m^2),两者都高得多。形成和分解H(A)σIH(A) - \sigma I的时间和空间成本也是O(m+n)O(m+n),但常数因子比AAσIA^*A - \sigma I大。

  2. 如果mnm \approx n,且AA在第一行和主对角线上非零,那么AAAA^*H(A)H(A)AA几乎一样稀疏,但AAA^* A是稠密的。因此,形成和分解AAσIAA^* - \sigma I的时间和空间成本分别为O(n)O(n),而AAσIA^*A - \sigma I的时间和空间成本分别为O(n3)O(n^3)O(n2)O(n^2),两者都高得多。形成和分解H(A)σIH(A) - \sigma I的时间和空间成本也是O(n)O(n),但常数因子比AAσIAA^* - \sigma I大。

  3. 如果mnm \approx n,且AA在第一行、第一列和主对角线上非零,那么H(A)H(A)AA几乎一样稀疏,但AAAA^*AAA^* A都是稠密的。因此,形成和分解H(A)σIH(A) - \sigma I的时间和空间成本分别为O(n)O(n),而AAσIAA^* - \sigma IAAσIA^*A - \sigma I的时间和空间成本分别为O(n3)O(n^3)O(n2)O(n^2),两者都高得多。

上述例子是为了展示极端情况,其中AAA^* AAAAA^*H(A)H(A)的行为尽可能不同。这也假设正在分解的矩阵是良序的;即,行和列的顺序是为了在分解过程中最小化填充和操作。对于上述例子,使用了对称最小度排序。通常,可以通过符号分解以比实际执行分解本身低得多的成本计算排序并估计形成和分解AAσIAA^* - \sigma IAAσIA^*A - \sigma IH(A)σIH(A) - \sigma I所需的工作和空间。详情请参见第10.3节。



下一节:希望得到哪些奇异值和奇异向量? 上一级:迭代算法 上一节:迭代算法
Susan Blackford 2000-11-20