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. 
The search term you want is "continued fractions"

[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. 
[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 worstcase 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=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 worstcase 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. 
[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/tom28.pdf]paper[/URL]. 
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] 
[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? 
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).

[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. 
[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 12:25. 
Powered by vBulletin® Version 3.8.11
Copyright ©2000  2022, Jelsoft Enterprises Ltd.