This page gives a brief conceptual overview of the functionality present in
`sympy.vector`.

In vector math, we deal with two kinds of quantities – scalars and vectors.

A **scalar** is an entity which only has a magnitude – no direction. Examples of
scalar quantities include mass, electric charge, temperature, distance, etc.

A **vector**, on the other hand, is an entity that is characterized by a
magnitude and a direction. Examples of vector quantities are displacement,
velocity, magnetic field, etc.

A scalar can be depicted just by a number, for e.g. a temperature of 300 K. On the other hand, vectorial quantities like acceleration are usually denoted by a vector. Given a vector \(\mathbf{V}\), the magnitude of the corresponding quantity can be calculated as the magnitude of the vector itself \(\Vert \mathbf{V} \Vert\), while the direction would be specified by a unit vector in the direction of the original vector, \(\mathbf{\hat{V}} = \frac{\mathbf{V}}{\Vert \mathbf{V} \Vert}\).

For example, consider a displacement of \((3\mathbf{\hat{i}} + 4\mathbf{\hat{j}} + 5\mathbf{\hat{k}})\) m, where , as per standard convention, \(\mathbf{\hat{i}}\), \(\mathbf{\hat{j}}\) and \(\mathbf{\hat{k}}\) represent unit vectors along the \(\mathbf{X}\), \(\mathbf{Y}\) and \(\mathbf{Z}\) axes respectively. Therefore, it can be concluded that the distance traveled is \(\Vert 3\mathbf{\hat{i}} + 4\mathbf{\hat{j}} + 5\mathbf{\hat{k}} \Vert\) m = \(5\sqrt{2}\) m. The direction of travel is given by the unit vector \(\frac{3}{5\sqrt{2}}\mathbf{\hat{i}} + \frac{4}{5\sqrt{2}}\mathbf{\hat{j}} + \frac{5}{5\sqrt{2}}\mathbf{\hat{k}}\).

A **coordinate system** is an abstract mathematical entity used to define
the notion of directions and locations in n-dimensional spaces. This
module deals with 3-dimensional spaces, with the conventional \(X\),
\(Y\) and \(Z\) axes defined with respect
to each coordinate system.

Each coordinate system also has a special reference point called the ‘origin’ defined for it. This point is used either while referring to locations in 3D space, or while calculating the coordinates of pre-defined points with respect to the system.

It is a pretty well-known concept that there is no absolute notion of location or orientation in space. Any given coordinate system defines a unique ‘perspective’ of quantifying positions and directions. Therefore, even if we assume that all systems deal with the same units of measurement, the expression of vectorial and scalar quantities differs according to the coordinate system a certain observer deals with.

Consider two points \(P\) and \(Q\) in space. Assuming units to be common throughtout, the distance between these points remains the same regardless of the coordinate system in which the measurements are being made. However, the 3-D coordinates of each of the two points, as well as the position vector of any of the points with respect to the other, do not. In fact, these two quantities don’t make sense at all, unless they are being measured keeping in mind a certain location and orientation of the measurer (essentially the coordinate system).

Therefore, it is quite clear that the orientation and location (of the origin) of a coordinate system define the way different quantities will be expressed with respect to it. Neither of the two properties can be measured on an absolute scale, but rather with respect to another coordinate system. The orientation of one system with respect to another is measured using the the rotation matrix, while the relative position can be quantified via the position vector of one system’s origin with respect to the other.

A **field** is a vector or scalar quantity that can be
specified everywhere in space as a function of position (Note that in general
a field may also be dependent on time and other custom variables). Since we
only deal with 3D spaces in this module, a field is defined as a function of
the \(x\), \(y\) and \(z\) coordinates corresponding
to a location in the coordinate system. Here, \(x\), \(y\) and
\(z\) act as scalar variables defining the position of a general point.

For example, temperature in 3 dimensional space (a temperature field) can be written as \(T(x, y, z)\) – a scalar function of the position. An example of a scalar field in electromagnetism is the electric potential.

In a similar manner, a vector field can be defined as a vectorial function of the location \((x, y, z)\) of any point in space.

For instance, every point on the earth may be considered to be in the gravitational force field of the earth. We may specify the field by the magnitude and the direction of acceleration due to gravity (i.e. force per unit mass ) \(\vec g(x, y, z)\) at every point in space.

To give an example from electromagnetism, consider an electric potential of form \(2{x}^{2}y\), a scalar field in 3D space. The corresponding conservative electric field can be computed as the gradient of the electric potential function, and expressed as \(4xy\mathbf{\hat{i}} + 2{x}^{2}\mathbf{\hat{j}}\). The magnitude of this electric field can in turn be expressed as a scalar field of the form \(\sqrt{4{x}^{4} + 16{x}^{2}{y}^{2}}\).