Gary Kenneth Krueger <[EMAIL PROTECTED]> writes:
> >However (as was told on
> >ruby-talk later) there's the
> >problem that for v =
> >a +/- b, then v-v = 0 +/- 2b,
> >unless the system is smart
> >enough to cancel
> >errors where it can, and this
> >is difficult, especially in
> >hairier
> >situations where the
> >cancellations come
> >indirectly. Of course this
> >only
> >really matters if you end up
> >with insanely high error
> >margins.
> Normally in science, you are only interested in an outside error
> estimate, and just need to be mindful when coding mathematical
> functions so as not to introduce unnecessary cancellation errors.
Cancellation is not the only danger -- standard scientific error
propagation techniques (at the undergraduate science lab level)
calculate probabilistic bounds assuming uncorrelated errors.
This can easily get you into trouble with complicated
calculations - mistakes of the form:
a = 10 +/- 1
b = 2 * a = 20 +/- 2
c = a + b = 30 +/- sqrt (2**2 + 1**2) = 30 +/- 2.3
While the right result is 30 +/- 3.
These techniques really are only valid in simple circumstances.
The whole idea of putting error propagation into a language
would be to allow it to be used in complex circumstances....
Regards,
Owen
(Note that two different things are being discussed here - interval
arithmetic is a numerical analysis thing, and quite different than
scientific error propagation.)