Maths - Covectors

On the vector page we saw that vectors take elements with a field structure and create an array of these field elements which produces a vector space structure. This is described as a vector 'over' a field.

  name operations operands
combined structure vector space addition and scalar multiplication scalar and vector
element structure field add,subtract, mult and divide number such as integer, real and so on.

A covector is the dual of this:

that is: if we think of a vector as a mapping from a field to a vector space then a covector represents a mapping from a vector space to a field.

So how can we construct a covector?

Linear Functional

A linear function like:

ƒ(x,y,z) = 3*x + 4*y + 2*z

has similarities to vectors, for instance we can add them for instance if:

ƒ1(x,y,z) = 3*x + 4*y + 2*z


ƒ2(x,y,z) = 6*x +5*y + 3*z

then we can add them by adding corresponding terms:

ƒ1(x,y,z) + ƒ2(x,y,z) = 9*x + 9*y + 5*z

We can also apply scalar multipication, for instance:

2*ƒ1(x,y,z) = 6*x + 8*y + 4*z

We can also multiply them together, for instance:

ƒ1(x,y,z) * ƒ2(x,y,z) = 18 x² + 39 xy + 20y² + 21 xz + 22 yz + 6z²

but this product is no longer linear but is quadratic.

So these functions have the same properties as vectors (that is they are isomorphic to vectors), however we now want to reverse this and make the functions ƒ1and ƒ2 the unknowns and the vector is the known:

  x   x   x   x  
(a*ƒ1+ b*ƒ2+ c*ƒ3)( y )=(a*ƒ1)( y )+(b*ƒ2)( y )+(c*ƒ3)( y )
  z   z   z   z  

So if we supply values for the vector what is the unknown function (or the function multipliers a,b and c) ?

3   7   8   4  
4 =( 3 )+(b*ƒ2)( 4 )+(c*ƒ3)( 4 )
2   1   2   6  


We can generalise this duality between vectors and covectors to tensors one of the aims of this type of approach is to analyze geometry and physics in a way that is independent of the coordinate system.

The duality shows itself in various ways :

  1. If vectors are related to columns of a matrix then covectors are related to the rows.
  2. The dot product of a vector and its corresponding covector gives a scalar.
  3. When the coordinate system in changed then the covectors move in the opposite way to vectors (Contravariant and Covariant).
  4. If a vector is made from a linear combination of basis vectors then a covector is made by combining the normals to planes.
  5. When we take an infinitesimally small part of a manifold the vectors form the tangent space and the covectors form the cotangent space.
  6. vector elements are represented by superscripts and covector elements are represented by subscripts.

Coordinate Independence

So lets start with a 3D global orthogonal coordinate system.

First we will start with a coordinate system based on a linear combination of orthogonal basis vectors.

change coordinates

The physical vector 'p' can be represented by either:

p = ∑ viei in the red coordinate system and

p = ∑ v'ie'i in the green coordinate system.


So we can transform between the two using:

∑ v'k = tki v i


∑ ek = t'ki e'i


Orthogonal Coordinates

We are considering the situation where a vector is measured as a linear combination of a number of basis vectors. We now add an additional condition that the basis vectors are mutually at 90° to each other. In this case we have:

ei • ej = δij


If we choose a different set of basis vectors, but still perpendicular to each other, say e'i and e'j then we have:

e'i • e'j = δij

To add more dimensions we can use:

eki • ekj = δij

This is derived from the above expression using the substitution property of the Kronecker Delta.

We could express the above in matrix notation:

e et= [I]

For example, in the simple two dimensional case:

e0 e1
e0•e0 e0•e1
e1•e0 e1•e1
1 0
0 1

since the basis vectors are orthogonal then:

e0•e0 = e1•e1 = 1
e1•e0 = e0•e1 = 0


et e = 1


e0 e1

but a scalar multiplication by 1 is the same as a matrix multiplication by [I] so we have: et e = e et= [I] = 1 = δij

Now instead of looking at the basis vectors we will look at

aT a = [I]

a0 a1
a0*b0 + a1*b1


We can combine these terminologies to give:

(aT a)ij = eki • ekj = δij

Any of these equations defines an orthogonal transformation.

Non-Orthogonal Coordinates

So far we assumed the coordinates are linear and orthogonal but what if the coordinates are curviliner?


metadata block
see also:

Correspondence about this page

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.

cover Mathematics for 3D game Programming - Includes introduction to Vectors, Matrices, Transforms and Trigonometry. (But no euler angles or quaternions). Also includes ray tracing and some linear & rotational physics also collision detection (but not collision response).

cover Covers VRML 2 (but not the upcoming X3D standard). A good introduction to all VRML2 node types and how to build them.

Other Math Books

Terminology and Notation

Specific to this page here:


This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2014 Martin John Baker - All rights reserved - privacy policy.