Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k...

25
Numerikus módszerek 1. 1. előadás: Gépi számábrázolás, Hibaszámítás Lócsi Levente ELTE IK

Transcript of Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k...

Page 1: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

Numerikus módszerek 1.

1. előadás: Gépi számábrázolás, Hibaszámítás

Lócsi Levente

ELTE IK

Page 2: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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

Page 3: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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

Page 4: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

1. furcsa jelenség

Mennyi sin(π) értéke?

1.224646799147353e-016

Page 5: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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. . .

Page 6: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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!

Page 7: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

4. furcsa jelenség

Mennyi√

2014 −√

2013 értéke?

(√

2014 −√

2013) ·√

2014 +√

2013√2014 +

√2013

=2014 − 2013√2014 +

√2013

.

Próbáljuk ki!

Page 8: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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

Page 9: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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.

Page 10: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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+

Page 11: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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,. . .

Page 12: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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)

Page 13: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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

Page 14: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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?

Page 15: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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).

Page 16: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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∞?

Page 17: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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

Page 18: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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!

Page 19: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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.

Page 20: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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|

Page 21: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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

Page 22: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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.

Page 23: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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”)

Page 24: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

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)

Page 25: Numerikus módszerek 1. - talata.istvan.ymmf.hu · 2. furcsa jelenség Mennyi +P∞ k=1 1 k értéke? Mennyi az n-edik részletösszeg, valamely nagy n-re? (Pn k=1 1 k) Összegezhetünk

Példák Matlab-ban

1 Az említett „furcsa” jelenségek kipróbálása. . .