Dickman function

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
File:Mplwp Dickman function log.svg
The Dickman–de Bruijn function ρ(u) plotted on a logarithmic scale. The horizontal axis is the argument u, and the vertical axis is the value of the function. The graph nearly makes a downward line on the logarithmic scale, demonstrating that the logarithm of the function is quasilinear.

In analytic number theory, the Dickman function or Dickman–de Bruijn function ρ is a special function used to estimate the proportion of smooth numbers up to a given bound. It was first studied by actuary Karl Dickman, who defined it in his only mathematical publication.[1] It was later studied by the Dutch mathematician Nicolaas Govert de Bruijn.[2][3]

Definition

[edit | edit source]

The Dickman–de Bruijn function ρ(u) is a continuous function that satisfies the delay differential equation

uρ(u)+ρ(u1)=0

with initial conditions ρ(u)=1 for 0 ≤ u ≤ 1.

Properties

[edit | edit source]

Dickman proved that, when a is fixed, we have

Ψ(x,x1/a)xρ(a)

where Ψ(x,y) is the number of y-smooth (or y-friable) integers below x. Equivalently, the number of B-smooth numbers less than N is about Ψ(N,B)Nρ(logNlogB).

Ramaswami later gave a rigorous proof that for fixed a, Ψ(x,x1/a) was asymptotic to xρ(a), with the error bound

Ψ(x,x1/a)=xρ(a)+O(x/logx)

in big O notation.[4]

Knuth gives a proof for a narrowed bound:

Ψ(x,x1/a)=xρ(a)+(1γ)ρ(a1)(x/logx)+O(x/(logx)2)

where γ is Euler's constant.[5]: 98 

Applications

[edit | edit source]
File:Dickman prob factor size.svg
The Dickman–de Bruijn used to calculate the probability that the largest and 2nd largest factor of x is less than x^a

The main purpose of the Dickman–de Bruijn function is to estimate the frequency of smooth numbers at a given size. This can be used to optimize various number-theoretical algorithms such as P–1 factoring and can be useful of its own right.[5]

It can be shown that[6]

Ψ(x,y)=xuO(u)

which is related to the estimate ρ(u)uu below.

The Golomb–Dickman constant has an alternate definition in terms of the Dickman–de Bruijn function.

Estimation

[edit | edit source]

A first approximation might be ρ(u)uu. A better estimate is[7]

ρ(u)1ξ2πuexp(uξ+Ei(ξ))

where Ei is the exponential integral and ξ is the positive root of

eξ1=uξ.

A simple upper bound is ρ(x)1/x!.

u ρ(u)
1 1
2 3.0685282×10−1
3 4.8608388×10−2
4 4.9109256×10−3
5 3.5472470×10−4
6 1.9649696×10−5
7 8.7456700×10−7
8 3.2320693×10−8
9 1.0162483×10−9
10 2.7701718×10−11

Computation

[edit | edit source]

For each interval [n − 1, n] with n an integer, there is an analytic function ρn such that ρn(u)=ρ(u). For 0 ≤ u ≤ 1, ρ(u)=1. For 1 ≤ u ≤ 2, ρ(u)=1logu. For 2 ≤ u ≤ 3,

ρ(u)=1(1log(u1))log(u)+Li2(1u)+π212.

with Li2 the dilogarithm. Other ρn can be calculated using infinite series.[8]

An alternate method is computing lower and upper bounds with the trapezoidal rule;[7] a mesh of progressively finer sizes allows for arbitrary accuracy. For high precision calculations (hundreds of digits), a recursive series expansion about the midpoints of the intervals is superior.[9] Values for u ≤ 7 can be usefully computed via numerical integration in ordinary double-precision floating-point.[5]: 99 

Extension

[edit | edit source]

Friedlander defines a two-dimensional analog σ(u,v) of ρ(u).[10] This function is used to estimate a function Ψ(x,y,z) similar to de Bruijn's, but counting the number of y-smooth integers with at most one prime factor greater than z. Then

Ψ(x,x1/a,x1/b)xσ(b,a).

This class of numbers may be encountered in the two-stage variant of P-1 factoring. However, Kruppa's estimate of the probability of finding a factor by P-1 does not make use of this result.[5]: 100 

See also

[edit | edit source]

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). Dickman's paper is difficult to access; for alternatives, see nt.number theory - Reference request: Dickman, On the frequency of numbers containing prime factors.
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). – Work describes algorithms that Kruppa had contributed to GMP-ECM and other factoring programs. Some chapters have been published elsewhere.
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

Further reading

[edit | edit source]
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).