Grenzen von Computerzahlen und Runden
Verfasst: Sonntag 3. November 2019, 11:04
Hey Leute,
ich bin heute mal auf die witzige Idee gekommen, nach der kleinsten Computerzahl zu schauen, die mir Python anbietet. Dafür habe ich folgenden Code genommen:
Interessanterweise kommt dabei folgendes Ergebnis heraus:
First minimum: 5e-324 Steps: 1074
Second minimum: 1.0000000000000002 2.220446049250313e-16 Steps: 52
Was mir auffällt, wenn ich mich immer weiter der Null annähere, dann habe ich eine Genauigkeit von 5e-324. Wenn ich dasselbe Prinzip aber mit plus 1 anwende, dann verringert sich die Genauigkeit auf "nur" 16 Nachkommastellen.
Woran liegt das? Ich habe mir diesen Wikipedia Artikel angelesen, aber bin daraus irgendwie nicht ganz schlau geworden. Und gibt es eine Möglichkeit in Python die Genauigkeit einer Rechnung forciert zu erhöhen?
https://de.wikipedia.org/wiki/Gleitkomm ... kommazahl)
ich bin heute mal auf die witzige Idee gekommen, nach der kleinsten Computerzahl zu schauen, die mir Python anbietet. Dafür habe ich folgenden Code genommen:
Code: Alles auswählen
def min_comp_num():
eps1 = 1
steps = 0
while eps1 / 2 > 0:
steps += 1
eps1 = eps1 / 2
return eps1, steps
def min_plus_one():
eps2 = 1
steps = 0
val = 0
while 1 + eps2 / 2 > 1:
steps += 1
val = 1 + eps2 / 2
eps2 = eps2 / 2
return val, eps2, steps
def main():
mini1, steps1 = min_comp_num()
val, mini2, steps2 = min_plus_one()
print('First minimum: ', mini1, 'Steps: ', steps1)
print('Second minimum: ', val, mini2, 'Steps: ', steps2)
if __name__ == "__main__":
main()
First minimum: 5e-324 Steps: 1074
Second minimum: 1.0000000000000002 2.220446049250313e-16 Steps: 52
Was mir auffällt, wenn ich mich immer weiter der Null annähere, dann habe ich eine Genauigkeit von 5e-324. Wenn ich dasselbe Prinzip aber mit plus 1 anwende, dann verringert sich die Genauigkeit auf "nur" 16 Nachkommastellen.
Woran liegt das? Ich habe mir diesen Wikipedia Artikel angelesen, aber bin daraus irgendwie nicht ganz schlau geworden. Und gibt es eine Möglichkeit in Python die Genauigkeit einer Rechnung forciert zu erhöhen?
https://de.wikipedia.org/wiki/Gleitkomm ... kommazahl)