If you restrict the domain where to look for roots, Reduce
can often find them and will return Root
objects which can be used in exact symbolic calculations. Even better, it guarantees to give you all roots in that domain.
Reduce[1 + 1/2^x + 1/3^x == 0 && Abs[x] < 5, x]
(* x == Root[{1 + 3^#1 + E^(-(Log[2] - Log[3]) #1) &, 0.4543970081950240272783427420109442288880772534469111379406 - 3.5981714939947587422049363529208471165604257466288393398421 I}] ||
x == Root[{1 + 3^#1 + E^(-(Log[2] - Log[3]) #1) &, 0.4543970081950240272783427420110 + 3.5981714939947587422049363529208 I}] *)
When looking for real roots, the typical way to restrict the domain is something similar to 0 < x < 1
. We're looking for complex roots her so I used Abs[x] < 5
.
Related:
To use the FindRoots2D
function from the linked post, you need to break the equation into real and imaginary parts, as follows:
f[z_] := 1 + 1/2^z + 1/3^z
FindRoots2D[{Re@f[x + I y], Im@f[x + I y]}, {x, -5, 5}, {y, -5, 5}]
(* {{0.454397, -3.59817}, {0.454397, 3.59817}} *)