Search code examples
wolfram-mathematicacoordinate-transformationspherical-coordinate

Mathematica transformation rules with trig functions


I'm an occasional Mathematica user and I am trying to transform an expression from spherical to Cartesian coordinates.

My function is defined as:

g[theta_, phi_] := Cos[phi](Sin[theta])^2 Sin[phi]

I'm hoping to transform that function using the following rules:

Sin[theta]Sin[phi] -> x
Cos[theta]-> y
Sin[theta]Cos[phi]-> z

in order to get the result:

zx

Here is the code I'm using to do that:

g[theta, phi] //. {Sin[theta]Sin[phi] -> x, Cos[theta] -> y, Sin[theta] Cos[phi] -> z}

And the result I get is:

Cos[phi] Sin[phi] Sin[theta]^2

So no transformation occurred.

Is there a function or an option I could add to help Mathematica figure out that the transformation is possible? Thanks!


Solution

  • Perhaps this will be sufficient

    Assuming[Sin[theta]Sin[phi]==x&&Cos[theta]==y&&Sin[theta]Cos[phi]==z,
      Simplify[Cos[phi]Sin[theta]^2 Sin[phi]]]
    

    which instantly returns

    x z
    

    That doesn't show you the steps or rules it used to arrive at that result, but because it considered x z to be "simpler" than your trig expression the evaluation process went in that direction.

    There is a slightly more compact way of doing the same thing, if that matters. Simplify can accept a second argument which are the things which are assumed to be true during the process of simplification. Thus

    Simplify[Cos[phi]Sin[theta]^2 Sin[phi],
      Sin[theta]Sin[phi]==x&&Cos[theta]==y&&Sin[theta]Cos[phi]==z]
    

    will give you exactly the same result