DMUG-Archiv 2003

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

RE: Aua, numerische Ungenauigkeit ??

>-----Original Message-----
>From: Rolf Mertig [mailto:rolf@XXXXXXX.com]
>Sent: Thursday, May 29, 2003 1:56 PM
>To: Udo und Susanne Krause; Winfried Bilgic
>Cc: dmug@XXXXXXX.ch
>Subject: Re: Aua, numerische Ungenauigkeit ??
>
>
[...]
>
>Weiss jemand warum
>N[0] zwar (in 4.2)  0.  ist, aber
>N[0,100]   die exakte  0  ??
>
>Rolf Mertig
>
[...]


Warum-fragen sind ein Problem, 
aber man mag sich dies hier anschauen:
 
 
In[1]:= Through[{Accuracy, Precision}[N[0], Round -> False]]
Out[1]= {307.653, 0.}

In[2]:= Through[{Accuracy, Precision}[N[0, 17], Round -> False]]
Out[2]= {\[Infinity], \[Infinity]}

In[3]:= Thread[InputForm[{N[0], N[0, 17]}, NumberMarks -> True]]
Out[3]= {0.`, 0}
 
In[4]:= MachineNumberQ /@ {N[0], N[0, 17]}
Out[4]= {True, False}

In[5]:= Log[10, {$MinMachineNumber, $MaxMachineNumber}]
Out[5]= {-307.653, 308.255}
 
Out[4] ist zwingend: immerhin wird N[0] zu einer MachineNumber und man
sollte sich klar sein, was das für Folgen in den Berechnungen hat.

Out[3] ist eine Konvention. 

Die exacte 0 für ArbitrayPrecision Numbers zu erhalten, erscheint mir
vernünftig. Die Begründung kann natürlich nur in der vom Wolfram, Inc.
implementierten (Software)-Arithmetik gegeben werden.

Die Werte für Accuracy und Precision für N[0], scheinen (mir) pragmatisch
nützliche Definitionen zu sein im Kontext von N für kompliziertere
(vielleicht auch nur teilweise evaluierte) Ausdrücke, bzw. zur Evaluierung
selbst z.B. in speziellen Funktionen.


Mehr vorhersehbar sind kleine Zahlen:

In[6]:= Through[{Accuracy, Precision}[N[10^-100], Round -> False]]
Out[6]= {115.955, 15.9546}

In[7]:= Log[10, 2/$MachineEpsilon]
Out[7]= 15.9546

In[8]:= Through[{Accuracy, Precision}[N[10^-100, 17], Round -> False]]
Out[8]= {117., 17.}

In[9]:= Thread[InputForm[{N[10^-100], N[10^-100, 17]}, NumberMarks -> True]]
Out[9]=
{1.`*^-100, 1.0000000000000000000000000001454969`17*^-100}

In[10]:= MachineNumberQ /@ {N[10^-100], N[10^-100, 17]}
Out[10]= {True, False}


--
Hartmut Wolf


Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html