MathGroup Archive 2008

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

Search the Archive

Re: smallest fraction

  • To: mathgroup at smc.vnet.net
  • Subject: [mg86804] Re: [mg86771] smallest fraction
  • From: danl at wolfram.com
  • Date: Fri, 21 Mar 2008 01:55:29 -0500 (EST)
  • References: <200803200757.CAA29500@smc.vnet.net>

> hi
>
> suppose that we have an interval  I belong to [0,1]
>
> I want to know how to calculate a fraction p/q
> belong to I and p+q is the smallest possible

One method is to use Minimize over integers, setting up appropriate
bounding constraints.

minFraction[lo_Rational, hi_Rational] /; 0 < lo < hi :=
 Minimize[{p + q, {Denominator[lo]*p - Numerator[lo]*q >= 0,
    Denominator[hi]*p - Numerator[hi]*q <= 0, p >= 1, q >= 1}}, {p,
   q}, Integers]

For example, we'll work with the interval from 2/7 to 4/9 inclusive.

In[11]:= minFraction[2/7, 4/9]
Out[11]= {4, {p -> 1, q -> 3}}

If you want to enforce that the interval be strictly inside (0,1) you can
have constraint q>=2. More generally you might try to strengthen
constraints based on the input, should speed become an issue.

Daniel Lichtblau
Wolfram Research




  • Prev by Date: Re: Saving Packages
  • Next by Date: Re: floating point issue
  • Previous by thread: smallest fraction
  • Next by thread: Re: Re: smallest fraction