Numerikus módszerek 1.
1. előadás: Gépi számábrázolás, Hibaszámítás
Lócsi Levente
ELTE IK
Tartalomjegyzék
1 „Furcsa” jelenségek. . .
2 Gépi számok: a lebegőpontos számok egy modellje
3 A hibaszámítás elemei
Tartalomjegyzék
1 „Furcsa” jelenségek. . .
2 Gépi számok: a lebegőpontos számok egy modellje
3 A hibaszámítás elemei
1. furcsa jelenség
Mennyi sin(π) értéke?
1.224646799147353e-016
2. furcsa jelenség
Mennyi+∞∑
k=1
1k
értéke?
Mennyi az n-edik részletösszeg, valamely nagy n-re? (n∑
k=1
1k
)
Összegezhetünk oda vagy vissza. . .
3. furcsa jelenség
Mennyi a
Tn :=
1∫
0
fn(x) =
1∫
0
xn
x + 10
határozott integrál értéke? (Mindig pozitív.)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.02
0.04
0.06
0.08
0.1
Kiderül, hogy Tn+1 =1n
− 10 · Tn, és T0 = log 1.1. Számoljuk!
4. furcsa jelenség
Mennyi√
2014 −√
2013 értéke?
(√
2014 −√
2013) ·√
2014 +√
2013√2014 +
√2013
=2014 − 2013√2014 +
√2013
.
Próbáljuk ki!
Tartalomjegyzék
1 „Furcsa” jelenségek. . .
2 Gépi számok: a lebegőpontos számok egy modellje
3 A hibaszámítás elemei
Motiváció
• Gyakorlati és tudományos számításokban sokszor szükségünkvan valós számok kezelésére.
• A számítógépeken csak egy véges halmaz elemei közülválaszthatunk.
• Ráadásul ezek több nagyságrenddel eltérhetnek.
Lebegőpontos számok egy modellje
Lebegőpontos számok, normalizált alak: 324 +0.324 · 103.Kettes számrendszerben: 101000100 +0.101000100 · 29.Általában: ±0. 1 _ _ . . . _
︸ ︷︷ ︸
t jegy
·2k (k− ≤ k ≤ k+).
Definíció: Normalizált lebegőpontos szám
Legyen m =t∑
i=1mi · 2−i , ahol t ∈ N, m1 = 1, mi ∈ { 0, 1 }.
Ekkor az a = ±m · 2k (k ∈ Z) alakú számot normalizált
lebegőpontos számnak nevezzük.m: a szám mantisszája, hossza t
k: a szám karakterisztikája, k− ≤ k ≤ k+
Lebegőpontos számok egy modellje
Jelölés: a = ±[m1 . . . mt |k] = ±0.m1 . . . mn · 2k .
Jelölés: M = M(t, k−, k+) a gépi számok halmaza, adottk−, k+ ∈ Z és t ∈ N esetén. (Általában k− < 0 és k+ > 0.)
Definíció: Gépi számok halmaza
M(t, k−, k+) =
{
a = ±2k ·t∑
i=1
mi · 2−i :k− ≤ k ≤ k+,
mi ∈ { 0, 1 } , m1 = 1
}
Gyakorlatban még hozzávesszük: 0, ∞, −∞, NaN,. . .
Gépi számok tulajdonságai, nevezetes értékei
112 ≤ m < 1
2 M szimmetrikus a 0-ra.3 M legkisebb pozitív eleme:
ε0 = [100 . . . 0|k−] =12
· 2k−
= 2k−−1
4 M-ben az 1 után következő gépi szám és 1 különbsége:
ε1 = [100 . . . 01|1] − [100 . . . 00|1] = 2−t · 21 = 21−t
5 M legnagyobb eleme:
M∞ = [111 . . . 11|k+] = 1.00 . . . 00 · 2k+ − 0.00 . . . 01 · 2k+=
= (1 − 2−t) · 2k+
6 M elemeinek száma (számossága):
|M| = 2 · 2t−1 · (k+ − k− + 1)
Példa gépi számhalmazra
Példa
M(3, −1, 2) = 0.1_ _ · 2k , (−1 ≤ k ≤ 2)
Elemei k = 0 esetén: 0.100, 0.101, 0.110, 0.111, azaz 12 , 5
8 , 68 , 7
8 .
Valamint k = −1 esetén ezek fele, k = 1 esetén ezek kétszerese,k = 2 esetén ezek négyszerese. (Továbbá negatív előjellel. . . )
ε0 = [100| − 1] = 0.100 · 2−1 = 12 · 1
2 = 14 = 0.25
ε1 = [101|1] − 1 = 0.101 · 21 − 1 = 0.01 = 14 = 0.25
M∞ = [111|2] = 0.111 · 22 = 78 · 4 = 7
2 = 3.5
|M| = 2 · 22 · 4 = 32
Példa gépi számhalmazra
M(3, −1, 2)
−4 −3 −2 −1 0 1 2 3 4−1
0
1
M(4, −2, 3)
−8 −6 −4 −2 0 2 4 6 8−1
0
1
float ∼ M(23, −128, 127), double ∼ M(52, −1024, 1023)
bitek, nevezetes értékek?
Valós számok ábrázolása
Hogyan feleltetünk meg egy R-beli számnak egy gépi számot?
Definíció: Input függvény
Az fl : R → M függvényt input függvénynek nevezzük, ha
fl(x) =
0 ha |x | < ε0,
+∞ ha x > M∞,
−∞ ha x < −M∞,
x̃ ha ε0 ≤ |x | ≤ M∞,
ahol x̃ az x -hez legközelebbi gépi szám (a kerekítés szabályaiszerint).
Valós számok ábrázolása
Tehát már az is egyfajta hibát okoz számításkor, hogy valósszámokat számítógépre viszünk. . . de mekkorát?
Tétel: Input hiba
Minden x ∈ R, ε0 ≤ |x | ≤ M∞ esetén
|x − fl(x)| ≤ |x | · 2−t =12
· |x | · ε1,
illetve|x − fl(x)|
|x | ≤ 12
· ε1.
A hiba tehát lényegében ε1-től, azaz t-től függ. Biz.: táblán.
Mennyi a hiba, ha |x | < ε0, illetve ha |x | > M∞?
Tartalomjegyzék
1 „Furcsa” jelenségek. . .
2 Gépi számok: a lebegőpontos számok egy modellje
3 A hibaszámítás elemei
Hibák mérőszámai
Definíció: Hibák jellemzése
Legyen A egy pontos érték, a pedig egy közelítő értéke. Ekkor:
∆a := A − a a közelítő érték (pontos) hibája,
|∆a| := |A − a| a közelítő érték abszolút hibája,
∆a ≥ |∆a| az a egy abszolút hibakorlátja,
δa := ∆a
A≈ ∆a
aaz a relatív hibája,
δa ≥ |δa| az a egy relatív hibakorlátja.
Példa
Vizsgáljuk meg a 3.14 számot mint a π egy közelítő értékét!
Hibák terjedése
Tétel: az alapműveletek hibakorlátai
∆a±b = ∆a + ∆b δa±b =|a| · δa + |b| · δb
|a ± b|∆a·b = |b| · ∆a + |a| · ∆b δa·b = δa + δb
∆a/b =∆a·b
b2δa/b = δa + δb
Biz.: csak a kivonásra és a szorzásra.
Biz.: a kivonás hibája
∆(a − b) = (A − B) − (a − b) = (A − a) − (B − b) = ∆a − ∆b
|∆(a − b)| ≤ |∆a| + |∆b| ≤ ∆a + ∆b
∆(a − b)a − b
=∆a − ∆b
a − b=
a · δa − b · δb
a − b
|∆(a − b)||a − b| =
∣∣∣∣
a · δa − b · δb
a − b
∣∣∣∣ ≤ |a| · |δa| + |b| · |δb|
|a − b|
Biz.: a szorzás hibája
∆(a · b) = A · B − a · b = A · B − A · b + A · b − a · b =
= A(B − b) + b(A − a) = A · ∆b + b · ∆a =
= (a + ∆a) · ∆b + b · ∆a ≈ a · ∆b + b · ∆a
(∆a · ∆b elhanyagolható)
|∆(a · b)| ≤ |a| · |∆b| + |b| · |∆a| ≤ |a| · ∆b + |b| · ∆a
δ(a · b) =∆(a · b)
a · b≈ a · ∆b + b · ∆a
a · b=
∆b
b+
∆a
a= δb + δa
|δ(a · b)| ≤ |δa| + |δb| ≤ δa + δb
Hibák terjedése
Tétel: függvényérték hibája
Ha f ∈ D(k∆a(a)), akkor ∆f (a) = M1 · ∆a, ahol
M1 = sup{ ∣
∣f ′(ξ)∣∣ : ξ ∈ k∆a
(a)}
.
Biz.: A Lagrange-féle középértéktétel felhasználásával. Táblán.
Magyarázat a „furcsa” jelenségekre
1 sin(π)
2n∑
k=1
1k
3 Tn+1 = 1n
− 10 · Tn
4√
2014 −√
2013 („kivonási jegyveszteség”)
További furcsaságok
Gépi számokkal végzett műveletek során. . .
• sérülhet a pozitivitás
∃a, b ∈ M; a, b > 0 : a + b = a
• sérülhet az asszociativitás
∃a, b, c ∈ M : (a + b) + c 6= a + (b + c)
Példák Matlab-ban
1 Az említett „furcsa” jelenségek kipróbálása. . .