When symbolically solving transcendental equations, one should appropriately use Solve
or Reduce
with adequate logical combinations of equations, inequalities, domain specifications, etc. to get desired results. There are limitations for certain types of equations involving transcendental functions, see e.g. Transcendental Roots. Here is an example which doesn't work in Mathematica 9:
Reduce[ Re[Zeta[x]] == 0 && 14 < Im[x] < 15 && Re[x] == 1/2, x]
Namely, it cannot find roots of the real part of Zeta
; nonetheless, we can find symbolic zeros of the Riemann Zeta
function:
Solve[Zeta[x] == 0 && 0 < Im[x] < 25 && Re[x] == 1/2, x]
{{x -> ZetaZero[1]}, {x -> ZetaZero[2]}}
Let's use Reduce
in another way:
Reduce[ Zeta[ 1/2 + I t] == 0 && 0 <= t <= 250, t]
C[1] ∈ Integers && 1 <= C[1] <= 108 && t == -(1/2) I (-1 + 2 ZetaZero[C[1]])
Here, we provide plot of the real and imaginary part of Zeta
on the critical line, in the range 0 < t < 50
:
Plot[ Table[ h[ Zeta[ 1/2 + I t]], {h, {Re, Im}}], {t, 0, 50},
Evaluated -> True, AspectRatio -> 1/4, PlotStyle -> Thick,
Epilog -> {Red, PointSize[0.007], Point[{Im@ZetaZero[#], 0} & /@ Range[10]]},
ImageSize -> 800, PlotLegends -> Placed["Expressions", {Left, Top}]]

The function ZetaZero
is very useful, since one can evaluate its numerical values up to 10^7
-th zero (on the other hand, we know there are infinitely many Zeta
zeros on the critical line), then one should work with e.g. FindRoot
yielding numerical results.
ZetaZero /@ {1, 2, 10^7} // Im // N
{14.1347, 21.022, 4.99238*10^6}
If we are satisfied with numerical values only, we can use FindRoot
to get zeros of the real part of Zeta
between 14
and 15
:
FindRoot[ Re[ Zeta[ 1/2 + I t]], {t, #, 14, 15}]& /@ {14, 14.5}
{{t -> 14.1347}, {t -> 14.5179}}
Zeta[1/2 + I t] /. % // Chop
{0, 0. + 0.31227 I}
Working with FindRoot
, it should be useful to localize approximately starting values with ContourPlot
like e.g. here.
Solve[Zeta[x] == -(1/12) && Abs[x] < 20, x]
. $\endgroup$FindRoot[Re[Zeta[1/2 + I t]], {t, #}] & /@ {14, 14.5}
yields{{t -> 14.1347}, {t -> 14.5179}}
. By the way your question is still far from being clear. $\endgroup$FindRoot[Re[Zeta[1/2 + I t]], {t, #}] & /@ Range[14, 25]
$\endgroup$FindRoot
nonetheless you can get rid of them using appropriate functionality. This gives you a simple approachIm[ZetaZero[#] & /@ Range[3] // N]
. $\endgroup$