help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: a-b+b != a


From: Doug Stewart
Subject: Re: a-b+b != a
Date: Mon, 4 Sep 2017 11:46:33 -0400



On Mon, Sep 4, 2017 at 10:53 AM, stn021 <address@hidden> wrote:
Hi,

this is weird:

r1 = round( 1e3*randn(5) ) / 1e3 ;
r2 = round( 1e3*randn(5) ) / 1e3 ;
r3 = r1 - r2 + r2 ;
not_zero = r1 - r3

not_zero =

   0.0000e+00   0.0000e+00   5.5511e-17   0.0000e+00   1.1102e-16
   5.5511e-17   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00
   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00  -2.0817e-16
  -5.5511e-17   0.0000e+00   0.0000e+00  -1.1102e-16   0.0000e+00
   2.7756e-17   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00

So a-b+b != a

The difference to zero is small, around 1e-17. But iterations can
cause this error to increase.

I use leasqr() and in each iteration the last line is
  retval = retval - someval + someval

With that additional line I get quite different results compared to
the same program without this line even though they should be
identical.

Is there a way to avoid this phenomenon ?

THX
Stefan

_______________________________________________
Help-octave mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/help-octave


try this

r3 = r1+ (- r2 + r2) ;

use brackets.

--
DASCertificate for 206392


reply via email to

[Prev in Thread] Current Thread [Next in Thread]