fractions                package:MASS                R Documentation

Rational Approximation

Description:

     Find rational approximations to the components of a real numeric
     object using a standard continued fraction method.

Usage:

     fractions(x, cycles = 10, max.denominator = 2000, ...)

Arguments:

       x: Any object of mode numeric. Missing values are now allowed. 

  cycles: The maximum number of steps to be used in the continued
          fraction approximation process. 

max.denominator: An early termination criterion.  If any partial
          denominator exceeds 'max.denominator' the continued fraction
          stops at that point. 

     ...: arguments passed to or from other methods. 

Details:

     Each component is first expanded in a continued fraction of the
     form

     'x = floor(x) + 1/(p1 + 1/(p2 + ...)))'

     where 'p1', 'p2', ... are positive integers, terminating either at
     'cycles' terms or when a 'pj > max.denominator'.  The continued
     fraction is then re-arranged to retrieve the numerator and
     denominator as integers.

     The numerators and denominators are then combined into a character
     vector that becomes the '"fracs"' attribute and used in printed
     representations.

     Arithmetic operations on '"fractions"' objects have full floating
     point accuracy, but the character representation printed out may
     not.

Value:

     An object of class '"fractions"'.  A structure with '.Data'
     component the same as the input numeric 'x', but with the rational
     approximations held as a character vector attribute, '"fracs"'.
     Arithmetic operations on '"fractions"' objects are possible.

References:

     Venables, W. N. and Ripley, B. D. (2002) _Modern Applied
     Statistics with S._ Fourth Edition. Springer.

See Also:

     'rational'

Examples:

     X <- matrix(runif(25), 5, 5)
     solve(X, X/5)
     ##              [,1]        [,2]       [,3]        [,4]        [,5]
     ##  [1,]  2.0000e-01  3.7199e-17 1.2214e-16  5.7887e-17 -8.7841e-17
     ##  [2,] -1.1473e-16  2.0000e-01 7.0955e-17  2.0300e-17 -1.0566e-16
     ##  [3,]  2.7975e-16  1.3653e-17 2.0000e-01 -1.3397e-16  1.5577e-16
     ##  [4,] -2.9196e-16  2.0412e-17 1.5618e-16  2.0000e-01 -2.1921e-16
     ##  [5,] -3.6476e-17 -3.6430e-17 3.6432e-17  4.7690e-17  2.0000e-01

     fractions(solve(X, X/5))
     ##      [,1] [,2] [,3] [,4] [,5]
     ## [1,] 1/5    0    0    0    0
     ## [2,]   0  1/5    0    0    0
     ## [3,]   0    0  1/5    0    0
     ## [4,]   0    0    0  1/5    0
     ## [5,]   0    0    0    0  1/5

     fractions(solve(X, X/5)) + 1
     ##      [,1] [,2] [,3] [,4] [,5]
     ## [1,] 6/5    1    1    1    1
     ## [2,]   1  6/5    1    1    1
     ## [3,]   1    1  6/5    1    1
     ## [4,]   1    1    1  6/5    1
     ## [5,]   1    1    1    1  6/5

