DMUG-Archiv 2005

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

Re: N[expr,n]

hier hat sich in Version 5 still und heimlich einiges geändert.

> bekanntlich sei:
" N[expr] is equivalent to N[expr, MachinePrecision] "

das ist zwar richtig, aber MachinePrecision ist nicht das selbe
wie $MachinePrecision.

In[1]:= N[ -4054053982264 + 864327213163 Sqrt[22] ]

Out[1]= 0.

In[2]:= N[ -4054053982264 + 864327213163 Sqrt[22], MachinePrecision]

Out[2]= 0.

$MachinePrecision (das eigentlich nur noch aus Rückwärtskompatbilität
existiert), ist ganz einfach eine Zahl, und neu ist

        N[ expr, Zahl ]

auf *jeden Fall* eine Rechnung in Software-Arithmetik (variable Genauigkeit),
so dass sogar mit einem Wert kleiner als 15.95 das richtige Resultat heraus
kommt:

In[3]:= N[ -4054053982264 + 864327213163 Sqrt[22], $MachinePrecision]

                            -6
Out[3]= 7.850761519022960 10

In[4]:= N[ -4054053982264 + 864327213163 Sqrt[22], 6]

                  -6
Out[4]= 7.85076 10


Früher wurde N[expr, 6] empfohlen, um die Ausgabe auf 6 Stellen zu
beschränken. Das geht jetzt nicht mehr, denn es führt dazu, das die
Rechnung in Softwarearithmetik durchgeführt wird, also langsamer ist,
als N[expr].

Die Konstante MachinePrecision wird wie andere (Pi, E) auch nicht
automatisch auf eine Zahl reduziert. Sie ist ein Signal an N[], dass
mit Maschinengenauigkeit gerechnet werden soll.

In[9]:= Precision[1.0]

Out[9]= MachinePrecision

In[10]:= Precision[%4]

Out[10]= 6.


Roman Mäder


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

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