[Insight-developers] itkPoint from a math perspective

Luis Ibanez ibanez@cs.unc.edu
Wed, 18 Jul 2001 18:40:28 -0400


Jim,

Gradients of functions and Normals to surfaces
are "Covariant" vectors. 

Differences between points are "Contravariant" 
vectors.

Strictly speaking, what is "covariant" or 
"contravariant" is not the vector in itself
but its components, and that's related to 
the vector basis used to represent the vector.

---

Unfortunately the only way to say it right
is to use the long story. It goes like this:

- We have an space in N-D

- Point  = position in this space

- Vector = relative position between two points

- N linearly independent vectors can from a 
  vector basis on this space

- Any Vector can be represented as a linear
  combination of the vectors in the base.

- The coefficients of the linear combination
  are the components of the vector. This set 
  of coefficients is what we (wrongly) call 
  a "vector". We should say: "the component of
  the vector on this particular base".

  Here is were the confusion starts: The picture 
  of the mountain is confused with the mountain 
  itself.

  We mix the concept of vector=(point-point) which
  is a line segment drawn in space), with the concept
  of vector=(array of numbers) which is the set of
  components representing the vector=(point-point) 
  in a particular vector base.

  The first one is a unique line segment no  matter 
  what coordinate system we choose to setup a grid
  on the space. It can be cartesian, or polar... given 
  two points, there is only one line that gives their 
  relative positions in a drawing.

  However, when a particular vector basis is selected,
  this vector=(point-point), can be expressed
  as a set of coefficients, The set of coefficients is
  "a representation" of the vector=(point-point)
  in terms of a particular base. We should not 
  call "vector" this set of coefficients, we should
  say "the components of the vectors on this base", but 
  given that this is too long to say,...we end up saying
  just : "the vector", and to make things worse, this
  matches our usage of the term "vector" in programming,
  as just a data structure.
 

  It is worth to put this is a doxygen page, with some
  graphics that hopefully could help to clarify the concepts.  



   Luis


----




"Miller, James V (CRD)" wrote:
> 
> Luis,
> 
> One last question on these definitions:
> 
> You mention that Covariant means something that changes in the same way as the reference frame and
> Contravariant means something that changes in a different way from the reference frame.
> 
> Now we have already said that normals and gradients are transformed differently than vectors and
> points.
> 
> Now, enter my confusion: Why are normals and gradients "Contravariant" vectors?
> 
> Jim
>