Accelerating the pace of engineering and science

• 평가판
• 제품 업데이트

# rat, rats

Rational fraction approximation

## Syntax

[N,D] = rat(X)
[N,D] = rat(X,tol)
rat(X)

## Description

Even though all floating-point numbers are rational numbers, it is sometimes desirable to approximate them by simple rational numbers, which are fractions whose numerator and denominator are small integers. The rat function attempts to do this. Rational approximations are generated by truncating continued fraction expansions. The rats function calls rat, and returns strings.

[N,D] = rat(X) returns arrays N and D so that N./D approximates X to within the default tolerance, 1.e-6*norm(X(:),1).

[N,D] = rat(X,tol) returns N./D approximating X to within tol.

rat(X), with no output arguments, simply displays the continued fraction.

## Examples

Ordinarily, the statement

` s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7`

produces

``` s =
0.7595```

However, with

` format rat`

or with

` rats(s)`

the printed result is

``` s =
319/420```

This is a simple rational number. Its denominator is 420, the least common multiple of the denominators of the terms involved in the original expression. Even though the quantity s is stored internally as a binary floating-point number, the desired rational form can be reconstructed.

To see how the rational approximation is generated, the statement rat(s) produces

` 1 + 1/(-4 + 1/(-6 + 1/(-3 + 1/(-5))))`

And the statement

` [n,d] = rat(s)`

produces

`n = 319, d = 420`

The mathematical quantity π is not a rational number, but the MATLAB® quantity pi that approximates it is a rational number. pi is the ratio of a large integer and 252:

` 14148475504056880/4503599627370496`

However, this is not a simple rational number. The value printed for pi with format rat, or with rats(pi), is

` 355/113`

This approximation was known in Euclid's time. Its decimal representation is

` 3.14159292035398`

and so it agrees with pi to seven significant figures. The statement

` rat(pi)`

produces

` 3 + 1/(7 + 1/(16))`

This shows how the 355/113 was obtained. The less accurate, but more familiar approximation 22/7 is obtained from the first two terms of this continued fraction.