奇异值分解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