[Date Index]
[Thread Index]
[Author Index]
Re: Re: Re: coordinate transformation
*To*: mathgroup at smc.vnet.net
*Subject*: [mg13366] Re: [mg13308] Re: [mg13169] Re: [mg13117] coordinate transformation
*From*: Sean Ross <seanross at worldnet.att.net>
*Date*: Mon, 20 Jul 1998 02:50:19 -0400
*References*: <199807171708.MAA00710@dragonfly.wolfram.com>
*Sender*: owner-wri-mathgroup at wolfram.com
I hope this will shed a little light on the subject.
In[1]:=Needs["Calculus`VectorAnalysis`"]
In[2]:=CoordinatesToCartesian[{r,\[Theta],\[Phi]},Spherical]
Out[2]:={r Cos[\[Phi]] Sin[\[Theta]],r Sin[\[Theta]] Sin[\[Phi]],r
Cos[\[Theta]]}
In[3]:=CoordinatesFromCartesian[{x,y,z},Spherical]
Out[3]:={Sqrt[x^2 + y^2 + z^2], ArcCos[z/Sqrt[x^2 + y^2 + z^2]],
ArcTan[x, y]}
In[4]:=CrossProduct[{x1,y1,z1},{x2,y2,z2}]
Out[4]:={-y2 z1+y1 z2,x2 z1-x1 z2,-x2 y1+x1 y2}
In[5]:=CrossProduct[{r1,\[Theta]1,\[Phi]1},{r2,\[Theta]2,\[Phi]2},Spherical]
Out[5]:={Sqrt[(-r1*r2*Cos[\[Theta]2]*Cos[\[Phi]1]*Sin[\[Theta]1] +
r1*r2*Cos[\[Theta]1]*Cos[\[Phi]2]*Sin[\[Theta]2])^2 +
(r1*r2*Cos[\[Theta]2]*Sin[\[Theta]1]*Sin[\[Phi]1] -
r1*r2*Cos[\[Theta]1]*Sin[\[Theta]2]*Sin[\[Phi]2])^2 +
(-r1*r2*Cos[\[Phi]2]*Sin[\[Theta]1]*Sin[\[Theta]2]*Sin[\[Phi]1] +
r1*r2*Cos[\[Phi]1]*Sin[\[Theta]1]*Sin[\[Theta]2]*Sin[\[Phi]2])^2],
ArcCos[(-r1*r2*Cos[\[Phi]2]*Sin[\[Theta]1]*Sin[\[Theta]2]*Sin[\[Phi]1]
+ r1*r2*Cos[\[Phi]1]*Sin[\[Theta]1]*Sin[\[Theta]2]*Sin[\[Phi]2])/
Sqrt[(-r1*r2*Cos[\[Theta]2]*Cos[\[Phi]1]*Sin[\[Theta]1] +
r1*r2*Cos[\[Theta]1]*Cos[\[Phi]2]*Sin[\[Theta]2])^2 +
(r1*r2*Cos[\[Theta]2]*Sin[\[Theta]1]*Sin[\[Phi]1] -
r1*r2*Cos[\[Theta]1]*Sin[\[Theta]2]*Sin[\[Phi]2])^2 +
(-r1*r2*Cos[\[Phi]2]*Sin[\[Theta]1]*Sin[\[Theta]2]*Sin[\[Phi]1] +
r1*r2*Cos[\[Phi]1]*Sin[\[Theta]1]*Sin[\[Theta]2]*Sin[\[Phi]2])^2]],
ArcTan[r1*r2*Cos[\[Theta]2]*Sin[\[Theta]1]*Sin[\[Phi]1] -
r1*r2*Cos[\[Theta]1]*Sin[\[Theta]2]*Sin[\[Phi]2],
-r1*r2*Cos[\[Theta]2]*Cos[\[Phi]1]*Sin[\[Theta]1] +
r1*r2*Cos[\[Theta]1]*Cos[\[Phi]2]*Sin[\[Theta]2]]}
Looking at the form of the last cross product, it seems clear that
mathematica does not take non-cartesian cross products. What it does
is to convert the vectors involved into cartesian vectors, take the
cartesian cross product, then convert the result into the non cartesian
coordinate system. This is a neat way to avoid a lot of difficulties,
like having to know the coordinate metric, but it will never illustrate
the problems involved. I also doubt its correctness. Here is why:
Take any two cartesian vectors with one end at the origin and the other
at some arbitrary point. We represent them by ordered triplets,
{x1,y1,z1} and {x2,y2,z2}. Lets convert them into spherical
coordinates: {Sqrt[x1^2+y1^2+z2^2],0,0} and
{Sqrt[x2^2+y2^2+z2^2],0,0}. You ought to object at this point, because
my theta and phi components are ZERO and this disagrees with the
transformations given in mathematica. But think for a moment, if my
vectors are centered at the origin, then they can only have a radial
component. It seems as if I have lost some information about the
vectors, but I haven't really. It is hidden in the cartesian
representation of the radial unit vector, which are, {Sqrt[x1^2 + y1^2
+ z1^2],
ArcCos[z1/Sqrt[x1^2 + y1^2 + z1^2]], ArcTan[x1, y1]}
and
{Sqrt[x2^2 + y2^2 + z2^2],
ArcCos[z2/Sqrt[x2^2 + y2^2 + z2^2]], ArcTan[x2, y2]}.
Wow, you say, these are just what mathematica gives me! Yes, the
transformations given in mathematica are for RADIAL VECTORS ONLY. What
about the theta unit vectors or the phi unit vectors? They are not
included, sad to say. Now take the two radial vectors up above and
take their cross product in SPHERICAL coordinates. Since both of them
are centered at the origin, the result will be centered at the origin
as well and the result will also have no theta or phi components. What
mathematica has returned to me in Out[5] is not the r, theta and phi
COMPONENTS of the cross product at all, but the r, theta and phi VALUES
of the cross product vector. It is one of these cases in which there
is nothing wrong with the mathematica output as long as you realize
what it is. The unwary might assume that mathematica was transforming
vector components rather than coordinate points or that the cross
product formula was valid for field vectors rather than length vectors.
Now lets return to our two arbitrary cartesian vectors and say that they
are centered on the point {x3,y3,z3}. Now, when I convert to Spherical
Coordinates, the theta and phi components will, in general, not be zero
and the cross product will also have theta and phi components.
So, if I were to suggest a way to improve the VectorAnalysis package, I
would have an optional argument for the location of the vector in the
CoordinatesToCartesian and CoordinatesFromCartesian functions. I would
also have the functions return the cartesian representation of the
non-cartesian unit vectors as well as the components. In the cross
product function, I would perform true, non-cartesian cross products,
not the convert to cartesian then convert back. I would also emphasize
by warning messages that for anything but radial length vectors, three
pieces of information are not enough. You need six pieces of
information: three vector components and three point coordinates. An
example of this is an electric field vector
E[{r,theta,phi}]={Er,Etheta,Ephi}. To totally specify this vector you
need both the vector components, Er,Etheta,Ephi and you need the point
coordinates, r,theta,phi . In cartesian coordinates, this can be
neglected because the unit vectors are not position dependent.
I would also adopt the standard that the notation of vector={x1,x2,x3}
means that those are the vector COMPONENTS, not the coordinate VALUES
of the point. This is often a point of confusion. The current
vectoranalysis package assumes that we are only talking about
coordinate VALUES, not vector COMPONENTS. The only case in which the
components equal the coordinates are for... you guessed it: length
vectors centered at the origin(radial vectors). This can be a great
snare to the beginner taking E&M because he may want to transform a
field vector in cartesian coordinates to a field vector in spherical.
He naively uses your package and what he really has done is just
transform the values of the point at which the vector exists not its
components, but he has done it incorrectly because he probably would
put in the values of the vector components into the function.
I hope this helps. I am only illustrating broad concepts, not telling
you exactly how to write your programs, nor writing a textbook on the
subject of vector analysis.
Prev by Date:
**Re: Can it be done - easily?**
Next by Date:
**Re: Up N' Down values.**
Previous by thread:
**Re: Re: Re: coordinate transformation**
Next by thread:
**Re: Numerical Determinants**
| |