[Haskell-cafe] matrix computations based on the GSL

Henning Thielemann lemming at henning-thielemann.de
Fri Jul 8 13:38:50 EDT 2005


On Fri, 8 Jul 2005, Keean Schupke wrote:

> Henning Thielemann wrote:
>
> >On Fri, 8 Jul 2005, Keean Schupke wrote:
> >
> >>So the linear operator is translation (ie: + v)... effectively 'plus'
> >>could be viewed as a function which takes a vector and returns a matrix
> >>(operator)
> >>
> >>    (+) :: Vector -> Matrix
> >
> >Since a matrix _is_ not a linear map but only its representation, this
> >would not make sense. As I said (v+) is not a linear map thus there is no
> >matrix which represents it. A linear map f must fulfill
> > f 0 == 0
> >
> >But since
> > v+0 == v
> >  the function (v+) is only a linear map if 'v' is zero.
> >
> > I can't see how to fit in your vector extension by the 1-component.
> >
> >
> >
> Eh?

Today:

+----------------+
| The Linear Map |
+----------------+

If F is a field, V a set of vectors, and (F,V,+,*) a vectorspace then a
function f of V -> V is linear if:

for all x and y from V            f (x+y) == f x + f y
for all k from F and x from V     f (k*x) == k * f x


Lemma

If f is a linear map, then f 0 = 0.

Proof: For any v from V it is v+(-1)*v = 0.
  f 0 = f (v+(-1)*v) = f v + f ((-1)*v) = f v + (-1) * f v = 0


Theorem

If (v+) is a linear map then v == 0.

Proof: (v+0) == 0 (conclusion from the lemma)
 =>  v == 0


8-]


> (or the second by the first - the two are isomorphic)... A translation
> can be represented
> by the matrix:
>
>     1   0   0   0
>     0   1   0   0
>     0   0   1   0
>     dx  dy  dz  1
>
> So the result of "v+" is this matrix.

But the vectors I can add to v have one component less than necessary for
multiplication with this matrix.

Indeed you can map all v's with three components to an affine sub-space of
the 4-dimensional space, namely to those vectors with a 1 in the last
component. But you are no longer working with three dimensional vectors
but with four-dimensional ones. Again: isomorphy is not identity.



More information about the Haskell-Cafe mailing list