Ah, so it's more or less what you would expect. It's just like if you
were to subtract the two numbers on paper. In other words, you have to
think about lining up the decimal point. If you have 100 - 1.002e-13,
you would have

  100.0000000000000000
- 000.0000000000001002

except at the end, you can only have say 15 digits after the first
nonzero digit, but here the first nonzero digit would still be on the
order of 100 (actually in the tens place), so by the time you get to
15 you lose the precision of the 2.

Of course, this all actually happens in base 2, but other than that
it's the same idea.

Am I correct?

Aaron Meurer


On Fri, Mar 21, 2014 at 10:52 PM, Ondřej Čertík <[email protected]> wrote:
> On Fri, Mar 21, 2014 at 7:18 PM, Aaron Meurer <[email protected]> wrote:
>> Is this an issue with any subtraction of similar magnitude, or only if
>> it changes the exponent of the number (i.e., it gets closer to 0)? In
>> other words, when you say "magnitude", do you mean "value", or "order
>> of magnitude (log2(x))"?
>
> Roughly speaking, if you have two numbers x*10^a and y*10^b, where 1
> <= x, y <= 10, then when you subtract them,
> you roughly get only |a-b| correct significant digits. So if a=b, you
> get around 1 significant digit. If a = 1, b = -16, then you retain all
> 16 significant digits. I hope I wrote it up correctly.
>
> http://en.wikipedia.org/wiki/Loss_of_significance
>
> Ondrej
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sympy.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/CADDwiVD2xp-JEPCBZGG-OL1hbzmu_nGJ%2BS9t4tvQpqdySffP7Q%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6Ly4gwj6-MiA9sipbTrwZqAx0FbRe6f_yR%2B%3D6TOHb6peg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to