maths.freeNumerical Methods › Floating point and error

Floating point and error

Why 0.1 + 0.2 ≠ 0.3 on a computer, and how error propagates.

Computers store numbers in binary with ~16 significant digits; 0.1 is not representable exactly. Round-off accumulates, and subtracting nearly equal numbers destroys digits (cancellation). Picture it: 255 in binary is 11111111 — and 0.1 in binary never terminates. Think it: a stable algorithm keeps error growth linear; conditioning is a property of the problem, stability of the method.

Apstrādāts piemērs: 0.1 + 0.2

Evaluate 0.1 + 0.2

0.3

Solis pēc kārtas

  1. 0.3 = \frac{3}{10}

    Add: 0.1 + 0.2 = 3/10.

  2. \frac{3}{10} = 0.3

    Simplify.

Atbildēt uz šo jautājumu
0.3

Symbols used here

\approx
approximately equal
Equal to the precision shown, not exactly.
f'(x),\ \frac{dy}{dx}
derivative
Instantaneous rate of change; slope of the graph.
\int f(x)\,dx,\ \int_a^b
integral
Antiderivative (indefinite) or signed area from a to b (definite).
O(n^2),\ \Theta,\ \Omega
big-O notation
Grows no faster than n² (up to a constant), for large n.
x_{n+1} = x_n - \frac{f(x_n)}{f\'(x_n)}
Newton iteration
The next approximation follows the tangent to the axis.

How to: Floating point and error

  1. Add: 0.1 + 0.2 = 3/10.
  2. Simplify.

Questions people ask

Why not just solve exactly?

Most equations have no closed-form solution at all, and many that do are unusable in practice. A numerical method delivers as many correct digits as you need, and a good one tells you how many that is.

Why can Newton's method fail?

If it starts where the tangent is nearly flat it shoots far away; near a repeated root it slows to a crawl; and with several roots it may land on the wrong one. A bracketing method like bisection is slower but cannot fail.

Izmēģiniet savu

Vairāk Numerical Methods