rational {MASS} | R Documentation

## Rational Approximation

### Description

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

### Usage

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

### Value

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.

### See Also

`fractions`

### Examples

    X <- matrix(runif(25), 5, 5)
    zapsmall(solve(X, X/5)) # print near-zeroes as zero
    rational(solve(X, X/5))

[Package MASS version 7.3-51.3 Index]