[ < ]
[ globale Übersicht ]
[ Kapitelübersicht ]
[ Stichwortsuche ]
[ > ]
3.7.1 Rundungen
Zu einer mathematischen Definition der arithmetischen Operation in F kann man
folgendermaßen kommen:
Für jede zweistellige Operation:
o: RxR -> R
definiert man die analoge Operation:
r: FxF -> F
durch
xry := a(xoy)
wobei x r y immer eine Zahl aus F sein soll.
Dasselbe gilt nun auch für einen Operanten beziehungsweise für eine Funktion in F:
f(x) := af(x) => f: F -> F
Forderungen an eine Rundungsfunktion sind im allgemeinen durch folgende Punkte
zu erfüllen:
1. Projektivität:
ax=x für x e F
2. Monotonie:
x <= y => ax <= ay für x,y e R
Daraus folgt, daß unterhalb eines bestimmten Grenzpunktes
x' e [x1,x2]
auf x1 abgerundet und oberhalb eines Punktes x' aufgerundet wird.
Gebräuchliche Rundungsfunktionen sind:
1) Rundung auf den nächstgelegenen Wert(optimale Rundung):
Bei dieser Art der Rundung liegt x' genau in der Mitte von [x1,x2].
Hierbei kann der sonderfall, daß x=x' ist, eintreten.Das heißt, daß die Zahl gleichen Abstand von
x1 und x2 hat.
Genau für diesen Fall gibt es zwei Untermethoden bei dieser Rundungsart:
a) Traditionelle Rundung oder "round away from zero"
Hierbei wird genau jene Zahl genommen, welche weiter weg von
Null ist.
z.B.: F(10,6,-9,9,true)
0,1000005 => 0,100001
b) Rundung zur nächsten geraden Mantisse oder "round to even"
Hier rundet man auf die Zahl, welche an ihrer letzten Stelle gerade ist.
Diese Art der Rundung funktioniert aber nur, wenn die Basis b gerade ist
z.B.: F(10,6,-9,9,true)
0,1000005 => 0,100001*10^0
2) Abschneiden oder "trucate, round toward zero"
Beim Abschneiden hängt der Grenzpunkt in folgenderweise vom
Vorzeichen der Zahl ab:
sign(x) := -1 x <= 0
sign(x) := 1 x => 0
Für die Berechnung des Grenzpunktes gilt daher:
x' = sign(x) * max(|x1|,|x2|)
Durch das Abschneiden der Zahl erhält man die nächste zur Null gelegene Zahl.
3) Einseitige Rundung oder "round toward infinity"
und Abrunden oder "round minus infinity"
Der Grenzpunkt wird hier folgendermaßen definiert:
x' := min(x1,x2) beziehungsweise x' := max(x1,x2)
Durch die immer gültige Symmetriebeziehung
a(-x) = -(ax)
bezeichnet man optimale Rundung und Abschneiden als symmetrische Rundungsfunktionen.
Einseitige Rundung bezeichnet man hingegen als gerichtete Rundungsfunktionen.
Falls keine Nachbarzahlen x1 < x und x2 > x aus F gibt, so kann es zu einem Überlauf oder
Unterlauf kommt.
Bei einem Überlauf in einem Computer kommt es zu einem Rechenabruch, wobei aber bei
einem Unterlauf der Computer mit 0 weiterrechnet.
[ < ]
[ globale Übersicht ]
[ Kapitelübersicht ]
[ Stichwortsuche ]
[ > ]