stellt bis zu 7 gültige Ziffern im Bereich F = [min F, max F] zur Verfügung; der Fehler für jede in F liegende reelle Zahl x durch ihre Approximation trunc(x) bzw. durch ihre Rundung round(x) ist absolut

|x − trunc(x)| ≤ 10^{−3}
|x − round(x)| ≤ \frac{1}{2} · 10^{−3},

also z.B. |\frac{2}{3} − 0.666| bzw. |\frac{2}{3} − 0.667|. Dagegen kann der relative Fehler

|\frac{x − trunc(x)}{x}| bzw. |\frac{x − trunc(x)}{trunc(x)}|

beliebig groß werden, es kann sogar passieren, daß keine Ziffer der Näherung stimmt! Für viele naturwissenschaftlichen Rechnungen reichen etwa obige 7 Stellen (7 richtige führende Stellen) aus, aber der abgedeckte Zahlenbereich erstreckt sich über viele Größenordnungen wie μV,...,kV, also 10^{−6}V,...,10^{3}V, obwohl viele analoge Voltmeter nur ±1% Ablesegenauigkeit haben.

Definition 1.3 Eine Abbildung ∘ : IR → F_{n}^{ν} mit den Eigenschaften

Projektion : ∘|_{F_{n}^{ν}} = id
Monotonie : x ≤ y ⇐ ∘x ≤ ∘y

heißt Rundung .

IEEE stellt 4 Rundungen zur Verfügung:

unsym. sym. unsym. sym. r_{−∞} r_{∞} r_{0} = trunc r_{near} = round

Sei x̃ ∈ F_{n}^{ν} eine Näherung von x, z.B. x̃ = ∘x mit ∘ ∈ {r_{−∞}, r_{∞}, r_{0}, r_{near}}, so bezeichnet man

Δx̃ := |x̃ − x|

als absoluten Fehler des Näherungswertes x̃,

ε̄x̃ := |\frac{x̃ − x}{x}|

für x ≠ 0 als relativen Fehler von x̃. Da x häufig nicht bekannt ist, man also nur weiß, daß x̃ maximal Δx̃ von x entfernt ist, benutzt man

εx̃ := |\frac{x̃ − x}{x̃}|

für x̃ ≠ 0 als relativen Fehler. Weiß man (z.B. bei x̃ = ∘x gerundet), daß x̃ genau zwischen zwei Rasterpunkten von F_{3}^{4} liegt, so kann man grob abschätzen:

Δx̃ ≤ 10^{−3}
ε̄x̃ ≤ \frac{10^{−3}}{x} ∀x ≠ 0
εx̃ ≤ \frac{10^{−3}}{x̃} ∀x̃ ≠ 0

Ist die Art der Rundung nicht bekannt, ergibt sich also:

x̃ = 0 ⇒ x ∈ (−0.001, 0.001) ⇒ |\frac{Δx̃}{x}| ≤ ∞
x̃ = 0.001  ⇒ x ∈ (0.000, 0.002) ⇒  |\frac{Δx̃}{x}| ≤ ∞
x̃ = 0.002  ⇒ x ∈ (0.001, 0.003) ⇒  |\frac{Δx̃}{x}| ≤ 1
x̃ = 0.003  ⇒ x ∈ (0.002, 0.004) ⇒  |\frac{Δx̃}{x}| ≤ 0.5
⋮
x̃ = 9999.998 ⇒ x ∈ (9999.997, 9999.999) ⇒ |\frac{Δx̃}{x}| ≤ 10^{−7}
x̃ = 9999.999  ⇒ ???

Kennt man die Art der Rundung, so läßt sich genauer feststellen

1. Rundung zur Null:

x̃ = 0 ⇒ x ∈ (−0.001, 0.001) ⇒ |\frac{Δx̃}{x}| ≤ ∞

x̃ = 0.001 ⇒ x ∈ [0.001, 0.002) ⇒ |\frac{Δx̃}{x}| ≤ 1
x̃ = 0.002 ⇒ x ∈ [0.002, 0.003) ⇒ |\frac{Δx̃}{x}| ≤ 0.5
⋮

Ein analoges Ergebnis gilt für r_{+∞} und r_{−∞}.

2. r_{near} : Δx̃ = |x − x̃| ≤ \frac{1}{2} · 10^{−3}

x̃ = 0 ⇒ x ∈ [−0.0005, 0.0005) ⇒ |\frac{Δx̃}{x}| ≤ ∞
x̃ = 0.001  ⇒ x ∈ [0.0005, 0.0015) ⇒  |\frac{Δx̃}{x}| ≤ 1
x̃ = 0.002  ⇒ x ∈ [0.0015, 0.0025) ⇒  |\frac{Δx̃}{x}| ≤ 0.33
x̃ = 0.003  ⇒ x ∈ [0.0025, 0.0035) ⇒  |\frac{Δx̃}{x}| ≤ 0.20
⋮
x̃ = 9999.998 ⇒ x ∈ [9999.9975, 9999.9985) ⇒ |\frac{Δx̃}{x}| ≤ \frac{1}{2} · 10^{−7}

Für naturwissenschaftliche/technische Anwendungen sind also etwa nur zwei führende Ziffern sinnvoll. Im Beispiel heißt das

(−1)^{s} · \underbrace{(z_{1}10^{−1} + z_{2}10^{−2})}_{norm. Mantisse} · \underbrace{10^{e}}_{Basis}

mit s ∈ {0, 1}, z_{1/2} ∈ {0, …, 9}, z_{1} ≠ 0 und einem Exponenten e ∈ {−6, −5, …, 5}. Allgemein ergibt sich

(−1)^{s} · (∑_{i=1}^{N} z_{i}b^{−i}) · b^{e}, z_{1} ≠ 0  (∘)

oder

(−1)^{s} · (∑_{i=0}^{N} z_{i}b^{−i}) · b^{e}, z_{0} ≠ 0

Zur Untersuchung des Zahlenbereichs der durch (∘) gegebenen Zahlen sei

G̃:= {(−1)^{s} · (∑_{i=1}^{N} z_{i}b^{−i}) · b^{e}|s ∈ {0, 1}, z_{i} ∈ {0, 1, …, b − 1}, z_{1} ≠ 0, e ∈ {e_{min}, …, e_{max}}}

Man beachte, daß G̃ \underline{nicht} die 0 enthält! Man setzt daher G := G̃∪ \{0\}, max G := max G̃ und min G := min G̃. Für G̃ erhält man z.B. mit b = 10, N = 2 und e ∈ {−6, …, 5}:

{−0.99 · 10^{5}, −0.98 · 10^{5}, …, −0.11 · 10^{5}, −0.10 · 10^{5},
−0.99 · 10^{4}, −0.98 · 10^{4}, …, −0.11 · 10^{4}, −0.10 · 10^{4},
…
−0.99 · 10^{−6}, −0.98 · 10^{−6}, …, −0.11 · 10^{−6}, −0.10 · 10^{−6},
0.10 · 10^{−6}, 0.11 · 10^{−6}, …, 0.98 · 10^{−6}, 0.99 · 10^{−6},
0.10 · 10^{−5}, 0.11 · 10^{−5}, …, 0.98 · 10^{−5}, 0.99 · 10^{−5},
…
0.10 · 10^{4}, 0.11 · 10^{4}, … 0.98 · 10^{4}, 0.99 · 10^{4},
0.10 · 10^{5}, 0.11 · 10^{5}, … 0.98 · 10^{5}, 0.99 · 10^{5}}

Für die Rundungsfehler ergibt sich im Beispiel mit r_{0} folgendes Bild:

...  ...  ... ...  ...  ... ...  ... 0.0 ... 0.10 · 10^{−6} 0.11 · 10^{−6}  0.98 · 10^{−6}  0.99 · 10^{−6} 0.10 · 10^{−5} 0.11 · 10^{−5}  0.98 · 10^{−5}  0.99 · 10^{−5} 0.10 · 10^{5}  0.11 · 10^{5}  0.98 · 10^{5}  0.99 · 10^{5} 10^{−8}  10^{−8} 10^{−7}  10^{−7} 10^{3}  10^{3}

Eine Rechnung liefert für die relativen Fehler:

x̃ = 0.0 ⇒ x ∈ (−0.10 · 10^{−6}, 0.10 · 10^{−6}) ⇒ |\frac{x̃ − x}{x}| ≤ ∞
x̃ = 0.10 · 10^{−6} ⇒ x ∈ [0.10 · 10^{−6}, 0.11 · 10^{−6}) ⇒ |\frac{x̃ − x}{x}| ≤ \frac{10^{−8}}{10^{−7}} = 0.1
x̃ = 0.11 · 10^{−6} ⇒ x ∈ [0.11 · 10^{−6}, 0.12 · 10^{−6}) ⇒ |\frac{x̃ − x}{x}| ≤ \frac{10^{−8}}{0.11 · 10^{−6}} ≤ 0.\overline{09}
⋮
x̃ = 0.99 · 10^{−6} ⇒ x ∈ [0.99 · 10^{−6}, 1.00 · 10^{−6}) ⇒ |\frac{x̃ − x}{x}| ≤ \frac{10^{−8}}{0.99 · 10^{−6}} ≤ 0.\overline{01} …

Also mit p = N:

Δx̃ ≤ b^{exponent(x̃)−p}

Ist nun x̃ ∈ S(b, p, emin, emax) \ {0.0} und dabei ohne Einschränkung x̃ > 0, so gilt bei der Rundung r_{0} für x ∈ [x̃, x̃ + b^{−p+exponent(x̃)})

|\frac{x − x̃}{x}| ≤ |\frac{x̃}{x} − 1|
≤ |\frac{x̃}{x̃ + b^{−p+exponent(x̃)}} − 1|
= |\frac{mantisse(x̃)}{mantisse(x̃) + b^{−p}} − 1|
= |\frac{b^{−p}}{mantisse(x̃) + b^{−p}} |
= (\frac{mantisse(x̃)}{b^{−p}} + 1)^{−1}
≈ \frac{b^{−p}}{mantisse(x̃)}
∈ (b^{−p}, b^{1−p}] ,

wobei benutzt wurde, daß für große α gilt: \frac{1}{1+α} ≈ \frac{1}{α}. Bei der Rundungsart r_{near} erhält man folgende Abschätzungen:

x̃ = 0.0  ⇒ ?
x̃ = 0.10 · 10^{−6}  ⇒ ?
x̃ = 0.11 · 10^{−6} ⇒ x ∈ [0.105 · 10^{−6}, 0.115 · 10^{−6}) ⇒ |\frac{x̃ − x}{x}| ≤ \frac{\frac{1}{2} · 10^{−8}}{0.105 · 10^{−6}} ≤ 0.0476...
⋮

x̃ = 0.99 · 10^{−6} ⇒ x ∈ [0.985 · 10^{−6}, 0.995 · 10^{−6}) ⇒ |\frac{x̃ − x}{x}| ≤ \frac{\frac{1}{2} · 10^{−8}}{0.985 · 10^{−6}} ≤ 0.005076...
⋮
x̃ = 0.99 · 10^{5}  ⇒ ?

Für r_{near} gilt also:

Δx̃ ≤ \frac{1}{2} · 10^{exponent(x̃)−p}

Damit die Formel von r_{near} auch für x̃ = 0.99 · 10^{5} gilt, muß

x ∈ [0.985 · 10^{5}, 0.995 · 10^{5})

auf x̃ gerundet werden; alle x ≥ 0.995 · 10^{5} werden zu +infty.

+infty 0.98 · 10^{5}  0.99 · 10^{5} max G G(b, p, e_{min}, e_{max}) = G(10, 2, −6, 5) 0.995 · 10^{5} = b^{e_{max}}(1 − \frac{1}{2}b^{−p})

Nahe 0 arbeiten alte Arithmetiken mit

x̃ = 0.10 · 10^{−6} ⇒ x ∈ [0.10 · 10^{−6}, 0.15 · 10^{−6}),

d.h. die Formel gilt auch hier, könnte jedoch noch verschärft werden, und

x̃ = 0.0 ⇒ x ∈ (−0.10 · 10^{−6}, +0.10 · 10^{−6}) ⇒ \{ \begin{matrix}Δx̃ & = & 2 · 0.10 · 10^{−6} \\ |\frac{x̃−x}{x} | & < & ∞ \end{matrix}

Es ergibt sich folgendes Problem: Die Äquivalenz

x − y > 0 ⇔ x > y

gilt im allgemeinen hier nicht mehr. So wird z.B. die Differenz 0.11 · 10^{−6} − 0.10 · 10^{−6} nach 0 gerundet, weil 10^{−8} < 0.10 · 10^{−6} = minReal ist, aber natürlich ist 0.11 · 10^{−6} > 0.10 · 10^{−6}. Da Festpunktsysteme die Addition exakt ausführen, ergänzen wir G(b, p, e_{min}, e_{max}) um Null herum um die Rasterpunkte des Festkommasystems mit Δ = b^{e_{min}−p}, d.h. im Beispiel Δ = b^{−8}.

0.0  0.08 · 10^{−6}  0.10 · 10^{−6} 0.02 · 10^{−6} 0.01 · 10^{−6}  0.09 · 10^{−6}  0.11 · 10^{−6} D ...

Damit ergeben sich in D folgende Fehlerformeln für x̃ ∈ D \ {0.0}: Bei der Rundungsart r_{0} ist Δx̃ = b^{minexp} und somit mit m̃ant(x̃) = \frac{x̃}{b^{minexp}}

|\frac{x̃ − x}{x̃}| ≤ \frac{b^{minexp−p}}{m̃ant(x̃) · b^{minexp}} = \frac{b^{−p}}{m̃ant(x̃)}
|\frac{x̃ − x}{x}| ≤ (\frac{m̃ant(x̃)}{b^{−p}} + 1)^{−1} .

Für r_{near} ist Δx̃ = \frac{1}{2}b^{minexp−p} und daher

|\frac{x̃ − x}{x}| ≤ \frac{1}{2} \frac{b^{−p}}{m̃ant(x̃) − \frac{1}{2}b^{−p}}

Aufgabe 1.5 Berechne für 0.01 · 10^{−6} die Abschätzungen für r_{0} und r_{near}.

Hochgenaue Standardfunktionen können i.a. nur auf drei benachbarte Gitterpunkte genau berechnet werden:

\frac{1}{3} · 3 ∈ [0.99...9, 1.00...01]

Für ein (unbekanntes) Funktionsergebnis x und die gelieferte Näherung x̃ gilt dann also z.B. bei der Rundung r_{0}:

x̃ = 0.15 · 10^{−6} ⇒ x ∈ [0.15 · 10^{−6}, 0.17 · 10^{−6}]
⇒ |\frac{x − x̃}{x}| ≤ |\frac{mant(x̃)}{mant(x̃) + 2 · 10^{−2}} − 1| = (\frac{mant(x̃)}{2 · 10^{−2}} + 1)^{−1}
∈ [0.0198..., 0.166...]

für Argumente im normalisierten Bereich.

Aufgabe 1.6 Wie sieht das im unnormierten Bereich aus?