Wie wird Excel unendlich 1/3? [geschlossen]

0

Wie andere Kalkulationstabellen hat Excel 15 signifikante Stellen an Genauigkeit. Also diese Formel:

=1/3

Gibt dies wirklich zurück:

0,333333333333333

Sie können dies sehen, wenn Sie die Zelle so formatieren, dass mehr als 15 Dezimalstellen angezeigt werden.

Also 1/3 in Excel gibt uns fast 1/3, so nah wie möglich an 15 signifikanten Stellen. "Signifikante Ziffern" ist die Anzahl der Ziffern von der ersten Ziffer ungleich Null bis zur letzten Ziffer ungleich Null, unabhängig davon, wo sich die Dezimalstelle befindet.

Obwohl also 1000 ^ (1/3) 10 ist, lautet diese Formel:

=1000^(0.333333333333333)

Gibt dies zurück:

9.99999999999998

Im Allgemeinen erhalten Sie fast so viele (manchmal genauso viele) Neunen wie die Anzahl der von Ihnen angegebenen Dreien. Bisher wird dies alles unter Berücksichtigung der Einschränkungen von 15 signifikanten Genauigkeitsziffern erwartet.

Aber wenn Sie diese Formel eingeben:

=1000^(1/3)

Sie erhalten GENAU 10. Auch wenn Sie die Zahlenformatierung ändern, um die maximal möglichen 30 Dezimalstellen anzuzeigen, und wenn Sie die Formel auswählen und F9 drücken, um sie in der Formelleiste auszuwerten, wird GENAU 10 zurückgegeben.

Was macht Excel, um genau 10 daraus zu machen? Das "1/3" in der Formel ist nicht wirklich genau 1/3, wenn der Power Operator ("^") es in die Hände bekommt; bis dahin ist es wirklich 0.333333333333333.

AKTUALISIEREN:

Okay, ich glaube, ich weiß, was passiert, damit Excel genau das Ergebnis von 10 erhält, ohne dass eine spezielle Schreibweise erforderlich ist.

Zunächst hätte Excel einen n-ten Wurzel-Algorithmus, und es würde = 1000 ^ (1/3) durch diesen Algorithmus gesendet, um die Kubikwurzel von 1000 zu erhalten.

(FWIW, eine Formel wie = 1000 ^ (2/3) würde in zwei Probleme unterteilt - das Quadrat von 1000 und dann die Kubikwurzel dieses Ergebnisses oder die Kubikwurzel von 1000 und dann das Quadrat dieses Ergebnisses .)

Nach den normalen Bewertungsregeln von Excel würde als Erstes 1/3 zu 0.333333333333333 ausgewertet. Dann würde diese 0,333333333333333 invertiert und an den n-ten Root-Algorithmus gesendet.

Aber was passiert, wenn Excel die Umkehrung von 0,333333333333333 erhält? Wir erhalten genau 3, weil 1 / 0.333333333333333 = 3.000000000000003, und mit den 15 signifikanten Stellen von Excel wird 3.000000000000003 auf 3.0000000000000000 oder genau 3 abgeschnitten.

Daher wird der n-te Wurzel-Algorithmus von Excel aufgefordert, die Kubikwurzel von 1000 zu erhalten. Nicht die Wurzel 3.000000000000003, sondern die exakte Kubikwurzel. Und die Antwort darauf ist natürlich genau 10.

Ich habe mir angesehen, was Excel mit der Umkehrung der Umkehrung aller ganzen Zahlen durch 150 macht. Zuerst habe ich die Umkehrung erhalten, dann Werte kopiert / eingefügt, um sicherzustellen, dass Excel eine spezielle Umkehrung der Umkehrung ausführt, und dann die Umkehrung des Wertes der Umkehrung. Zum Beispiel:

  1. = 1/3
  2. Kopieren Sie die Werte, und fügen Sie sie ein, um den Wert 0,333333333333333 zu erhalten
  3. = 1 / 0,333333333333333
  4. Ergebnis: genau 3.

Alle von ihnen kamen zu ihren genauen ursprünglichen ganzen Zahlen heraus. Keiner kam zu so etwas wie 37.9999999999999 oder 38.0000000000001.

Das scheint zu erklären, warum = 1000 ^ (1/3) genau 3 ergibt. Es ist keine spezielle Behandlung erforderlich. Es ist nur so, dass Excel, wenn es die Umkehrung von 1/3 erhält, um die Kubikwurzel von 1000 zu erhalten, genau 3 erhält. Und dasselbe gilt wahrscheinlich für die meisten oder alle ähnlichen Beispiele.

Andererseits erklärt das nicht, warum = 1000 ^ (0.33333333333333333) 9.99999999999998 statt 10 zurückgibt. Das scheint zu widersprechen, was Excel mit 1 / 0.333333333333333 macht.

Greg Lovern
quelle
3
Ich sehe das praktische Problem nicht in Ihrer Frage. Excel ist eine Tabellenkalkulationsanwendung, kein fortgeschrittenes mathematisches Werkzeug. Wir wissen, dass es Einschränkungen gibt und dass es um die Grenzen herum nicht immer vorhersehbar ist. Zu Ihrem speziellen Beispiel: 15 signifikante Ziffern sind nur für die Anzeige gültig, wahrscheinlich werden für Berechnungen etwas mehr Ziffern verwendet. Da ich jedoch nicht derjenige bin, der Excel programmiert hat, kann ich es nicht genau sagen.
Máté Juhász
4
1000 ^ (1/3) ist das Gleiche wie das Ausdrücken der Kubikwurzel von 1000, also 10. Excel berücksichtigt wahrscheinlich die Regeln für Bruchexponenten und führt keine Berechnung durch, wenn 1/3 im Exponenten interpretiert wird.
BrianC
Ich habe kein einziges Wort der ursprünglichen Frage geändert. Ich habe nur Updates darunter hinzugefügt.
Greg Lovern
@ GregLovern Go lesen Was jeder Informatiker über Gleitkomma-Arithmetik wissen sollte und dann komm zurück, wenn du eine wirklich beantwortbare Frage hast.
DavidPostill

Antworten:

4

Was macht Excel, um genau 10 daraus zu machen?

Excel führt die gleiche Berechnung durch, die durchgeführt wird, wenn POWER (Value, Exponent) verwendet wird, um Ihre zu berechnen =number^exponent Gleichung

Dies kann durch Ausführen von bestätigt werden

  • `= 1000 ^ (1/3) was 10 ist
  • =1000000^(1/3) Das ist 100
  • =1000000^(1/2) Das ist 1000
  • =100^(1/2) das ist 10.

Welche Spiele

  • =POWER(1000,1/3) = 10
  • =POWER(1000000,1/3) = 100
  • =POWER(1000000,1/2) = 1000
  • =POWER(100,1/2) = 10

Ich nahm zufällige Exponenten, 1/5 und 5und verifizierte das Verhalten auch.

  • =10^(1/5) und =POWER(10,1/5) beide kommen raus zu 1.584893192

  • =10^5 and = LEISTUNG (10,5) both come out to 100000`

ich schätze BriainC's Hilfe, um mich in die richtige Richtung zu weisen.

1000 ^ (1/3) ist dasselbe wie die Kubikwurzel von 1000 auszudrücken   10. Excel beachtet wahrscheinlich die Regeln für Bruchexponenten und führt bei der Interpretation von 1/3 in der Formel keine Berechnung durch   Exponent.

Es ist erwähnenswert, dass das Erhöhen eines Wertes zu einem Exponenten von 1/3, berechnet man die Kubikwurzel dieser Zahl in Excel. Erhöhen eines beliebigen Werts auf einen Exponenten von 1/2berechnen Sie die Quadratwurzel dieser Zahl in Excel. Sie können auch die =SQRT(Value) Gleichung, aber das bringt Ihnen identische Ergebnisse wie =POWER(Value,Exponent)

Excel-Kubikwurzel: Die Kubikwurzel von x ist x ^ (1/3). Die Kubikwurzel von A1   ist: = A1 ^ (1/3). Sie können auch die integrierte Arbeitsblattfunktion POWER verwenden:   = LEISTUNG (A1; 1/3). Gehen Sie folgendermaßen vor, um die Kubikwurzel in Excel zu berechnen: Kubikwurzelformel = LEISTUNG (E3,1 / 3). Lassen Sie uns diese Formel überprüfen.   Kubikwurzel von 125.

Würfelwurzelfunktion in Excel

enter image description here

Ich habe 10 Zahlen zwischen 2 und 16 genommen und alle 4 Kombinationen berechnet. Ich habe die SQRT-Spalte hinzugefügt SQRT(2) == POWER(2,1/2) == 2^(1/2) sind Äquivalent Excel-Funktionen.

Ich kann verstehen, dass POWER erkennen würde ... Aber woher weiß es, das zu tun, ohne Millionen von Sondergehäusen   Möglichkeiten?

Es kann jeden Fall genau gleich behandeln. Es wird der Came-Code verwendet, um jeden Wert zu berechnen, der auf einen Exponenten angehoben wird.

Okay, aber woher weiß es, für welche Eingabenummern das gemacht werden soll? Durch   Spezialgehäuse Millionen von Möglichkeiten? Oder wäre es wahrscheinlicher   nach einer Regel oder einem Regelwerk?

Es wird der Came-Code verwendet, um jeden Wert zu berechnen, der auf einen Exponenten angehoben wird.

Was macht POWER, um scheinbar 1/3 als einen wahren Bruchteil zu behandeln? Excel   Sendet Operanden an die CPU, um die Berechnung in Binärform durchzuführen   Nicht zu sagen, dass die CPU die Rechnung mit wahren Brüchen in der Basis macht   10?!?!?

Base 2 und Base 10 werden verwendet, um uns Menschen zu helfen. Eine CPU macht alles binär. Wie eine Exponentenberechnung in x86 konvertiert wird, ist genau definiert.

Ich denke nicht, dass die CPU die Fähigkeit hat, Berechnungen mit dem zu machen   Basis-10-Bruch 1/3, aber wenn ich mich irre, wäre ich sehr daran interessiert   wies auf Informationen darüber.

Der Rechner, den ich vor 20 Jahren benutzt habe, kann Exponentenberechnungen mit Brüchen durchführen. Ich kann Ihnen nicht sagen, was Excel macht genau diese Berechnungen zu machen. Ich kann Ihnen sagen, dass es irgendwann in eine Baugruppenberechnung umgewandelt werden würde, was ein genau definiertes Verhalten wäre.

Die Antwort von Ramhound besagt, dass Excel die Leistung umwandelt   Operator ("^") auf die Power-Funktion

Eigentlich ist es umgekehrt. Eine Potenzfunktion würde in eine Standardexponentenberechnung umgewandelt

Ramhound
quelle
Kommentare sind nicht für eine längere Diskussion gedacht. Dieses Gespräch war zog in den Chat .
DavidPostill