奇异值分解SVD:矩阵相乘的4种视角

矩阵相乘是最常见的运算,但你真的懂它吗?答案是未必。假如,

图片

那C=A*B怎么算呢?

大家肯定会说,这还不简单,

图片

除了这个呢?你还会其他的方法吗?问题是,这还不仅仅是多几种计算方法,最重要的是,这种视角除了能算出结果外,它对理解矩阵的本质,帮助并不大。下面我们来说另外的3种视角,它们对理解矩阵,应用SVD至关重要。

第2种,列视角即C中的各列为A中列的线性组合,组合系数为B中各列的元素

图片

第3种,行视角即C中的各行为B中行的线性组合,组合系数为A中各行的元素

图片

第4种,秩为1的矩阵和的视角即C是由A中各列与B中各行相乘后得秩为1的矩阵,然后再相加得到的

图片

用matlab验证下,

代码如下:

图片

结果如下:

图片

C++中,基于Eigen库,代码如下,

图片

结果如下,

图片

现在,大家对矩阵相乘懂了吧?但这只是SVD应用征途中的第1步哦~

来源:倒墙君

THE END