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

58 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
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)