[Numpy-discussion] permutation symbol

Charles R Harris charlesr.harris at gmail.com
Tue Jun 30 13:10:39 EDT 2009

On Tue, Jun 30, 2009 at 10:56 AM, Charles R Harris <
charlesr.harris at gmail.com> wrote:

>
>
> On Tue, Jun 30, 2009 at 10:40 AM, Nils Wagner <
> nwagner at iam.uni-stuttgart.de> wrote:
>
>> On Tue, 30 Jun 2009 10:27:05 -0600
>>  Charles R Harris <charlesr.harris at gmail.com> wrote:
>> > On Tue, Jun 30, 2009 at 5:11 AM, Nils Wagner
>> > <nwagner at iam.uni-stuttgart.de>wrote:
>> >
>> >> On Tue, 30 Jun 2009 11:22:34 +0200
>> >>  "Nils Wagner" <nwagner at iam.uni-stuttgart.de> wrote:
>> >>
>> >>>  Hi all,
>> >>>
>> >>> How can I build the following product with numpy
>> >>>
>> >>> q_i = \varepsilon_{ijk} q_{kj}
>> >>>
>> >>> where  \varepsilon_{ijk} denotes the permutation symbol.
>> >>>
>> >>> Nils
>> >>>
>> >>  Sorry for replying to myself.
>> >> The permutation symbol is also known as the Levi-Civita
>> >>symbol.
>> >> I found an explicit expression at
>> >> http://en.wikipedia.org/wiki/Levi-Civita_symbol
>> >>
>> >> How do I build the product of the Levi-Civita symbol
>> >>\varepsilon_{ijk} and
>> >> the two dimensional array
>> >> q_{kj}, i,j,k = 1,2,3 ?
>> >>
>> >
>> > Write it out explicitly. It essentially antisymmetrizes
>> >q and the three off
>> > diagonal elements can then be treated as a vector.
>> >Depending on how q is
>> > formed and the resulting vector is used there may be
>> >other things you can do
>> > when you use it in a more general expression. If this is
>> >part of a general
>> > calculation there might be other ways of expressing it.
>> >
>> > Chuck
>>
>> Hi Chuck,
>>
>> Thank you for your response.
>> The problem at hand is described in a paper by Angeles
>> namely equation (17c) in
>> "Automatic computation of the screw parameters of
>> rigid-body motions.
>> Part I: Finitely-separated positions"
>> Journal of Dynamic systems, Measurement and Control, Vol.
>> 108 (1986) pp. 32-38
>>
>
> You can solve this problem using quaternions also, in which case it reduces
> to an eigenvalue problem. You will note that such things as PCA are used in
> the papers that reference the cited work so you can't really get around that
> bit of inefficiency.
>

Here's a reference to the quaternion approach:
http://people.csail.mit.edu/bkph/papers/Absolute_Orientation.pdf. You can
get the translation part from the motion of the centroid.

If you are into abstractions you will note that the problem reduces to
minimising a quadratic form in the quaternion components. The rest is just
algebra ;)

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20090630/87d95be6/attachment.html>