 mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Math (https://www.mersenneforum.org/forumdisplay.php?f=8)
-   -   Finding multiples of a real number that are close to a whole number (https://www.mersenneforum.org/showthread.php?t=22086)

 mickfrancis 2017-02-27 14:39

Finding multiples of a real number that are close to a whole number

Given a real number r, and a small positive value e arbitrarily close to 0, does anyone know of a fast way to find integer multipliers m such that either:[INDENT]{mr} < e[/INDENT]or[INDENT]1 - {mr} < e[/INDENT]
(where {mr} is the fractional part of mr)

Thanks in advance for any help,

Mick.

 fivemack 2017-02-27 15:08

The search term you want is "continued fractions"

 mickfrancis 2017-02-27 15:20

[QUOTE=fivemack;453866]The search term you want is "continued fractions"[/QUOTE]

Thanks for the response. I'm afraid you'll have to forgive my ignorance, but I can't see at the moment how continued fractions help me here - any hints appreciated.

Mick.

 fivemack 2017-02-27 15:33

[QUOTE=mickfrancis;453869]Thanks for the response. I'm afraid you'll have to forgive my ignorance, but I can't see at the moment how continued fractions help me here - any hints appreciated.

Mick.[/QUOTE]

Write R as a continued fraction, compute the convergents, and the denominator of a convergent sufficiently far along the list will be a usable M - roughly, and there are various O(1) factors here which you probably want to look up in Hardy & Wright, if D is the denominator of a continued fraction convergent then DR will be within about 1/D of an integer.

[code]
default(realprecision,500)
p=Pi()
M=contfracpnqn(contfrac(p,21))
M[2,1]*p
[/code]

If you want a worst-case term, there's a nice theorem that phi = (1+sqrt(5))/2 is the hardest number to approximate with continued fractions, and the nth denominator of the continued fraction of phi is the nth Fibonacci number. So if you take your epsilon, and let n be the index of the first Fibonacci number larger than the reciprocal of epsilon, the denominator of the nth continued fraction convergent of R will definitely be a usable multiplier.

 mickfrancis 2017-02-27 15:51

[QUOTE=fivemack;453871]Write R as a continued fraction, compute the convergents, and the denominator of a convergent sufficiently far along the list will be a usable M - roughly, and there are various O(1) factors here which you probably want to look up in Hardy & Wright, if D is the denominator of a continued fraction convergent then DR will be within about 1/D of an integer.

[code]
default(realprecision,500)
p=Pi()
M=contfracpnqn(contfrac(p,21))
M[2,1]*p
[/code]If you want a worst-case term, there's a nice theorem that phi = (1+sqrt(5))/2 is the hardest number to approximate with continued fractions, and the nth denominator of the continued fraction of phi is the nth Fibonacci number. So if you take your epsilon, and let n be the index of the first Fibonacci number larger than the reciprocal of epsilon, the denominator of the nth continued fraction convergent of R will definitely be a usable multiplier.[/QUOTE]
Really helpful - thank you - plenty for me to get my teeth into there!

Regards,

Mick.

 Dr Sardonicus 2017-02-27 16:46

[I]Given a real number r, and a small positive value e arbitrarily close to 0, [/I]

It depends, of course, on [I]how[/I] you are given the real number. A numerical approximation to some prescribed number of decimal or binary digits, would be amenable to conversion to a "simple continued fraction" (an alternative search term). Also pursuant to [B]fivemack[/B]'s mention of the infinite SCF whose partial quotients are all 1, I mention Roth's Theorem which shows that algebraic numbers are "almost always" hard to approximate very well by rational numbers.

It is generally difficult to know [I]both[/I] numerical and SCF representations of a given number. See, however, the following [URL=http://people.math.sfu.ca/~vjungic/tbrown/tom-28.pdf]paper[/URL].

 mickfrancis 2017-02-27 21:42

Changing the question...

Having given some thought to this, I realise that what I really want is a way to find integer values for m such that
[INDENT][TEX]
(ceil(mr))^2- (mr)^2 < (mr)^s

[/TEX]

[/INDENT]where s <= 1. I'm guessing this is a different kettle of fish...[INDENT]

[/INDENT]

 a1call 2017-02-27 21:58

[QUOTE=mickfrancis;453864]Given a real number r, and a small positive value e arbitrarily close to 0, does anyone know of a fast way to find integer multipliers m such that either:[INDENT]{mr} < e[/INDENT]or[INDENT]1 - {mr} < e[/INDENT](where {mr} is the fractional part of mr)

Thanks in advance for any help,

Mick.[/QUOTE]

Can you please clarify with a numeric example.
if
r=0.5
and
e=0.25
How can there be an integer m where
m*0.5<0.25?

 a1call 2017-02-27 22:16

If you are looking for an algebraic equivalence to ceil or floor function, then I can assure you that no such equivalence exists. I wasted years trying to find one, only to realize it is equivalent to a general and complete formula for primes. That means that if such an algebraic function could exist, then it could be used to reduce the series function consisting of floor()s to get a complete prime numbers formula (which would generate [U]all[/U] prime numbers as function of n).

 Dr Sardonicus 2017-02-27 22:27

[QUOTE=mickfrancis;453896]Having given some thought to this, I realise that what I really want is a way to find integer values for m such that
[INDENT][TEX]
(ceil(mr))^2- (mr)^2 < (mr)^s

[/TEX]

[/INDENT]where s <= 1. I'm guessing this is a different kettle of fish...[INDENT]

[/INDENT][/QUOTE]

This would appear to mean something like

| N/m - r| < c/m^(2 - s)

(c = positive constant), which is more easily achievable than having the exponent 2 in the denominator.

There is a notion of "best rational approximations," i.e. fractional approximations which are closer than any fraction with a smaller denominator. These consist of the "intermediate convergents" for the SCF. I know it's somewhere in Chrystal's [U]Textbook of Algebra[/U], but I'm sure something can be found on line.

 science_man_88 2017-02-27 23:34

[QUOTE=mickfrancis;453896]Having given some thought to this, I realise that what I really want is a way to find integer values for m such that
[INDENT][TEX]
(ceil(mr))^2- (mr)^2 < (mr)^s

[/TEX]

[/INDENT]where s <= 1. I'm guessing this is a different kettle of fish...[INDENT]

[/INDENT][/QUOTE]

well the equivalent inequalities depend on a few things if m and r are the same sign then all values are positive ( because a negative times a negative is a positive) if they are different sign then mr is negative and with s<=1 it could be an inequality where you ask if a real value is less than an imaginary or complex number. so if we don't want to ask that question it may be safer to stay with the m values that are of the same sign as r. also if mr were negative then in theory you get -floor(abs(mr)) as an equivalent edit: to ceil

All times are UTC. The time now is 04:15.