# Trouble with output of Reduce as a root object for a 3d Plot

I am trying to find the value of $$r_0$$ using $$L^2=\frac{{r_0}^3 f'({r_0})}{2 f({r_0})-{r_0} f'({r_0})}$$ and making a 3d plot with the help of the code given below:

$Assumptions = Thread[{l, L, Q, r0, rp} > 0]; f[r_] := 1 - (2 M)/r + Q^2/r^2 + r^2/l^2; M = rp/2 (1 + Q^2/rp^2 + rp^2/l^2); Veff[r_] = f[r] (L^2/r^2 + 1) eqn = L^2 == (r0^3 f'[r0])/(2 f[r0] - r0 f'[r0]) // Simplify; sol = Reduce[eqn, r0][[2, 2, 1]] // ToRules; \[Lambda][Q_, rp_] = Block[{l = 1, L = 20}, 1/2 Sqrt[(r0 f'[r0] - 2 f[r0]) Veff''[r0]] /. sol] // Simplify; Plot3D[Log[100, (\[Lambda][Q, rp] + 1)], {Q, 0, 1.2}, {rp, 0, 1}]  which gives me root objects as output instead of algebraic expressions. I tried ToRadicalsas discussed in other related answers but it didn't work for me. The resulting 3d plot is also blank. How to solve this problem? Reference paper (page 8) • The Root objects are roots of 6th order polynomials, where no general solution in terms of radicals exists Sep 6, 2022 at 14:34 • Thanks for the clarification, but then how can I express$r_0$in terms of$L$as stated in the reference paper? Is there any possibility to do that? Sep 6, 2022 at 14:41 • In the paper they say, just above (3.10), that (3.9) "can be used to express$r_0$in terms of$L$", but they don't give any expression or even imply it's analytic in terms of radicals ;-) Sep 6, 2022 at 14:52 • @HansOlo that's what troubles me. Even if I use the root object as input, I don't get the desired 3D plot as given in Figure 6, for the massive particles, instead I get a blank plot. Sep 6, 2022 at 15:00 • All of your variables have positive values. This knowledge should be shared with Mathematica. By using $Assumptions = Thread[{l, L, Q, r0, rp} > 0]; the assumptions will automatically be available to any function that uses the option Assumptions. After defining $Assumptions, simplify the equation, eqn = L^2 == (r0^3 f'[r0])/(2 f[r0]-r0 f'[r0])//Simplify;If you are having trouble plotting, show the code that you used for the plot. Sep 6, 2022 at 15:37 ## 1 Answer Clear["Global*"]$Assumptions = Thread[{l, L, Q, r0, rp} > 0];

f[r_] := 1 - (2 M)/r + Q^2/r^2 + r^2/l^2;
M = rp/2 (1 + Q^2/rp^2 + rp^2/l^2);
Veff[r_] = f[r] (L^2/r^2 + 1);
eqn = L^2 == (r0^3 f'[r0])/(2 f[r0] - r0 f'[r0]) //
Simplify;

sol = {Reduce[eqn, r0] // Simplify // ToRules}[[2 ;; 3]];

λ[Q_, rp_] = Block[{l = 1, L = 20},
1/2 Sqrt[(r0 f'[r0] - 2 f[r0]) Veff''[r0]] /.
sol] // Simplify;

Column[
Plot3D[Evaluate@Log[100, (# + 1)],
{Q, 0, 6/5}, {rp, 0, 1},
PlotPoints -> 60,
MaxRecursion -> 3,
ClippingStyle -> None,
WorkingPrecision -> 15,
AxesLabel ->
{Q, rp,
Rotate[HoldForm@Log[100, λ[Q, rp] + 1], 90 Degree]},
ImageSize -> 480] & /@
λ[Q, rp]]
` • Thank you for the illuminating answer. It helped me getting started. The plot is very close to the Figure 6 on page 8 of the reference paper. There are minor differences, which maybe due to the difference in the plot range. Sep 6, 2022 at 18:43