In mathematics, the **dot product** is an operation that takes two vectors as input, and that returns a scalar number as output. The number returned is dependent on the length of both vectors, and on the angle between them. The name is derived from the centered dot "·" that is often used to designate this operation. Another name is **scalar product**. It emphasizes the scalar (rather than vector) nature of the result.

In three-dimensional space, the dot product contrasts with the cross product, which produces a vector as result.

Definition
----------

The dot product of two vectors **a** = [*a*1, *a*2, ... *a**n*] and **b** = [*b*1, *b*2, ... *b**n*] is defined as:

{\displaystyle \mathbf {a} \cdot \mathbf {b} =\sum \_{i=1}^{n}a\_{i}b\_{i}=a\_{1}b\_{1}+a\_{2}b\_{2}+\cdots +a\_{n}b\_{n}}
where Σ denotes summation notation (the sum of all the terms) and *n* is the dimension of the vector space.

In dimension 2, the dot product of vectors [a,b] and [c,d] is ac + bd.
The same way, in a dimension 3, the dot product of vectors [a,b,c] and [d,e,f] is ad + be + cf.
For example, the dot product of two three-dimensional vectors [1, 3, −5] and [4, −2, −1] is

{\displaystyle [1,3,-5]\cdot [4,-2,-1]=(1\times 4)+(3\times (-2))+((-5)\times (-1))=(4)-(6)+(5)=3.}

Geometric interpretation
------------------------

**A** • **B** = |**A**| |**B**| cos(θ).   
|**A**| cos(θ) is the scalar projection of **A** onto **B**.
### Vector Projection

The dot product of two vectors **a** and **b** can be interpreted as the product of two lengths: the length of **a** orthogonally projected onto **b**, and the length of **b** itself. This can be written as {\displaystyle \|a\|\|b\|\cos(\theta )}, where θ (theta) is the angle between the two vectors. In the diagram shown, {\displaystyle \|a\|\cos(\theta )} is the length of **a** orthogonally projected onto **b**, found using trigonometry.

The formula {\displaystyle \|a\|\|b\|\cos(\theta )} can be used to find certain properties.

{\displaystyle a\cdot a=\|a\|^{2}}

{\displaystyle \theta =\arccos({\frac {a\cdot b}{\left\|a\right\|\left\|b\right\|}})}

### Rotation

A rotation of the orthonormal basis in terms of which vector **a** is represented is obtained with a multiplication of **a** by a rotation matrix **R**. This matrix multiplication is just a compact representation of a sequence of dot products.

For instance, let

* *B*1 = {**x**, **y**, **z**} and *B*2 = {**u**, **v**, **w**} be two different orthonormal bases of the same space **R**3, with *B*2 obtained by just rotating *B*1,
* **a**1 = (ax, ay, az) represent vector **a** in terms of *B*1,
* **a**2 = (au, av, aw) represent the same vector in terms of the rotated basis *B*2,
* **u**1, **v**1, **w**1 be the rotated basis vectors **u**, **v**, **w** represented in terms of *B*1.

Then the rotation from *B*1 to *B*2 is performed as follows:

{\displaystyle {\mathbf {a}}\_{2}={\mathbf {Ra}}\_{1}={\begin{bmatrix}u\_{x}&u\_{y}&u\_{z}\\v\_{x}&v\_{y}&v\_{z}\\w\_{x}&w\_{y}&w\_{z}\end{bmatrix}}{\begin{bmatrix}a\_{x}\\a\_{y}\\a\_{z}\end{bmatrix}}={\begin{bmatrix}{\mathbf {u}}\_{1}\cdot {\mathbf {a}}\_{1}\\{\mathbf {v}}\_{1}\cdot {\mathbf {a}}\_{1}\\{\mathbf {w}}\_{1}\cdot {\mathbf {a}}\_{1}\end{bmatrix}}={\begin{bmatrix}a\_{u}\\a\_{v}\\a\_{w}\end{bmatrix}}.}
Notice that the rotation matrix **R** is assembled by using the rotated basis vectors **u**1, **v**1, **w**1 as its rows, and these vectors are unit vectors. By definition, **Ra**1 consists of a sequence of dot products between each of the three rows of **R** and vector **a**1. Each of these dot products determines a scalar component of **a** in the direction of a rotated basis vector (see previous section).

If **a**1 is a row vector, rather than a column vector, then **R** must contain the rotated basis vectors in its columns, and must post-multiply **a**1:

{\displaystyle {\mathbf {a}}\_{2}={\mathbf {a}}\_{1}{\mathbf {R}}={\begin{bmatrix}a\_{x}&a\_{y}&a\_{z}\end{bmatrix}}{\begin{bmatrix}u\_{x}&v\_{x}&w\_{x}\\u\_{y}&v\_{y}&w\_{y}\\u\_{z}&v\_{z}&w\_{z}\end{bmatrix}}={\begin{bmatrix}{\mathbf {u}}\_{1}\cdot {\mathbf {a}}\_{1}&{\mathbf {v}}\_{1}\cdot {\mathbf {a}}\_{1}&{\mathbf {w}}\_{1}\cdot {\mathbf {a}}\_{1}\end{bmatrix}}={\begin{bmatrix}a\_{u}&a\_{v}&a\_{w}\end{bmatrix}}.}

Physics
-------

In physics, magnitude is a scalar in the physical sense, in that it is a physical quantity independent of the coordinate system, expressed as the product of a numerical value and a physical unit, not just a number. The dot product is also a scalar in this sense, given by the formula, independent of the coordinate system. For example:

* Mechanical work is the dot product of force and displacement vectors.
* Magnetic flux is the dot product of the magnetic field and the area vectors.
* Volumetric flow rate is the dot product of the fluid velocity and the area vectors.

Properties
----------

The following properties hold if **a**, **b**, and **c** are real vectors and *r* is a scalar.

The dot product is commutative:

{\displaystyle \mathbf {a} \cdot \mathbf {b} =\mathbf {b} \cdot \mathbf {a} .}
The dot product is distributive over vector addition:

{\displaystyle \mathbf {a} \cdot (\mathbf {b} +\mathbf {c} )=\mathbf {a} \cdot \mathbf {b} +\mathbf {a} \cdot \mathbf {c} .}
The dot product is bilinear:

{\displaystyle \mathbf {a} \cdot (r\mathbf {b} +\mathbf {c} )=r(\mathbf {a} \cdot \mathbf {b} )+(\mathbf {a} \cdot \mathbf {c} ).}
When multiplied by a scalar value, dot product satisfies:

{\displaystyle (c\_{1}\mathbf {a} )\cdot (c\_{2}\mathbf {b} )=(c\_{1}c\_{2})(\mathbf {a} \cdot \mathbf {b} )}
(these last two properties follow from the first two).

Two non-zero vectors **a** and **b** are perpendicular if and only if **a** • **b** = 0.

Unlike multiplication of ordinary numbers, where if *ab* = *ac*, then *b* always equals *c* unless *a* is zero, the dot product does not obey the cancellation law:

If **a** • **b** = **a** • **c** and **a** ≠ **0**, then we can write: **a** • (**b** − **c**) = 0 by the distributive law; the result above says this just means that **a** is perpendicular to (**b** − **c**), which still allows (**b** − **c**) ≠ **0**, and therefore **b** ≠ **c**.
Provided that the basis is orthonormal, the dot product is invariant under isometric changes of the basis: rotations, reflections, and combinations, keeping the origin fixed. The above mentioned geometric interpretation relies on this property. In other words, for an orthonormal space with any number of dimensions, the dot product is invariant under a coordinate transformation based on an orthogonal matrix. This corresponds to the following two conditions:

* The new basis is again orthonormal (that is, orthonormal expressed in the old one).
* The new base vectors have the same length as the old ones (that is, unit length in terms of the old basis).

If **a** and **b** are functions, then the derivative of **a** • **b** is **a'** • **b** + **a** • **b'.**

Triple product expansion
------------------------

See the main article: Triple product
This is a very useful identity (also known as **Lagrange's formula**) involving the dot- and cross-products. It is written as

{\displaystyle \mathbf {a} \times (\mathbf {b} \times \mathbf {c} )=\mathbf {b} (\mathbf {a} \cdot \mathbf {c} )-\mathbf {c} (\mathbf {a} \cdot \mathbf {b} )}
which is easier to remember as "BAC minus CAB", keeping in mind which vectors are dotted together. This formula is commonly used to simplify vector calculations in physics.

Proof of the geometric interpretation
-------------------------------------

Consider the element of **R**n

{\displaystyle \mathbf {v} =v\_{1}\mathbf {\hat {e}} \_{1}+v\_{2}\mathbf {\hat {e}} \_{2}+...+v\_{n}\mathbf {\hat {e}} \_{n}.\,}
Repeated application of the Pythagorean theorem yields for its length |**v**|

{\displaystyle |\mathbf {v} |^{2}=v\_{1}^{2}+v\_{2}^{2}+...+v\_{n}^{2}.\,}
But this is the same as

{\displaystyle \mathbf {v} \cdot \mathbf {v} =v\_{1}^{2}+v\_{2}^{2}+...+v\_{n}^{2},\,}
so we conclude that taking the dot product of a vector **v** with itself yields the squared length of the vector.

**Lemma 1**{\displaystyle \mathbf {v} \cdot \mathbf {v} =|\mathbf {v} |^{2}.\,}
Now consider two vectors **a** and **b** extending from the origin, separated by an angle θ. A third vector **c** may be defined as

{\displaystyle \mathbf {c} \ {\stackrel {\mathrm {def} }{=}}\ \mathbf {a} -\mathbf {b} .\,}
creating a triangle with sides **a**, **b**, and **c**. According to the law of cosines, we have

{\displaystyle |\mathbf {c} |^{2}=|\mathbf {a} |^{2}+|\mathbf {b} |^{2}-2|\mathbf {a} ||\mathbf {b} |\cos \theta .\,}
Substituting dot products for the squared lengths according to Lemma 1, we get

{\displaystyle \mathbf {c} \cdot \mathbf {c} =\mathbf {a} \cdot \mathbf {a} +\mathbf {b} \cdot \mathbf {b} -2|\mathbf {a} ||\mathbf {b} |\cos \theta .\,}                   *(1)*
But as **c** ≡ **a** − **b**, we also have

{\displaystyle \mathbf {c} \cdot \mathbf {c} =(\mathbf {a} -\mathbf {b} )\cdot (\mathbf {a} -\mathbf {b} )\,},
which, according to the distributive law, expands to

{\displaystyle \mathbf {c} \cdot \mathbf {c} =\mathbf {a} \cdot \mathbf {a} +\mathbf {b} \cdot \mathbf {b} -2(\mathbf {a} \cdot \mathbf {b} ).\,}                     *(2)*
Merging the two **c** • **c** equations, *(1)* and *(2)*, we obtain

{\displaystyle \mathbf {a} \cdot \mathbf {a} +\mathbf {b} \cdot \mathbf {b} -2(\mathbf {a} \cdot \mathbf {b} )=\mathbf {a} \cdot \mathbf {a} +\mathbf {b} \cdot \mathbf {b} -2|\mathbf {a} ||\mathbf {b} |\cos \theta .\,}
Subtracting **a** • **a** + **b** • **b** from both sides and dividing by −2 leaves

{\displaystyle \mathbf {a} \cdot \mathbf {b} =|\mathbf {a} ||\mathbf {b} |\cos \theta .\,}
Q.E.D.

Generalization
--------------

The inner product generalizes the dot product to abstract vector spaces and is usually denoted by {\displaystyle \langle \mathbf {a} \,,\mathbf {b} \rangle }. Due to the geometric interpretation of the dot product, the norm ||**a**|| of a vector **a** in such an inner product space is defined as

{\displaystyle \|\mathbf {a} \|={\sqrt {\langle \mathbf {a} \,,\mathbf {a} \rangle }}}
such that it generalizes length, and the angle θ between two vectors **a** and **b** by

{\displaystyle \cos {\theta }={\frac {\langle \mathbf {a} \,,\mathbf {b} \rangle }{\|\mathbf {a} \|\,\|\mathbf {b} \|}}.}
In particular, two vectors are considered orthogonal if their inner product is zero

{\displaystyle \langle \mathbf {a} \,,\mathbf {b} \rangle =0.}
For vectors with complex entries, using the given definition of the dot product would lead to quite different geometric properties. For instance, the dot product of a vector with itself can be an arbitrary complex number, and can be zero without the vector being the zero vector; this in turn would have severe consequences for notions like length and angle. Many geometric properties can be salvaged, at the cost of giving up the symmetric and bilinear properties of the scalar product, by alternatively defining

{\displaystyle \mathbf {a} \cdot \mathbf {b} =\sum {a\_{i}{\overline {b\_{i}}}}}
where *bi* is the complex conjugate of *bi*. Then the scalar product of any vector with itself is a non-negative real number, and it is nonzero except for the zero vector. However, this scalar product is not linear in **b** (but rather conjugate linear), and the scalar product is not symmetric either, since

{\displaystyle \mathbf {a} \cdot \mathbf {b} ={\overline {\mathbf {b} \cdot \mathbf {a} }}}.
This type of scalar product is nevertheless quite useful, and leads to the notions of Hermitian form and of general inner product spaces.

The Frobenius inner product generalizes the dot product to matrices. It is defined as the sum of the products of the corresponding components of two matrices having the same size.

### Generalization to tensors

The dot product between a tensor of order n and a tensor of order m is a tensor of order n+m-2. The dot product is worked out by multiplying and summing across a single index in both tensors. If {\displaystyle \mathbf {A} } and {\displaystyle \mathbf {B} } are two tensors with element representation {\displaystyle A\_{ij\dots }^{k\ell \dots }} and {\displaystyle B\_{mn\dots }^{p{\dots }i}} the elements of the dot product {\displaystyle \mathbf {A} \cdot \mathbf {B} } are given by

{\displaystyle A\_{ij\dots }^{k\ell \dots }B\_{mn\dots }^{p{\dots }i}=\sum \_{i=1}^{n}A\_{ij\dots }^{k\ell \dots }B\_{mn\dots }^{p{\dots }i}}
This definition naturally reduces to the standard vector dot product when applied to vectors, and matrix multiplication when applied to matrices.

Occasionally, a double dot product is used to represent multiplying and summing across two indices. The double dot product between two 2nd order tensors is a scalar.

Related pages
-------------

* Cauchy–Schwarz inequality
* Cross product
* Matrix multiplication

Other websites
--------------

* A quick geometrical derivation and interpretation of dot product
* Interactive GeoGebra Applet
* Java demonstration of dot product
* Another Java demonstration of dot product
* Explanation of dot product including with complex vectors
* "Dot Product" by Bruce Torrence, Wolfram Demonstrations Project, 2007.
* Intuitive explanation video 1 and video 2 from online Interactive 3D graphics course