rational                package:MASS                R Documentation

_R_a_t_i_o_n_a_l _A_p_p_r_o_x_i_m_a_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

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

_U_s_a_g_e:

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

_A_r_g_u_m_e_n_t_s:

       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. 

_D_e_t_a_i_l_s:

     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 and the ratio returned as the value.

_V_a_l_u_e:

     A numeric object with the same attributes as `x' but with entries
     rational approximations to the values.  This effectively rounds
     relative to the size of the object and replaces very small entries
     by zero.

_S_e_e _A_l_s_o:

     `fractions'

_E_x_a_m_p_l_e_s:

     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

     ## rational(solve(X, X/5))
     ##      [,1] [,2] [,3] [,4] [,5] 
     ## [1,]  0.2  0.0  0.0  0.0  0.0
     ## [2,]  0.0  0.2  0.0  0.0  0.0
     ## [3,]  0.0  0.0  0.2  0.0  0.0
     ## [4,]  0.0  0.0  0.0  0.2  0.0
     ## [5,]  0.0  0.0  0.0  0.0  0.2

