logo back up home forward   further reading more topics »

Maths - Covectors

The idea of covectors comes from the concept of tensors and one of the things we are trying to to do is analyse geometry and physics in a way that is independent of the coordinate system.

When I search on the web for the idea of 'covectors' every site I find seems to have a different way to introduce them. There seem to be at least six approaches:

  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 infinitseimally 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.

I would like to try to reconcile these approaches and work out which is most fundamental.

It seems to me that one of the most fundamental things about tensors is about changes to the coordinate system and defining things in a coordinate independant way and therefore I would like to approach this from that point of view.

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.

where:

So we can transform between the two using:

∑ v'k = tki v i

or

∑ ek = t'ki e'i

where:

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

where:

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

also:

et e = 1

because:

e0
e1
e0 e1
=
e0•e0+e1•e1
=
1

but a scalar multipication by 1 is the same as a matrix multipication 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
b0
b1
=
a0*b0 + a1*b1

where:

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

Commercial Software Shop

Where I can, I have put links to Amazon for commercial software, not directly related to the software project, but related to the subject being discussed, click on the appropriate country flag to get more details of the software or to buy it from them.

cover Mathmatica

Can you help?

Please send me any improvements to here. I would appreciate ideas to make the pages more useful including error correction, ideas for new pages, improvements to wording. It helps if you quote the full URL of the page.

 

Terminology and Notation

Specific to this page here:

 

program

I am working on a project which uses these principles, if you would like to help me with this you are welcome to join in, here:

http://sourceforge.net/projects/mjbworld/

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

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