From d28635c5c87a51f50ce686d108d7e30d39fed2f6 Mon Sep 17 00:00:00 2001 From: Meik Hellmund Date: Wed, 10 Apr 2024 21:14:46 +0200 Subject: [PATCH] maschinenzahlen fehler korrigiert --- _quarto.yml | 2 +- chapters/numerictypes.qmd | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_quarto.yml b/_quarto.yml index 955ffae..66bd639 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -72,7 +72,7 @@ format: highlight-style: github # arrow ????? mainfont: "Roboto Condensed" # Ubuntu # "Atkinson Hyperlegible" # Verdana #Quicksand - toc: false # change for Vorlesung + toc: true # change for Vorlesung toc-depth: 3 number-depth: 3 email-obfuscation: javascript diff --git a/chapters/numerictypes.qmd b/chapters/numerictypes.qmd index c398430..aa84c03 100644 --- a/chapters/numerictypes.qmd +++ b/chapters/numerictypes.qmd @@ -277,7 +277,7 @@ using BenchmarkTools ``` -```{julia .myclass} +```{julia} @benchmark mysum(10_000_000, BigInt) ``` @@ -304,13 +304,13 @@ In der Numerischen Mathematik spricht man auch gerne von **Maschinenzahlen**. $$ 345.2467 \times 10^3\qquad 34.52467\times 10^4\qquad \underline{3.452467\times 10^5}\qquad 0.3452467\times 10^6\qquad 0.03452467\times 10^7$$ - Zur Eindeutigkeit muss man eine dieser Formen auswählen. In der mathematischen Analyse von Maschinenzahlen wählt man oft die Form, bei der die erste Nachkommastelle ungleich Null ist. Damit gilt für die Mantisse $m$: $$ -1 < m \le (0.1)_b = b^{-1}, +1 > m \ge (0.1)_b = b^{-1}, $$ wobei $b$ die gewählte Basis des Zahlensystems bezeichnet. - Wir wählen im Folgenden die Form, die der tatsächlichen Implementation auf dem Computer entspricht und legen fest: Die Darstellung mit genau einer Ziffer ungleich Null vor dem Komma ist die __Normalisierte Darstellung__. Damit gilt $$ - b< m \le 1. + (10)_b = b> m \ge 1. $$ - Bei Binärzahlen `1.01101`: ist diese Ziffer immer gleich Eins und man kann auf das Abspeichern dieser Ziffer verzichten. Diese tatsächlich abgespeicherte (gekürzte) Mantisse bezeichnen wir mit $M$, so dass $$m = 1 + M$$ @@ -321,11 +321,11 @@ gilt. ## Maschinenzahlen -Die Menge der Maschinenzahlen $𝕄(b, m, e_{min}, e_{max})$ ist charakterisiert durch die verwendete Basis $b$, die Mantissenlänge $m$ und den Wertebereich des Exponenten $\{e_{min}, ... ,e_{max}\}$. +Die Menge der Maschinenzahlen $𝕄(b, p, e_{min}, e_{max})$ ist charakterisiert durch die verwendete Basis $b$, die Mantissenlänge $p$ und den Wertebereich des Exponenten $\{e_{min}, ... ,e_{max}\}$. -In unserer Konvention hat die Mantisse einer normalisierten Maschinenzahl eine Ziffer (der Basis $b$) ungleich Null vor dem Komma und $m-1$ Nachkommastellen. +In unserer Konvention hat die Mantisse einer normalisierten Maschinenzahl eine Ziffer (der Basis $b$) ungleich Null vor dem Komma und $p-1$ Nachkommastellen. -Wenn $b=2$ ist, braucht man daher nur $m-1$ Bits zur Speicherung der Mantisse normalisierter Gleitkommazahlen. +Wenn $b=2$ ist, braucht man daher nur $p-1$ Bits zur Speicherung der Mantisse normalisierter Gleitkommazahlen. Der Standard IEEE 754, der von der Mahrzahl der modernen Prozessoren und Programmiersprachen implementiert wird, definiert @@ -429,7 +429,7 @@ printbitsf64(z) ``` - Das Maschinenepsilon ist ein Maß für den relativen Abstand zwischen den Maschinenzahlen und quantifiziert die Aussage: „64-Bit-Gleitkommazahlen haben eine Genauigkeit von etwa 16 Dezimalstellen.“ -- Das Maschinenepsilon ist etwas völlig anderes als die kleinste von Null verschiedene Gleitkommazahl: +- Das Maschinenepsilon ist etwas völlig anderes als die kleinste positive Gleitkommazahl: ```{julia} floatmin(Float64)