freeCodeCamp/guide/chinese/mathematics/dot-product/index.md

58 lines
1.9 KiB
Markdown
Raw Normal View History

---
title: Dot Product
localeTitle: 点产品
---
## 点产品
点积是将两个向量相乘以获得单个数字的方法。 点积在物理学和线性代数中很常见。
您可以将两个向量**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中的示例函数。 它返回两个向量参数的点积:
```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;
}
```
### 更多信息:
[矢量](../vectors/index.md)