Error on summation of three numbers

Hi, When we used this commands on commands windows of Matlab 2013a, we found a problem and we couldn't understand why that happened.
>> a=4.2; b=0.8; c=5;
>> a+b-c
ans = 0
>> a-c+b
ans = 2.2204e-16
>> b-c+a
ans = 0
The question is why on the second step (a-c+b) Matlab reached a number except zero! and how we can be sure that doesn't happen anymore?!

 Respuesta aceptada

A Jenkins
A Jenkins el 5 de Mzo. de 2014

0 votos

2 comentarios

alireza
alireza el 5 de Mzo. de 2014
Why? any body knows?
Jos (10584)
Jos (10584) el 5 de Mzo. de 2014
follow the link in A Jenkins' answer …

Iniciar sesión para comentar.

Más respuestas (1)

Roger Stafford
Roger Stafford el 5 de Mzo. de 2014

1 voto

To give you a very brief answer, your computer is using a binary representation of floating point numbers and cannot therefore exactly represent 4.2 and .8 . The resulting round-off errors produce the tiny difference you see here. In other words, round-off errors are causing the addition operation to not be strictly associative. It's the same difficulty a decimal calculator would have adding fractions like 1/3, 1/7, etc. It cannot represent them exactly and therefore makes tiny errors with them.

Categorías

Más información sobre Get Started with MATLAB en Centro de ayuda y File Exchange.

Preguntada:

el 5 de Mzo. de 2014

Respondida:

el 5 de Mzo. de 2014

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by