Re: Quaternion problem--> Jacobian derivation/ Metric
- To: mathgroup at smc.vnet.net
- Subject: [mg68122] Re: Quaternion problem--> Jacobian derivation/ Metric
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Mon, 24 Jul 2006 05:52:29 -0400 (EDT)
- Organization: The University of Western Australia
- References: <e7ap5q$952$1@smc.vnet.net> <e7lf1d$3l9$1@smc.vnet.net> <e7no3j$97f$1@smc.vnet.net> <e9ri0i$pa1$1@smc.vnet.net> <e9sukq$rl6$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <e9sukq$rl6$1 at smc.vnet.net>,
Roger Bagula <rlbagula at sbcglobal.net> wrote:
> I did Jacobians and metrics way back in Mathematica using
> a Jacobian matrix form from Theoretical Mechanics ,Ames and Murnagham,
> Dover Books.
D was extended to compute the Jacobian directly in version 5.1.
Alternatively, you can compute the Jacobian using Outer:
Outer[D, f, vars]
where f is list of functions and vars is a list of variables.
> (*The hard way: there has got to be a more compact way of doing this!*)
Indeed there is.
> Exp[r]*{Cos[d], Sin[d]*Sin[p]*Cos[t], Sin[d]*Sin[p]*Sin[t], Sin[d]*Cos[p]}
> x = Exp[r]*Sin[d]*Sin[p]*Cos[t]
> y = Exp[r]*Sin[d]*Sin[p]*Sin[t]
> z = Exp[r]*Sin[d]*Cos[p]
> t0 = Exp[r]*Cos[d]
> xr = D[x, r]
> yr = D[y, r]
> zr = D[z, r]
> tr = D[t0, r]
> xt = D[x, t]
> yt = D[y, t]
> zt = D[z, t]
> tt = D[t0, t]
> xp = D[x, p]
> yp = D[y, p]
> zp = D[z, p]
> tp = D[t0, p]
> xd = D[x, d]
> yd = D[y, d]
> td = D[t0, d]
No need to explicitly define x, y, z, and t0. The Jacobian is just
jacobian = D[Exp[r] {Cos[d], Sin[d] Sin[p] Cos[t],
Sin[d] Sin[p] Sin[t], Sin[d] Cos[p]}, {{r,t,p,d}}];
Alternatively in Mathematica pre 5.1,
jacobian = Outer[D, Exp[r] {Cos[d], Sin[d] Sin[p] Cos[t],
Sin[d] Sin[p] Sin[t], Sin[d] Cos[p]}, {r,t,p,d}];
> h1 = FullSimplify[1/Sqrt[xr^2 + yr^2 + zr^2 + tr^2]]
> h2 = FullSimplify[1/Sqrt[xt^2 + yt^2 + zt^2 + tt^2]]
> h3 = FullSimplify[1/Sqrt[xp^2 + yp^2 + zp^2 + tp^2]]
> h4 = FullSimplify[1/Sqrt[xd^2 + yd^2 + zd^2 + td^2]]
>
> rra = Simplify[Expand[1/h1^2]]
> tta = Simplify[Expand[1/h2^2]]
> ppa = Simplify[Expand[1/h3^2]]
> dda = Simplify[Expand[1/h4^2]]
>
The square of the scale factors can be obtained directly as
Tr[ Transpose[jacobian] . jacobian, List] // Simplify
Cheers,
Paul
_______________________________________________________________________
Paul Abbott Phone: 61 8 6488 2734
School of Physics, M013 Fax: +61 8 6488 1014
The University of Western Australia (CRICOS Provider No 00126G)
AUSTRALIA http://physics.uwa.edu.au/~paul