1. Rechnerzahlen, Kondition, Stabilität

Werbung
1. Rechnerzahlen, Kondition, Stabilität
1
1.1. Rechnerzahlen
2
1.2. Kondition
3
1.3. Stabilität
1. Rechnerzahlen, Kondition, Stabilität
1 / 18
1.1. Rechnerzahlen
allgemeine Zahlendarstellung zur Basis b:
jedes x ∈ R hat eine exakte (ggf. unendliche) Darstellung
x =s
∞
X
ak b−k be
k =1
wobei
s ∈ {−1, +1}
Vorzeichen
ak ∈ {0, 1, . . . , b − 1} Ziffern
b≥2
Basis (z.B. 10, 2, 16)
e∈Z
Exponent
1. Rechnerzahlen, Kondition, Stabilität
2 / 18
normalisierte Gleitpunktzahlen
Definition (1.1)
Menge der normalisierten Gleitpunktzahlen (Rechnerzahlen)
G = G(b, `, Emin , Emax )
zur Basis b, mit Mantissenlänge ` und Exponentenschranken
Emin < 0 < Emax ist definiert als Menge aller Zahlen x mit der
Darstellung
x =s
`
X
ak b−k be
mit s ∈ {−1, +1}, ak ∈ {0, . . . , b − 1}, a1 6= 0,
k =1
Emin ≤ e ≤ Emax , e ∈ Z
und der Zahl 0.
Schreibweise:
(0.a1 a2 . . . a` )b :=
P`
k =1 ak b
−k
1. Rechnerzahlen, Kondition, Stabilität
3 / 18
Das Gitter der Rechnerzahlen
!! Auf jedem Rechner kann man nur endlich viele Zahlen darstellen !!
darstellbarer Bereich D
(sei B := b − 1)
x = a be > 0 ⇒ xmin = (0.10 . . . 0)b bEmin = bEmin −1
⇒ xmax = (0.BB . . . B)b bEmax = bEmax (1 − b−` )
also
G ⊂ D := [−xmax , −xmin ] ∪ {0} ∪ [xmin , xmax ]
Beispiel : double precision numbers (IEEE-Standard)
G = G(b, `, Emin , Emax ) = G(2, 53, −1021, 1024)
Eine Rechnerzahl x ∈ G beansprucht 64 Bit = 8 Byte.
xmin ≈ 2.23 10−308 ,
xmax ≈ 1.80 10+308
1. Rechnerzahlen, Kondition, Stabilität
4 / 18
relative Genauigkeit der Gleitpunkt-Darstellung
Theorem (1.2.)
Voraussetzung:
• G = G(b, `, Emin , Emax )
• x ∈ R,
Behauptung:
min
x̃∈G
xmin ≤ |x| ≤ xmax
|x − x̃|
1
≤ b1−` =: ε
|x|
2
Beispiel: „relative Maschinengenauigkeit“ ε beim IEEE-Standard
b = 2, ` = 53
⇒
ε = 2−53 ≈ 1.11022 e − 16
Man beachte:
ε 6= Matlab-Konstante eps = 2−52 = Abstand
zwischen 1 und der nächst größeren Rechnerzahl
1. Rechnerzahlen, Kondition, Stabilität
5 / 18
Die Rundung
Ziel: zu jeder Zahl x ∈ R eine Rechnerzahl rd(x) ∈ G finden mit
|x − rd(x)| = min |x − x̃|
x̃∈G
Intervallschachtelung:
sei e so dass
betrachten nur den Fall x > 0
x ∈ [be−1 , be [
sei x̃1 = a be so dass
x ∈ [x̃1 , x̃1 + b−` be [, a = (0.a1 a2 . . . a` )b
⇒ x = ( (0.a1 . . . a` z`+1 . . . )b ) be
z`+1 erste wegfallende Ziffer


a be ,




 (a + b−` )be ,
rd(x) :=

 0,




NaN,
falls z`+1 < 21 b
(abrunden)
falls z`+1 ≥ 21 b
(aufrunden)
falls |x| < xmin
(underflow)
falls |x| > xmax
(overflow)
1. Rechnerzahlen, Kondition, Stabilität
6 / 18
Rundungsfehler
Definition (relative Rundungsgenauigkeit)
Zu gegebenem x ∈ R mit x 6= 0 heißt
εx :=
rd(x) − x
x
relative Rundungsgenauigkeit von x. Für x = 0 sei εx := 0, da
0 ∈ G.
Genauigkeit der Rundung:
Theorem 1.2 ⇒
|εx | ≤ ε =
1 1−`
b
≈ 10−16 beim
2
IEEE-Standard
Bemerkung:
εx = 0.12
bedeutet
„12 % Rundungsfehler“
1. Rechnerzahlen, Kondition, Stabilität
7 / 18
Maschinenoperationen
auf dem Computer wird jede arithmetische Grundoperation
∗ ∈ {+, −, ·, /}
mit
∗:R×R→R
durch eine entsprechende Maschinenoperation ersetzt:
~ ∈ {⊕, , , }
mit
~:G×G →G
Realisierung durch:
(
a ~ b :=
rd(a ∗ b),
falls |a ∗ b| ≤ xmax
NaN (not a number), falls |a ∗ b| > xmax
Man beachte: i.a. sind Rechengesetze verletzt, d.h.
(a ⊕ b) ⊕ c 6= a ⊕ (b ⊕ c)
und
(a ⊕ b) c 6= a c ⊕ b c
1. Rechnerzahlen, Kondition, Stabilität
8 / 18
Realisierung mathematischer Funktionen
auf dem Computer werden auch elementare math. Funktionen
√
f : R → R,
z.B f (x) = sin(x), f (x) = ex , f (x) = x
näherungsweise dargestellt durch:
f ≈ f̃ : G → G
Realisierung durch:
(
f̃ (x) :=
rd(f (x)),
falls |f (x)| ≤ xmax
NaN (not a number), falls |f (x)| > xmax
+ endliche Stellengenauigkeit
1. Rechnerzahlen, Kondition, Stabilität
9 / 18
1.2. Kondition eines Problems
Definition (Problem)
Unter einem Problem verstehen wir im folgenden die Aufgabe, aus
einem gegebenen Vektor von Daten x ∈ Rn ein Resultat y ∈ R nach
einer Vorschrift f : Rn → R , d.h.
y = f (x),
zu berechnen.
Beispiele:
f : R2 → R,
f : R2 → R,
f : R2 → R,
y = f (x1 , x2 ) = x1 − x2
q
y = f (x1 , x2 ) = x1 − x12 − x2
R1
y = f (x1 , x2 ) = 0 sin(x1 t 2 + x2 ) dt
1. Rechnerzahlen, Kondition, Stabilität
10 / 18
Fehlerquellen
Eingangsdaten
x ∈ Rn
⇑
⇒
berechne Lsg.
y = f (x)
⇒
Eingangsfehler
∆x = x − x̃
exakte Lsg.
y ∈R
⇓
Resultatsfehler
∆y = y − ỹ
Beispiele:
Messfehler
Rundung von xj ∈ R auf Rechnerzahl x̃j = rd(xj ) ∈ G
Bsp. :
xj =
1
= 0.3̄ ≈ 0. 33
. . . 3} = x̃j
| {z
3
` - Stellen
1. Rechnerzahlen, Kondition, Stabilität
⇒
∆xj =
1 −`
10
3
11 / 18
absoluter und relativer Fehler
Definition (absoluter und relativer Fehler)
Sei x̃ ∈ Rn eine Näherung von x ∈ Rn . Dann heißt
εabs := kx̃ − xk absoluter Fehler der Näherung x̃
εrel :=
kx̃−xk
kxk
relativer Fehler der Näherung x̃
(Vor. x 6= 0), wobei kxk die Norm des Vektors x bezeichnet z.B.
q
kxk = kxk2 := x12 + · · · + xn2 oder kxk = kxk∞ := max |xj |.
1≤j≤n
Beispiele:
x = 3000, x̃ = 3060 : εabs = 60 groß, εrel = 0.02 ∼ 2 %
x = 0.003, x̃ = 0.0036 : εabs = 0.0006 klein, εrel = 0.2 ∼ 20 %
1. Rechnerzahlen, Kondition, Stabilität
12 / 18
Kondition eines Problems
Definition (Kondition eines Problems)
Die Kondition Kf (x) eines Problems y = f (x) ist der größte
auftretende Verstärkungsfaktor für den Einfluß des relativen
Eingangsfehlers k∆xk/kxk auf den relativen Resultatsfehler
k∆y k/ky k mit ỹ = f (x̃) , d.h.
Kf (x) := sup
∆x∈E
k∆y k/ky k
k∆xk/kxk
wobei E = Menge der möglichen Eingangsfehler (6= 0) und
ky k := |y | .
Folgerung :
k∆y k
kf (x) − f (x̃)k
≤ Kf (x) ·
=
| {z }
ky k
kf (x)k
|
{z
} Kondition
rel. Resultatsfehler
1. Rechnerzahlen, Kondition, Stabilität
kx − x̃k
kxk
| {z }
rel. Eingangsfehler
13 / 18
Beispiel für schlechte Kondition
Problem : berechne y = f (x) =
√
√
2 − x für x = 2 − δ ,
wobei 0 < δ < 0.1 klein
sei x̃ = x + ∆x fehlerhafter Eingangswert
|∆x|
< |∆x|
rel. Eingangsfehler
e=√
2−δ
relativer Resultatsfehler
√
√
|y − ỹ |
|( 2 − x) − ( 2 − x̃)|
|∆x|
√
√
r=
=
=
|y |
δ
| 2 − ( 2 − δ)|
⇒ Kf (x) = sup
∆x∈E
r
|∆x|/δ
1
≥
=
e
|∆x|
δ
⇒ große Fehlerverstärkung für kleines δ („Auslöschung“)
⇒ Subtraktion von fast gleichen Zahlen i.a. schlecht konditioniert
1. Rechnerzahlen, Kondition, Stabilität
!!
14 / 18
Berechnung relativer Konditionszahlen
Problem: berechne y = f (x) , x = (x1 , . . . , xn ), f : Rn → R
Frage: wie wirken sich fehlerhafte Eingangsdaten
x̃j = xj + ∆xj ,
j = 1, . . . , n
aus auf den relativen Resultatsfehler εrel =
kf (x + ∆x) − f (x)k
kf (x)k
Ergebnis:
εrel
n X
xj ∂f
∆xj ≈
f (x) ∂x (x) · x j
j
j=1 |
{z
} | {z }
=:kj (x)
=εj
kj (x) = Verstärkungsfaktor des rel. Eingangsfehlers εj von xj
die kj (x) heißen relative Konditionszahlen des Problems
1. Rechnerzahlen, Kondition, Stabilität
15 / 18
Begriff: schlecht konditioniert
Definition (Konditionierung eines Problems)
Problem
berechne y = f (x)
heißt schlecht konditioniert, wenn
k (x) := max {kj (x)} >> 1,
1≤j≤n
sonst heißt es gut konditioniert.
1. Rechnerzahlen, Kondition, Stabilität
16 / 18
1.3. Stabilität eines numerischen Verfahrens
Definition (1.3)
Ein numerisches Verfahren heißt instabil, wenn es die relativen
Eingangsfehler wesentlich mehr verstärkt als die Kondition des
Problems.
Es heißt stabil, wenn die relativen Eingangsfehler in gleicher
Größenordnung verstärkt werden wie durch die Kondition des
Problems.
Man beachte:
hat ein Problem eine schlechte Kondition, so kann dies niemals
durch ein numerisches Verfahren behoben werden
aber: auch bei einem gut konditionierten Problem kann ein
numerisches Verfahren eine extreme Fehlerverstärkung
aufweisen (siehe folgendes Beispiel . . . )
1. Rechnerzahlen, Kondition, Stabilität
17 / 18
Beispiel für stabiles und instabiles numer. Verfahren
√
Problem :
zu geg. x > 0 berechne y = f (x) :=
√
Verfahren A : nach Formel y =
1 + x2 − 1
x2
1 + x2 − 1
x2
u1 = x ∗ x ⇒ u2 = u1 + 1 ⇒ u3 =
√
u2 ⇒ u4 = u3 − 1 ⇒ y = u4 /u1
Verfahren B : nach äquivalenter Formel
v1 = x ∗ x ⇒ v2 = v1 + 1 ⇒ v3 =
√
y=
1
√
1 + 1 + x2
v2 ⇒ v4 = v3 + 1 ⇒ y = 1/v4
siehe Übungsaufgabe !!
1. Rechnerzahlen, Kondition, Stabilität
18 / 18
Herunterladen