MATLAB Answers


Does logint function work well? (for PNT)

Asked by Notae
on 13 Oct 2018 at 9:45
Latest activity Edited by David Goodmanson about 1 hour ago

On the 'Prime Obsession' book, 20 to the power 1/2 + 14.134725i is −0.302303 − 4.46191i. Take the logarithmic integral—the Li function—of that to get the answer −0.105384 + 3.14749i.

I tried as belows, but failed.

>> a=20^(1/2+14.134725i)
a =
  -0.3023 - 4.4619i % OK
>> logint(a)-logint(2)
ans =
   0.9528 - 3.9138i % Wrong


You are right. logint integral from 0 to x. Li(x) = int(1/ln(t)dt from 0 to x or from 2 to x => It's a minor problems. The result of The Book(page 340) and mine is very different. I used logint(x^a); a is first roots of zeta function, and is about 1/2+14.134725i). logint( ) works well. I tested as integral(@(x)1./log(x), 2, x)+logint(2) == logint(x). But the book cannot be wrong, the author did many trials with the Mathematica(I don't have and use).

If you go to WolframAlpha and evaluate the expression

Li(20^(1/2+14.134725i)) - Li(2)

you get the answer

0.952805 - 3.91384i

which is what you say that MATLAB also gives. Therefore, I think the problem is not with MATLAB.

Maybe you could post more of what it says in the book you mention. Maybe there is some other part you are missing.

Thank you for your efforts. I have tired to roughly understand the prime number theory and Riemann zeta function(and hypothesis). For the final error complement, all sum of Li(x^zeros of zeta function) is essential. But the number(s) is too big. With psi function, I did well, all sum of x^p/p is necessary(p is rho, zeros of zeta function)

Sign in to comment.

1 Answer

Answer by David Goodmanson about 3 hours ago
Edited by David Goodmanson about 1 hour ago

Hi Notae,

The reason for this is something that Derbyshire relegated to a footnote several pages before (p. 335, 128). If you look at the logarithmic integral, its primary definition is

Li(z) = Ei(log(z))

(Abramowitz & Stegun 5.1.3) where Ei is a particular exponential integral which Matlab does have, although that fact is not so obvious and you need the symbolic toolbox. However, there is a 2pi ambiguity when taking the log, since for any integer n, log(z) and log(z)+2*pi*i*n are equally valid answers. That means that Ei(logz)) depends on n and you have to pin down the actual angle.

If z = Ae^(i*b) where b is restricted to the range -pi<b<=pi in the first place, then Li(z) and Ei(log(z)) give the same result.

b = logint(2+i)
c = ei(log(2+i))
b = 1.4113 + 1.2247i
c = 1.4113 + 1.2247i

In this case, though,

a = 20^(.5+14.134725i)

and you have to keep track of the number of times you go around the circle so as to remove ambiguity.

%  a = 20^(.5+14.134725i)
loga = log(20)*(.5+14.134725i)
  loga = 1.4979 +42.3439i       % large angle, no 2pi ambiguity
format long
  ans = -0.105384042414102 + 3.147487521958689i

as advertised. That's what he did in footnote 138.

Ei(logz)) can distinguish how many times you go around the circle, but Li(z) as defined on p.114 (and generalized so that the path of integration is a straight line from 0 to complex number z) cannot. His statement on p. 340 that he used the Li function is highly misleading, as you found out.


Sign in to comment.