       Re: VECTOR coordinate transformation?

• To: mathgroup at smc.vnet.net
• Subject: [mg61320] Re: [mg61242] VECTOR coordinate transformation?
• From: "David Park" <djmp at earthlink.net>
• Date: Fri, 14 Oct 2005 22:23:17 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```Not exactly, but it is easy to generate the conversion, at least from
spherical to Cartesian.

Define the Cartesian components of a point in spherical coordinates. Here r
is the radius from the origin, phi is the colatitude (angle from the z axis)
and theta is the longitude.

p[r_, \[Phi]_, \[Theta]_] = r*{Sin[\[Phi]]*Cos[\[Theta]],
Sin[\[Phi]]*Sin[\[Theta]], Cos[\[Phi]]}

To calculate the vector transformation from spherical to Cartesian
coordinates we just calculate the Jacobian matrix of the point function with
respect to the spherical coordinates. We can do that with Outer.

sphericalToCartesian[r_, \[Phi]_, \[Theta]_] =
Outer[D[#1, #2] & , p[r, \[Phi], \[Theta]], {r, \[Phi], \[Theta]}]

{{Cos[\[Theta]]*Sin[\[Phi]], r*Cos[\[Theta]]*Cos[\[Phi]],
(-r)*Sin[\[Theta]]*Sin[\[Phi]]}, {Sin[\[Theta]]*Sin[\[Phi]],
r*Cos[\[Phi]]*Sin[\[Theta]], r*Cos[\[Theta]]*Sin[\[Phi]]},
{Cos[\[Phi]], (-r)*Sin[\[Phi]], 0}}

Let's convert the vector at spherical coordinates {1,Pi/2,0} with spherical
components {1,0,0}. We just multiply the matrix times the vector.

sphericalToCartesian[1, Pi/2, 0] . {1, 0, 0}
{1, 0, 0}

If you want to go the other way you have to invert the matrix. And if you
want the transformation matrices to be expressed in Cartesian coordinates it
takes a little work.

This can probably be done more elegantly with a tensor calculus program.

David Park

From: na [mailto:na at na.na.com]
To: mathgroup at smc.vnet.net

Hello,
Is there any built-in command in Mathematica, which converts a vector's
coordinate system say from Cartesian to Spherical, or Spherical to
Cylindrical?  By the way, I know about CoordinatesToCartesian[] and
CoordinatesFromCartesian[] already, and those are for "points" not
"vectors".  I'd like to know if there an equivalent command for VECTORS.