Sponsored links: Algebra eBooks
 

Help Index

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

The Maxima on-line user's manual

Algebra Calculator

Search:

Rationalize Calculator

Rationalize

Function: rationalize (<expr>) Convert all double floats and big floats in the Maxima expression <expr> to their exact rational equivalents. If you are not familiar with the binary representation of floating point numbers, you might be surprised that rationalize (0.1) does not equal 1/10. This behavior isnt special to Maxima - the number 1/10 has a repeating, not a terminating, binary representation.

          (%i1) rationalize (0.5);
                                          1
          (%o1)                           -
                                          2
          (%i2) rationalize (0.1);
                                         1
          (%o2)                          --
                                         10
          (%i3) fpprec : 5$
          (%i4) rationalize (0.1b0);
                                       209715
          (%o4)                        -------
                                       2097152
          (%i5) fpprec : 20$
          (%i6) rationalize (0.1b0);
                               236118324143482260685
          (%o6)                ----------------------
                               2361183241434822606848
          (%i7) rationalize (sin (0.1*x + 5.6));
                                        x    28
          (%o7)                     sin(-- + --)
                                        10   5

Example use:

          (%i1) unitfrac(r) := block([uf : [], q],
              if not(ratnump(r)) then
                 error("The input to unitfrac must be a rational number"),
              while r # 0 do (
                  uf : cons(q : 1/ceiling(1/r), uf),
                  r : r - q),
              reverse(uf));
          (%o1) unitfrac(r) := block([uf : [], q],
          if not ratnump(r) then
             error("The input to unitfrac must be a rational number"),
                                            1
          while r # 0 do (uf : cons(q : ----------, uf), r : r - q),
                                                1
                                        ceiling(-)
                                                r
          reverse(uf))
          (%i2) unitfrac (9/10);
                                      1  1  1
          (%o2)                      [-, -, --]
                                      2  3  15
          (%i3) apply ("+", %);
                                         9
          (%o3)                          --
                                         10
          (%i4) unitfrac (-9/10);
                                            1
          (%o4)                       [- 1, --]
                                            10
          (%i5) apply ("+", %);
                                          9
          (%o5)                         - --
                                          10
          (%i6) unitfrac (36/37);
                                  1  1  1  1    1
          (%o6)                  [-, -, -, --, ----]
                                  2  3  8  69  6808
          (%i7) apply ("+", %);
                                         36
          (%o7)                          --
                                         37

(%o1)                                true
(%i2) 

Rationalize Example

Related Examples

rationalize-sqrt

rationalize ((x-1)/(s...

Calculate

rationalize

eq1: (81*x^2 - 16*y^2...

rationalize (eq1);

Calculate

rationalize

rationalize (0.5);

rationalize (0.55);

rationalize (0.56);

Calculate

rationalize

rationalize(0.0625);

Calculate

rationalize

rationalize(7.728);

Calculate

rationalize

rationalize(0.678);

Calculate

rationalize-solve

rationalize(5/(2-2^0....

solve(5/(2-2^0.33333));

Calculate

rationalize

rationalize (0.5);

rationalize (0.55);

Calculate

rationalize

rationalize(0.98);

Calculate

rationalize

rationalize (0.5);

rationalize (0.55);

rationalize (0.56);

Calculate