0
$\begingroup$

When I have an expression in polar coordinates and I substitute the definition of $r$ and $\phi$, I get the corresponding expression in polar coordinates. I would like to go back and obtain the same expression now as a function of $r$ and $\phi$, but the code below doesn't simplify the ArcTan as I would like:

ρ[x_, y_] := Sqrt[x^2 + y^2];
Θ[x_, y_] := ArcTan[x, y];
$Assumptions = r > 0 && r ∈ Reals, ϕ ∈ Reals;
ϕ /. r -> ρ[x, y] /. ϕ -> Θ[x, y]
% /. x -> r Cos[ϕ] /. y -> r Sin[ϕ]
$\endgroup$

2 Answers 2

2
$\begingroup$

First of all, $Assumptions isn't used anywhere in the original code because you're just doing replacements. You have to use a function such as FullSimplify that actually checks the setting of $Assumptions. To decide what functions do this, look for the option Assumptions in the Options of that function.

With that said, here is how to do the inversion:

ρ[x_, y_] := Sqrt[x^2 + y^2];

Θ[x_, y_] := ArcTan[x, y];

$Assumptions = 
  r > 0 && r ∈ Reals && -Pi/2 < ϕ < Pi/2;

ϕ /. r -> ρ[x, y] /. ϕ -> Θ[x, y]

(* ==> ArcTan[x, y] *)

% /. x -> r Cos[ϕ] /. y -> r Sin[ϕ]

(* ==> ArcTan[r Cos[ϕ], r Sin[ϕ]] *)

FullSimplify[%]

(* ==> ϕ *)

The only other thing I had to change is to restrict the angle range in $Assumptions so that the ArcTan can in fact be uniquely inverted.

$\endgroup$
0
$\begingroup$

So you are trying to use coordinate transformation for a function. You can do it in this way. Say you have a function f[x,y] which you transform into g[r,q] and then use the reverse transformation to get back f[x,y].

f[x,y]
g[r_, q_] = f[x, y] /. {x -> r Cos[q], y -> r Sin[q]}
f1[x_, y_] = g[r, q] /. {r -> Sqrt[x^2 + y^2], q -> ArcTan[x, y]} 

f[x, y]

f[r Cos[q], r Sin[q]]

f[x, y]

Is that what you are looking for?

Also notice that I don't use any form for f[x,y]. So it is true for both scalar and vectors.

In your example you get ArcTan[r Cos[ϕ], r Sin[ϕ]] instead of ϕ because ArcTan is bounded within -Pi/2 to Pi/2 but your ϕ doesn't have such bound. When you use it in another expression, it will give you right answer.

Tan[ArcTan[r Cos[ϕ], r Sin[ϕ]]]

Tan[ϕ]

$\endgroup$
3
  • $\begingroup$ I want to transform a symbolic expression and not a specific vector $\endgroup$ Commented Jun 10, 2016 at 13:15
  • $\begingroup$ Thanks, but this still doesn't work in my case, because I do not want to transform a vector but a scalar expression of (x,y) to the corresponding expression as a function of $(r,\phi)$ and back. $\endgroup$ Commented Jun 10, 2016 at 13:52
  • $\begingroup$ Also, it doesn't allow me to convert to polar (or cartesian) coordinate the components of a vector in cartesian coordinates (or polar), seperately. $\endgroup$ Commented Jun 10, 2016 at 13:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.