Error on summation of three numbers

4 visualizaciones (últimos 30 días)
alireza
alireza el 5 de Mzo. de 2014
Respondida: Roger Stafford el 5 de Mzo. de 2014
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
  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
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 Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by