MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Q: Dickman function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg20909] Q: Dickman function
  • From: fgrieu at micronet.fr (Francois Grieu)
  • Date: Sun, 21 Nov 1999 15:12:52 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

I'm trying to build the Dickman function, defined by

                             /1
F(x)=1  for x>=1     F(x)=1-|   F(t/(1-t))/t dt   for 0<=x<=1
                            /x

(ref: Knuth's TAOCP, vol 2, 4.5.4, p383 in third edition)


After a lot of trial and error, I came up with a tentative
minimal definition in Mathematica:

F[x_]:=F[x,Ceiling[1/x]-1]
F[x_,0]:=1
F[x_,n_]:=F[1/n,n-1]-Integrate[F[t[n]/(1-t[n]),n-1]/t[n],{t[n],x,1/n}]

This does works for x>=1/3 both numericaly and symbolicaly.
However both F[0.3] and F[1/4] give an imaginary component, which
is an 'obvious' nonsense; it's numerical value is vanishingly
small, but the expression of F[x,3] is so complex that even
FullSimplify won't cut it. And it's sooo long when x gets small.

More trial and error leads to

F[x_]:=F[x,Ceiling[1/x]-1]
F[x_,0]:=1
F[x_,1]:=1+Log[x]
F[x_,2]:=1-Pi^2/12+Log[x]+Log[x]^2/2+PolyLog[2,x]
F[x_,n_]:=F[1/n,n-1]-NIntegrate[F[t[n]/(1-t[n]),n-1]/t[n],{t[n],x,1/n}]

Extending the usable range to maybe x>=0.15, but I am afraid I won't
ever get F[0.1] that way.

Any clues ?

  Francois Grieu


  • Prev by Date: Re: Running Mathematica under Linux Red Hat
  • Next by Date: Re: Angular format
  • Previous by thread: nested FindRoot
  • Next by thread: (A)/Periodic convex tilings (or near-tilings) of the plane or (3 space)