I made a few small modifications. I did not check which, if any, make a difference to the outcome.
(1) I made all numbers exact. This could be an issue, for example, in "symbolic" handling of square roots.
(2) I converted the equations to expressions.
(3) I did not define x
and y
to be functions of r
and theta
. I expect that this makes the reverse solving problem easier. In particular we can now solve for those rather than for the {r,theta}
pair.
Ro = 2;
Ri = 1;
\[Rho] = 2;
\[Alpha] = -1/4;
\[Beta] = 0;
\[Lambda] = 7/4;
exprs = {-xd + (Ri*x)/(x^2 + y^2)^(1/2) + ((Ro - Ri)/Ro)*x,
-yd + (Ri*y)/(x^2 + y^2)^(1/2) + ((Ro - Ri)/Ro)*y};
Timing[solns = Simplify[Solve[exprs == 0, {x, y}]]]
(* Out[156]= {0.546003, {{x -> (
2 (xd^3 + xd yd^2 - Sqrt[xd^2 (xd^2 + yd^2)]))/(xd^2 + yd^2),
y -> (2 yd (xd^3 + xd yd^2 - Sqrt[xd^2 (xd^2 + yd^2)]))/(
xd (xd^2 + yd^2))}, {x -> (
2 (xd^3 + xd yd^2 + Sqrt[xd^2 (xd^2 + yd^2)]))/(xd^2 + yd^2),
y -> (2 yd (xd^3 + xd yd^2 + Sqrt[xd^2 (xd^2 + yd^2)]))/(
xd (xd^2 + yd^2))}}} *)
It might be overwhelming in terms of complexity to do a full symbolic solution of the original pair of equations. Specializing the parameters makes it viable. So you might want to consider having a function that just inverts when given specific values of those parameters.