Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

This seems to be a quite a simple problem but I cannot make it work.
I am trying to find all values within a given range for which the real part of the Zeta function vanishes on the line: $\;z=\frac{1}{2} + i\;y$.

Given the following plot:

Plot[{ Re[ Zeta[ 1/2 + I t]]}, {t, 14, 14.6}]

enter image description here

I would like to get the values: $14.13...\;, 14.5....$.

share|improve this question
    
Closely related Why do these two different zetas produce the same value?. You can use Solve[Zeta[x] == -(1/12) && Abs[x] < 20, x]. –  Artes Oct 23 '13 at 9:12
1  
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. –  Artes Oct 23 '13 at 9:27
    
@ Artes - thank you - this is what I was after! –  martin Oct 23 '13 at 9:31
1  
FindRoot[Re[Zeta[1/2 + I t]], {t, #}] & /@ Range[14, 25] –  Artes Oct 23 '13 at 9:37
1  
We find numericall solutions with FindRoot nonetheless you can get rid of them using appropriate functionality. This gives you a simple approach Im[ZetaZero[#] & /@ Range[3] // N]. –  Artes Oct 23 '13 at 9:56

1 Answer 1

up vote 9 down vote accepted

Solving symbolically 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}]]

enter image description here

The function ZetaZero is very useful, 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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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