吴旭华 发表于 2025-1-12 01:50:22

矩阵和向量点乘叉乘元素乘

Date: 2025.01.07
Author: Xin Pan
回首下矩阵和向量的各种乘法。
向量

点乘

又叫做点积、内积、数量积、标量积。                                 a                         =                         [                                 a                            1                                  ,                                 a                            2                                  ,                         .                         .                         .                         ,                                 a                            n                                  ]                              a=                  a=和                                 b                         =                         [                                 b                            1                                  ,                                 b                            2                                  ,                         .                         .                         .                         ,                                 b                            n                                  ]                              b=                  b=点乘的结果是一个标量,记作                                 a                         .                         b                              a.b                  a.b
                                    a                         .                         b                         =                                 ∑                                       i                               =                               1                                    n                                          a                            i                                          b                            i                                  =                                 a                            1                                          b                            1                                  +                                 a                            2                                          b                            2                                  +                         .                         .                         .                         +                                 a                            n                                          b                            n                                       a.b=\sum_{i=1}^na_ib_i=a_1b_1+a_2b_2+...+a_nb_n                  a.b=∑i=1n​ai​bi​=a1​b1​+a2​b2​+...+an​bn​
叉乘

又叫向量积、外积、叉积,叉乘,                                 a                         =                         [                                 a                            1                                  ,                                 a                            2                                  ,                         .                         .                         .                         ,                                 a                            n                                  ]                              a=                  a=和                                 b                         =                         [                                 b                            1                                  ,                                 b                            2                                  ,                         .                         .                         .                         ,                                 b                            n                                  ]                              b=                  b=叉乘的运算结果是一个向量,而且两个向量的叉积与这两个向量组成的坐标平面垂直,记作                                 a                         x                         b                              axb                  axb
                                    a                         x                         b                         =                         (                                 a                            2                                          b                            3                                  −                                 b                            2                                          a                            3                                  ,                         −                                 a                            1                                          b                            3                                  +                                 b                            1                                          a                            3                                  ,                                 a                            1                                          b                            2                                  −                                 b                            1                                          a                            2                                  )                              axb=(a_2b_3-b_2a_3,-a_1b_3+b_1a_3,a_1b_2-b_1a_2)                  axb=(a2​b3​−b2​a3​,−a1​b3​+b1​a3​,a1​b2​−b1​a2​)
元素乘(我自己起的名,为了方便理解)

对应位置元素相成,维度稳定。
import numpy as np

if __name__ == "__main__":
    a = np.array()
    b = np.array()

    print(f"Dot={np.dot(a,b)}")
    print(f"Cross={np.cross(a,b)}")
    print(f"@ times={a@b}")
    print(f"* times={a*b}")
    print(f"np.multiply={np.multiply(a,b)}")

结果
Dot=32
Cross=[-36 -3]
@ times=32
* times=[ 4 10 18]
np.multiply=[ 4 10 18]
矩阵

点乘

是矩阵各个对应元素相乘, 这个时候要求两个矩阵必须同样大小。做的事和向量的元素乘一样的。可以直接利用星号(*)进行表示。
叉乘

矩阵的乘法就是矩阵a的第m行乘以矩阵b的第n列,各个元素对应相乘然后求和作为第m行n列元素的值。利用np.dot函数实行,也可以利用@计算。
元素乘(我自己起的名,为了方便理解)

和矩阵点乘做的是一样的事情。
import numpy as np

if __name__ == "__main__":
    a = np.array([, ])
    b = np.array([, ])

    print(f"Dot={np.dot(a,b.T)}")
    print(f"Cross={np.cross(a,b)}")
    print(f"@ times={a@b.T}")
    print(f"* times={a*b}")
    print(f"np.multiply={np.multiply(a,b)}")

结果
Dot=[[ 5068]
]
Cross=[[-6 12 -6]
[-6 12 -6]]
@ times=[[ 5068]
]
* times=[[ 7 16 27]
]
np.multiply=[[ 7 16 27]
]
总结

维度点乘结果叉乘结果元素乘结果向量 或 数向量向量矩阵 M,N大概同等矩阵矩阵矩阵 维度点乘表示叉乘表示元素乘表示向量 或 np.dot or @np.cross* or multiply矩阵 M,N大概同等* or multiplynp.dot or @* or multiply
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 矩阵和向量点乘叉乘元素乘