|
Hallo Arnd, Danke für den Hinweis auf $MachineEpsilon. Das hat wirklich geholfen. Gruß, Peter Klamser -----Ursprüngliche Nachricht----- Von: Arnd Roth [mailto:roth@XXXXXXX.de] Gesendet: Mittwoch, 14. März 2001 21:34 An: dmug@XXXXXXX.ch Cc: Klamser, Peter Betreff: Re: ganz einfach, sehr eigenartig => f[h_, dh_] = Floor[N[h/dh]] Hallo Peter, >Aber warum kommt da 1 raus? Man kann diese Rundungsfehler der Hardware-Fliesskommaarithmetik umgehen, z.B. so: neuron% math Mathematica 4.0 for Solaris Copyright 1988-1999 Wolfram Research, Inc. -- Motif graphics initialized -- In[1]:= f[h_, dh_] := Floor[h/dh + $MachineEpsilon] In[2]:= Table[f[h, h 0.5 ], {h, 0, 2, 0.01}] 1 Power::infy: Infinite expression - encountered. 0 Infinity::indet: Indeterminate expression 0 ComplexInfinity encountered. Out[2]= {Indeterminate, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, > 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2} In[3]:= ?$MachineEpsilon $MachineEpsilon gives the smallest machine-precision number which can be added to 1.0 to give a result that is distinguishable from 1.0. Gruß, Arnd |