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