1. Rechnerzahlen, Kondition, Stabilität

Werbung
1. Rechnerzahlen, Kondition, Stabilität
14. April 2016
1
1.1. Rechnerzahlen
2
1.2. Kondition
3
1.3. Stabilität
1. Rechnerzahlen, Kondition, Stabilität
1
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
1.1. Rechnerzahlen
2
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 :=
1. Rechnerzahlen, Kondition, Stabilität
P`
−k
k=1 ak b
1.1. Rechnerzahlen
3
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 ,
1. Rechnerzahlen, Kondition, Stabilität
xmax ≈ 1.80 10+308
1.1. Rechnerzahlen
4
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
1.1. Rechnerzahlen
5
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
e
⇒ x = ( (0.a1 . . . a` z`+1 . . . )b ) b
z`+1 erste wegfallende Ziffer
rd(x) :=


a be ,
falls z`+1 < 12 b (abrunden)




 (a + b−` )be , falls z`+1 ≥ 1 b (aufrunden)
2

0,




 NaN,
1. Rechnerzahlen, Kondition, Stabilität
falls |x| < xmin
(underflow)
falls |x| > xmax
(overflow)
1.1. Rechnerzahlen
6
Rundungsfehler
Definition (relativer Rundungsfehler)
Zu gegebenem x ∈ R mit x 6= 0 heißt
εx :=
rd(x) − x
x
relativer Rundungsfehler von x. Für x = 0 sei εx := 0, da 0 ∈ G.
Genauigkeit der Rundung:
Theorem 1.2 ⇒
1
|εx | ≤ ε = b1−` ≈ 10−16 beim IEEE-Standard
2
Bemerkung:
εx = 0.12
bedeutet
1. Rechnerzahlen, Kondition, Stabilität
"12 % Rundungsfehler"
1.1. Rechnerzahlen
7
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)
1. Rechnerzahlen, Kondition, Stabilität
und
(a ⊕ b) c 6= a c ⊕ b c
1.1. Rechnerzahlen
8
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
1.1. Rechnerzahlen
9
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
p
y = f (x1 , x2 ) = x1 − x21 − x2
R1
y = f (x1 , x2 ) = 0 sin(x1 t2 + x2 ) dt
1. Rechnerzahlen, Kondition, Stabilität
1.2. Kondition
10
Fehlerquellen
Eingangsdaten
x ∈ Rn
⇑
⇒
berechne Lsg.
y = f (x)
⇒
exakte Lsg.
y∈R
⇓
Resultatsfehler
4y = y − ỹ
Eingangsfehler
4x = x − x̃
Beispiele:
Meßfehler
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
⇒
1
4xj = 10−`
3
1.2. Kondition
11
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 := x21 + · · · + x2n 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
1.2. Kondition
12
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 k4xk/kxk auf den relativen Resultatsfehler
k4yk/kyk mit ỹ = f (x̃) , d.h.
Kf (x) := sup
4x∈E
k4yk/kyk
k4xk/kxk
wobei E = Menge der möglichen Eingangsfehler (6= 0) und
kyk := |y| .
Folgerung :
k4yk
kf (x) − f (x̃)k
=
≤ Kf (x) ·
kyk
kf (x)k
| {z }
|
{z
} Kondition
rel. Resultatsfehler
1. Rechnerzahlen, Kondition, Stabilität
kx − x̃k
kxk
| {z }
rel. Eingangsfehler
1.2. Kondition
13
Beispiel für schlechte Kondition
Problem : berechne y = f (x) =
√
2 − x für x =
√
2−δ ,
wobei 0 < δ < 0.1 klein
sei x̃ = x + 4x fehlerhafter Eingangswert
|4x|
rel. Eingangsfehler
e= √
< |4x|
2−δ
relativer Resultatsfehler
√
√
|y − ỹ|
|( 2 − x) − ( 2 − x̃)|
|4x|
√
√
r=
=
=
|y|
δ
| 2 − ( 2 − δ)|
|4x|/δ
1
r
≥
=
⇒ Kf (x) = sup
e
|4x|
δ
4x∈E
⇒ große Fehlerverstärkung für kleines δ ("Auslöschung")
⇒ Subtraktion von fast gleichen Zahlen i.a. schlecht konditioniert
1. Rechnerzahlen, Kondition, Stabilität
1.2. Kondition
!!
14
Berechnung relativer Konditionszahlen
Problem: berechne y = f (x) , x = (x1 , . . . , xn ), f : Rn → R
Frage: wie wirken sich fehlerhafte Eingangsdaten
x̃j = xj + 4xj ,
j = 1, . . . , n
aus auf den relativen Resultatsfehler εrel =
f (x + 4x) − f (x)
f (x)
Ergebnis:
εrel
n
X
xj ∂f
4xj
≈
(x) ·
f (x) ∂xj
xj
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
1.2. Kondition
15
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
1.2. Kondition
16
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
1.3. Stabilität
17
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
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 =
1 + x2 − 1
x2
√
y=
1
√
1 + 1 + x2
v2 ⇒ v4 = v3 + 1 ⇒ y = 1/v4
siehe Übungsaufgabe !!
1. Rechnerzahlen, Kondition, Stabilität
1.3. Stabilität
18
Herunterladen