1.9 KiB
1.9 KiB
title | localeTitle |
---|---|
Dot Product | 点产品 |
点产品
点积是将两个向量相乘以获得单个数字的方法。 点积在物理学和线性代数中很常见。
您可以将两个向量a和b的点积写为a · b 。
两个向量必须具有相同的长度才能得到点积。
要查找点积,请将nth
一个向量中的第nth
元素乘以第二nth
向量中的nth
元素。 为所有元素执行此操作。 然后,找到所有这些产品的总和。 这个总和是点积!
点产品的属性
两个向量的点积也可以表示为a · b = ||a|| * ||b|| * cos(theta)
。 在这个公式中, ||a||
是矢量a的大小, theta
是两个矢量之间的角度。
两个正交(也称为垂直)矢量的点积总是0。
工作实例
例如,假设您有向量a和b 。 设a = (1 2 3 4)
, b = (-1 0 1 2)
。
点积为(1)(-1) + (2)(0) + (3)(1) + (4)(2) = -1 + 0 + 3 + 8 = 12
。 所以在这种情况下,你会说a · b = 12。
代码示例
这是JavaScript中的示例函数。 它返回两个向量参数的点积:
/**
* @param {array} a - A vector/array of numbers
* @param {array} b - A vector/array of numbers with the same length as a
* @returns {number} - The dot product of a and b
*/
function dotProduct(a, b) {
// Check if the lengths are the same - if not, there can't be a dot product
if (a.length !== b.length) {
throw "vector lengths must be equal";
}
// Create a variable to store the sum as we calculate it
let product = 0;
// Loop through the vectors, calculate products, and add them to the total
for (let i = 0; i < a.length; i++) {
// You may want to ensure that a[i] and b[i] are both finite numbers
product += a[i] * b[i];
}
return product;
}