📜  点积 (1)

📅  最后修改于: 2023-12-03 15:27:04.614000             🧑  作者: Mango

点积 Dot Product

点积(Dot Product),也叫向量内积(Vector Inner Product)或数量积(Scalar Product),是在向量空间中两个向量的标量积,结果为一个标量。

点积的计算公式为:

$ \vec{a} \cdot \vec{b} = |\vec{a}| \cdot |\vec{b}| \cdot \cos(\theta) $

其中,$ \vec{a} $ 和 $ \vec{b} $ 是两个向量,$ |\vec{a}| $ 和 $ |\vec{b}| $ 分别是两个向量的模长,$ \theta $ 是两个向量之间的夹角。

点积的性质:

  1. $ \vec{a} \cdot \vec{b} = \vec{b} \cdot \vec{a} $
  2. $ \vec{a} \cdot (\vec{b} + \vec{c}) = \vec{a} \cdot \vec{b} + \vec{a} \cdot \vec{c} $
  3. $ r(\vec{a} \cdot \vec{b}) = (r\vec{a}) \cdot \vec{b} = \vec{a} \cdot (r\vec{b}) $

点积的应用:

  1. 计算向量的模长
  2. 判断向量的夹角
  3. 判断向量的正交性
  4. 计算向量的投影
Python 实现

在 Python 中,可以使用 NumPy 库中的 dot 函数来计算点积。例如,计算两个向量的点积:

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

dot_product = np.dot(a, b)

print(dot_product)

输出结果为:

32
C++ 实现

在 C++ 中,可以使用标准库中的 inner_product 函数来计算点积。例如,计算两个向量的点积:

#include <iostream>
#include <numeric>
#include <vector>

int main() {
    std::vector<int> a = {1, 2, 3};
    std::vector<int> b = {4, 5, 6};

    int dot_product = std::inner_product(a.begin(), a.end(), b.begin(), 0);

    std::cout << dot_product << std::endl;

    return 0;
}

输出结果为:

32