内外积代数运算及python,tensorflow,matlab语句的实现
在进行数学运算的时候经常会碰到向量以及矩阵的乘法,如果对符号和概念没有搞清楚的话经常会出现错误,尤其是将数学表达式代码化的时候,如果搞不清数据的维度以及做的是哪种乘法的话也会出现一些无法避免的错误,轻则代码量较小,代码跑几秒提示错误,然后改正。重则成百上千行的代码反复尝试多次不知道错在哪里,浪费大量不必要的时间,我也是经常遇到向量以及矩阵的运算,一次搞清楚事后不复习又忘记,然后再查再忘,今天就索性自己写一篇博客,将常见的内积和外积的代数运算做一下梳理,如果能给碰到同样问题的朋友提供一些参考那就再好不过了。因为matlab作为数据处理与建模的一个很强大的工具经常被使用,可能也会偶尔遇到matlab的数学模型与python之间相互转换的过程,因此我就同时列出matlab和python的实现。
- 向量内积
所谓的内积(点积,数量积),代数意义总的来说就是向量对应位置的数做乘法然后求和,得到结果是一个数。
比如说3维空间中有 两 个 向 量 a = ( x 1 , y 1 , z 1 ) 和 b = ( x 2 , y 2 , z 2 ) 两个向量a =(x1,y1,z1)和b=(x2,y2,z2) 两个向量a=(x1,y1,z1)和b=(x2,y2,z2),
则向量 a ・ b = x 1 ∗ x 2 + y 1 ∗ y 2 + z 1 ∗ z 2 a・b=x1*x2+y1*y2+z1*z2 a・b=x1∗x2+y1∗y2+z1∗z2
- 矩阵内积
矩阵内积与向量内积同理,即两个同维度的矩阵对应位置上的数相乘(不过不求行列式),得到相同维度的矩阵的运算过程。
- 向量外积
所谓的外积(叉积,向量积),概括地说,其运算结果是一个向量而不是一个标量。并且两个向量的外积与这两个向量组成的坐标平面垂直。
比如说3维空间中有两个向量 a = ( x 1 , y 1 , z 1 a =(x1,y1,z1 a=(x1,y1,z1)和 b = ( x 2 , y 2 , z 2 ) b=(x2,y2,z2) b=