以下是一个示例,假设A和B是两个4×4的方阵,秩都为4。
首先对A进行奇异值分解A=UAΣAVAT,对B进行奇异值分解B=UBΣBVBT。
那么AB=UAΣAVATUBΣBVBT。
假设UA、VA、UB、VB都是4×4的正交矩阵,ΣA和ΣB是4×4的对角矩阵。
如果直接计算AB,需要进行4×4×4=64次乘法和若干次加法运算。
而通过 SVD 分解后计算AB,先计算VATUB,这是两个4×4矩阵相乘,需要4×4×4=64次乘法,但由于VAT和UB是正交矩阵,它们的乘积仍然是正交矩阵,计算过程有一定特殊性可简化计算。
然后计算ΣA(VATUB)ΣB,因为ΣA和ΣB是对角矩阵,与其他矩阵相乘时,只需对对角元素进行乘法运算,计算量大幅减少,这里主要是4×4=16次乘法。
最后计算UA(ΣA(VATUB)ΣB)VBT,同样利用正交矩阵的性质,计算量也相对较小。
总体来看,通过 SVD 分解,将原本直接计算矩阵乘法的较大计算量,转化为利用正交矩阵性质和对角矩阵乘法的相对简单的计算,从而减少了计算量。
在实际中,当矩阵规模更大且秩相对较小(即存在较多奇异值为0)时,SVD 分解在减少计算量方面的优势会更加显著。