Round-off error?
- To: mathgroup at smc.vnet.net
 - Subject: [mg131931] Round-off error?
 - From: D Yong <darrylyong at gmail.com>
 - Date: Wed, 30 Oct 2013 23:47:15 -0400 (EDT)
 - Delivered-to: l-mathgroup@mail-archive0.wolfram.com
 - Delivered-to: l-mathgroup@wolfram.com
 - Delivered-to: mathgroup-outx@smc.vnet.net
 - Delivered-to: mathgroup-newsendx@smc.vnet.net
 
Hi everyone,
The following lines of code are stumping me.
ClearAll[y]
dt = 0.15;
Do[y[i*dt] = "hi there", {i, 0, 20}]
Table[{i, y[(i + 1)*dt], y[i*dt + dt]}, {i, 0, 19}]
Here is the output:
0	hi there	hi there
1	hi there	hi there
2	hi there	hi there
3	hi there	hi there
4	hi there	hi there
5	hi there	y(0.9)
6	hi there	y(1.05)
7	hi there	hi there
8	hi there	hi there
9	hi there	hi there
10	hi there	hi there
11	hi there	hi there
12	hi there	y(1.95)
13	hi there	hi there
14	hi there	hi there
15	hi there	hi there
16	hi there	hi there
17	hi there	hi there
18	hi there	y(2.85)
19	hi there	hi there  
It seems that y[i*dt+dt] does not match y[(i+1)*dt], perhaps due to numerical round-off?  If you switch to dt=15/100, the problem goes away.  You might also try different values for dt to see what happens.
If it is numerical round-off, then why does this evaluate to true?
6*.15 == 5*.15 + .15
True
Thanks in advance for your input!
Darryl