I have this function I need to build a Jacobian matrix for:

$\displaystyle

F = R\left(\bar{q}\right) . p

$

where p is a position vectors (x,y,z) and R(q) is the function converting a quaternion to a rotation matrix.

Note that in the function F, the rotation matrix is obtained from the conjugate of q, i.e. (q0, -q1, -q2, -q3).

$\displaystyle

R(q) = \left(

\begin{array}{ccc}

{q0}^2+{q1}^2-{q2}^2-{q3}^2 & 2 ({q1} {q2}-{q0} {q3}) & 2 ({q0} {q2}+{q1} {q3}) \\

2 ({q1} {q2}+{q0} {q3}) & {q0}^2-{q1}^2+{q2}^2-{q3}^2 & 2 (-{q0} {q1}+{q2} {q3}) \\

2 (-{q0} {q2}+{q1} {q3}) & 2 ({q0} {q1}+{q2} {q3}) & {q0}^2-{q1}^2-{q2}^2+{q3}^2

\end{array}

\right)

$

The jacobian matrix I obtain for dH/dq is as follows: err.. can't post it here, the latex parser doesn't like it. Let's just say it's

$\displaystyle

\frac{\partial F}{\partial q}=\frac{\partial R(\text{q0},-\text{q1},-\text{q3},-\text{q3}) . p}{\partial (\text{q0},\text{q1},\text{q3},\text{q3})}

$

However, I saw someone obtaining this jacobian by separating dF/dq into

$\displaystyle

\frac{\partial F}{\partial q}=\frac{\partial R\left(\bar{q}\right) . p}{\partial \bar{q}}.\frac{\partial \bar{q}}{\partial q}=\frac{\partial R(\text{q0},\text{q1},\text{q3},\text{q3}) . p}{\partial (\text{q0},\text{q1},\text{q3},\text{q3})}.\frac{\ partial \bar{q}}{\partial q}

$

where

$\displaystyle

\frac{\partial \bar{q}}{\partial q}=\left(

\begin{array}{cccc}

1 & 0 & 0 & 0 \\

0 & -1 & 0 & 0 \\

0 & 0 & -1 & 0 \\

0 & 0 & 0 & -1

\end{array}

\right)

$

The resulting jacobian is not the same as mine... it seems that

$\displaystyle

\frac{\partial F}{\partial q}=\frac{\partial R(\text{q0},-\text{q1},-\text{q3},-\text{q3}) . p}{\partial (\text{q0},\text{q1},\text{q3},\text{q3})}\neq \frac{\partial R(\text{q0},\text{q1},\text{q3},\text{q3}) . p}{\partial (\text{q0},\text{q1},\text{q3},\text{q3})}.\frac{\ partial \bar{q}}{\partial q}

$

so which is right? i'm quite confused now. Either Mathematica is wrong, or that other guy has put some screwy math in his source code.

thanks,

Lwi