# Rationalize

Rationalize[x]

converts an approximate number x to a nearby rational with small denominator.

Rationalize[x,dx]

yields the rational number with smallest denominator that lies within dx of x.

# Details • Rationalize[x,dx] works with exact numbers x.
• Rationalize[x] yields x unchanged if there is no rational number close enough to x to satisfy the condition , with chosen to be .
• Rationalize[x,0] converts any inexact number x to rational form. »

# Examples

open allclose all

## Basic Examples(1)

Convert to a rational number:

## Scope(5)

Find rational approximations to within a given tolerance:

Rationalize works with exact numbers:

Rationalize all numbers in an expression:

No rational number is by default considered "close enough" to N[Pi]:

Force a rational approximation to be found:

## Applications(3)

Successive rational approximations to :

Plot the error in progressively better rational approximations to :

Plot the error in progressively better approximations to :

Create a polynomial with approximate numerical coefficients:

Find a rough approximation involving only rational numbers:

Factor the result:

## Properties & Relations(3)

If Rationalize returns a rational number , then :

When Rationalize[x] returns x unchanged, there is no rational number satisfying this:

Get the rational approximations with smallest denominator error dx through machine precision:

The residual of the inequality is positive for all of these rational approximations:

SetPrecision[x,] and Rationalize[x,0] both give rational approximations for real x:

Rationalize[x,0] gives a rational that is equivalent to x up to the precision of x:

SetPrecision[x,] gets a rational directly from the bitwise representation of x:

Rationalize and RootApproximant both give exact quantities approximating real x:

gives an algebraic number equivalent to x up to the precision of x:

Rationalize[x,0] gives a rational number equivalent to x up to the precision of x: