|
Liebe Mathematica-User, mich interessiert die Intervallarithmetik in Version 3. Insbesondere, ob diese rigoros ist, oder nicht. Einige einfache Beispiele : In[1]:= t=Interval[SetPrecision[1,30]] Out[1]= Interval[{1.00000000000000000000000000000, > 1.00000000000000000000000000000}] In[2]:= IntervalMemberQ[t, 1+10^-20] Out[2]= False (* ok *) In[3]:= IntervalMemberQ[t, 1+10^-50] Out[3]= True (* 1+10^-50 liegt aber nicht im Intervall Out[1]. Ist das eine Frage der Ausbabe in Out[1]? Ich w"urde etwas erwarten in der Art Interval[{0.99999999999999999999999999999, 1.00000000000000000000000000001}] *) Wie ist die Auswertung von Standardfunktionen, z.B. Exp: In[9]:= IntervalMemberQ[Interval[E], 2.718281828459045235360287471352] Out[9]= True (* Das ist falsch, denn E != 2.7182818284590452353602874713526624977572 *) Wie kann ich ein Gleitpunkt-Einschliessungsintervall f"ur E^2 erhalten? In[18]:= Interval[E^2]; In[19]:= N[%,30] Out[19]= Interval[{7.3890560989306502272304274606, > 7.3890560989306502272304274606}] liefert ein einpunktiges Intervall und E liegt dort nicht drin. Ich sch"atze es ist im wesentlichen ein Problem der Ausgabe, da die ausgegebenen Intervallgrenzen wiederum eine gewisse Accuracy haben. (Sind die ausgegebenen Intervallgrenzen also in der Range-Arithmetik zu interpretieren?) Meine Fragen: Kann man nach aussen gerundete Intervalle ausgeben lassen? Wie bekommt man rigorose Einschliessungen f"ur Standardfunktionen? PS: Ist folgender Fehler in Version 2.2 (RS6000) bereits bekannt? ( Man beachte das Vorzeichen von E ) In[38]:= Expand[(-E + 2^z)^4 Interval[1]] == Expand[(+E + 2^z)^4 Interval[1]] Out[38]= True -- Jan-R. Lahmann Jan.Lahmann@XXXXXXX.de |