weaker | 13 May 17:34
Favicon

Cross product via 3x3 anti-symmetric matrix

Hi all you Maxima experts,

I need a cross product via a 3x3 anti-symmetric matrix.

And I don't want to use load("vect") due to the commutative behaviour
with the dot product.

I want the following: A method/macro/whatever that takes a 3x1 vector
                                    [ ax ]
                                    [ ay ]
                                    [ az ]
and creates the following anti-symmetric matrix out of it
                             [  0    - az   ay  ]
                             [  az    0    - ax ]
                             [ - ay   ax    0   ]

Just as a syntactical transformation, putting the vector elements into
the right places inside the matrix (and adding a '-').

I want to use this method in that way (the numbers reflect the
dimensions):

resultmatrix33 : crossp33(matrix33 . vector31) . othermatrix33;

It is important that it can transform the vector even if it is the
result of a calculation like  matrix33 . vector31

I don't know much about LISP so I might be thinking too much in C++
return value terms :-)

(Continue reading)

Richard Fateman | 13 May 17:37
Picon
Favicon

Re: Cross product via 3x3 anti-symmetric matrix

why not

cross33(v):= matrix([0, -v[3],  v[2]],
                    [v[3], 0 , -v[1]],
                    [-v[2], v[1], 0])$

?
RJF

> -----Original Message-----
> From: maxima-bounces <at> math.utexas.edu 
> [mailto:maxima-bounces <at> math.utexas.edu] On Behalf Of weaker
> Sent: Tuesday, May 13, 2008 8:38 AM
> To: maxima <at> math.utexas.edu
> Subject: [Maxima] Cross product via 3x3 anti-symmetric matrix
> 
> Hi all you Maxima experts,
> 
> I need a cross product via a 3x3 anti-symmetric matrix.
> 
> And I don't want to use load("vect") due to the commutative behaviour
> with the dot product.
> 
> I want the following: A method/macro/whatever that takes a 3x1 vector
>                                     [ ax ]
>                                     [ ay ]
>                                     [ az ]
> and creates the following anti-symmetric matrix out of it
>                              [  0    - az   ay  ]
>                              [  az    0    - ax ]
(Continue reading)


Gmane