primjerikrozradumatlab-uir-u andrejjokić,marioessert ... · pdf filenumericki problemi -...

26
Numerički problemi Primjeri kroz rad u MATLAB-u i R-u Andrej Jokić, Mario Essert, Tihomir Žilić, Vladimir Milić Računalna matematika FSB Travanj 2015. NAPOMENA: Ova prezentacija dodatak je sadržaju pripadajučih “.m” i “.r” datoteka.

Upload: hamien

Post on 10-Feb-2018

223 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Numerički problemiPrimjeri kroz rad u MATLAB-u i R-u

Andrej Jokić, Mario Essert, Tihomir Žilić, Vladimir Milić

Računalna matematikaFSB

Travanj 2015.

NAPOMENA: Ova prezentacija dodatak je sadržajupripadajučih “.m” i “.r” datoteka.

Page 2: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Numerički problemiUVOD

On June 4, 1996 an unmanned Ariane 5 rocket launched by the European SpaceAgency exploded just forty seconds after its lift-off from Kourou, French Guiana. Therocket was on its first voyage, after a decade of development costing 7 billion. Thedestroyed rocket and its cargo were valued at 500 million. A board of inquiryinvestigated the causes of the explosion and in two weeks issued a report. It turnedout that the cause of the failure was a software error in the inertial reference system.Specifically a 64 bit floating point number relating to the horizontal velocity of therocket with respect to the platform was converted to a 16 bit signed integer. Thenumber was larger than 32,767, the largest integer storeable in a 16 bit signed integer,and thus the conversion failed.

Page 3: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Numerički problemiUVOD

Numerička matematika je dio matematike koji proučava inumerički rješava matematičke probleme.

Pručava numeričke metode; (→ izražen “algoritamski”karakter), ali i ostala pitanja vezana uz probleme “izračunarješenja”.Ima dugu povijest; dobiva naglasak sa razvojem računala;danas igra ključnu ulogu u dijelovima inženjerstva (simulacije,analiza, sinteza, optimiranje,... na računalu).

Osnovni ciljevi ovog predavanja:

Podsjetiti se na neke uzroke grešaka u računuIlustrirati neke od numeričkih problema na primjerima uMATLABU i R-uBiti (postati) svjestan nekih osnovnih problema numeričkematematike

Page 4: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Svojstva problema koji se rješavapostojanje (jedinstvenog) rješenjaosjetljivost rješenja na perturbacije u podacima

Pitanja vezana u numeričku metodu rješavanjakonvergencijabrzina konvergencijetočnost i stabilnost metodesloženost metode (broj računskih operacija, zauzećememorije,...)pogodnost za specijalna računala (npr., paralelna)...

Page 5: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

PrimjerSimulacija slobodnog pada

Model (jednadžba gibanja)

dvdt = g − cd

m v2

cd=koeficijent otpora zrakaAnalitičko rješenje (za v(0) = 0)

v(t) =√g m

cdtanh

(√g cdm t

)Numeričko rješenje (jedna mogućnost)

dvdt ≈

∆v∆t = v(ti+1)− v(ti )

ti+1 − ti

v(ti+1) = v(ti )+[g−cdm v(ti )2](ti+1−ti )

Page 6: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Tipovi grešaka

Greške zbog polaznih aproksimacijaGreške modela (pojednostavljenja (zamemarivanja,aproksimacije, redukcija), linearizacija)Greške metode (beskonačni procesi se zamijenjuju konačnim)

Greške diskretizacijeGreške odbacivanja (eng. truncation)

Greške u polaznim podacima (teorija perturbacije)

Greške zaokruživanja (teorija grešaka zaokruživanja)

Stabilan algoritam: točnost izračunatih podataka približno jednakatočnosti polaznih podataka

Page 7: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Tipovi grešaka

Greške modela

Pojednostavljenja prilikom modeliranja: zamemarivanja,aproksimacije, redukcija, linearizacija,...Neuklonjive su, a vrlo često se i svjesno unose. Treba bitisvjestan i posljedica! (u okviru cilja kojem model služi)Donošenje dobrih (optimalnih) odluka usprkosnepoznanicama: robusnost. Znanstvene discipline (i izvanužih okvira numeričke matematike): Robusno optimiranje,robusno upravljanje

Page 8: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Tipovi grešakaGreške modela

Page 9: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Tipovi grešakaGreške modela

[Drmač, Hari, Marušić, Rogina, Singer, Singer] Numerička analiza

Page 10: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Tipovi grešakaGreška diskretizacije

Zamjena beskonačnog konačnim; kontinuuma diskretnim skupom

dvdt

= g −cdm

v2

dvdt

≈∆v∆t

=v(ti+1) − v(ti )

ti+1 − ti

v(ti+1) = v(ti ) + [g −cdm

v(ti )2](ti+1 − ti )

Page 11: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Tipovi grešakaGreške metode i zaokruživanja

Greške metode (beskonačni procesi se zamjenjuju konačnim);Greške diskretizacije; Greške odbacivanja; Greške u polaznimpodacima; Greške zaokruživanja

x =√2 = 1.414213562373095 . . . → x = 1.414

Greška: |x − x |

f (x) = sin(x) = x−x33! +x5

5!−x77! +x9

9!−. . . → f (x) = x−x33! +x5

5!−x77!

Greška: |f (x)− f (x)|

Konačno (uz greške zaokruživanja):apsolutna greška = |f (x)− f (x)|

Page 12: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Apsolutna i relativna greška

Apsolutna greškaEaps = |x − x |

Relativna greškaErel = |x − x |

|x |

Često točna vrijednost x nije poznata, pa se koristi “ograda” za|x − x |.

Relativna greška nezavisna je od skaliranja |x−x ||x | = |αx−αx |

|αx | , α ∈ R.

Kažemo da x aproksimira x do p značajnih znamenki, gdje je pnjaveći prirodan broj za koji vrijedi |x−x |

|x | < 1210−p.

Page 13: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Greške kod elementarnih računskih opeacija

u, v → približne vrijednosti u, v

δu := u − u, δv := v − v

δ(u ± v)(u ± v) = δu ± δv

u ± v

|δ(u × v)||u × v | ≈

|δu||u| + |δv |

|v |

|δ(u/v)||u/v | ≈

|δu||u| −

|δv ||v |

“Najopasnija” operacija može biti zbrajanje: relativna pogreškarezultata nije omeđena relativnim pogreškama argumenata.

Page 14: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Aitmetika s pomičnom točkom

Zapis broja s pomičnom točkom i binarnom sustavu (IEEEdouble-precision format)

x = ±(1 + f )2e

f je mantisa; 0 ≤ f < 1 (f ima maksimalno 52 bita)e je eksponent; e je cijeli broj u intervalu −1022 ≤ e ≤ 1023

Konačnost mantise f je ograničenje na preciznost.Konačnost eksponenta e je ograničenje na veličinu.

IEEE double-precision format:riječ od 64 bita: 52 za f , 11 za e, 1 za predznak

Page 15: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Aritmetika s pomičnom točkom

Prikaz raspodjele pozitivnih brojeva za slučaj mantise od 3 bita ieksponenta e koji je cijeli broj u intervalu −4 ≤ e ≤ 3.

Page 16: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Aritmetika s pomičnom točkom

Ako neki račun daje broj veći od realmax: prekoračenje (eng.overflow)Ako neki račun daje daje broj manji od realmin: potkoračenje(eng. underflow)

Page 17: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Aritmetika s pomičnom točkomStrojni epsilon

Strojni epsilon je udaljenost od broja 1 do sljedećeg većegbroja u konačnoj aritmetici s pomičnom točkom.Neka je t broj bitova u mantisi. Tada je ε = 2−t

Maksimalna relativna greška kad se rezultat aritmetičkihoperacija zaokruži na najbliži broj je ε

2 .MATLAB: eps(

110

)2

= 0.000110011001100110 . . .0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1daje 0 (“false”)3 == (0.3/0.1) daje 0 (“false”)

Page 18: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Aitmetika s pomičnom točkomPRIMJER, polinom

1 x = 0 . 9 8 8 : . 0 0 0 1 : 1 . 0 1 2 ;2 y = x .^7−7∗x .^6+21∗ x .^5−35∗x .^4+35∗ x .^3−21∗x .^2+7∗x

−1;3 p l o t ( x , y )

Page 19: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Aitmetika s pomičnom točkomPrimjer greške zaokruživanja iz linearne algebre

Promotrimo sustav linearnih jednadžbi

17x1 + 5x2 = 221.7x1 + 0.5x2 = 2.2

Napomena: Matrica A je singularna, ali sustav ima rješenje.Rješenje: x1 = 1, x2 = 1

1 A=[17 5 ; 1 . 7 0 . 5 ] ;2 b=[22; 2 . 2 ] ;3 x=A\b

Odgovor u MATLAB-u (uz napomenu da je matrica “skorosingularna”):x=-1.05888.0000

Page 20: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Numerika i sustavi linearnih jednanžbi

Ax = b

Rješenje: x = A−1b.Bolje je koristiti druge metode rješavanja (npr. Gaussovaeliminacija sa pivotiranjem, LU faktorizacija). U MATLABu:A \ b.

Primjer

7x = 21

1 x = 217 = 3

2 x = 7−1 × 21 = 0.142857× 21 = 2.99997

Page 21: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Numerika i sustavi linearnih jednanžbiUvjetovanost sustava, broj uvjetovanosti matrice

Sustav: Ax = bx∗ = numeričko rješenje u konačnoj aritmeticix = egzaktno rješenje

Greška: e = x − x∗Rezidual: r = b − Ax∗e = 0 ⇔ r = 0

e i r nisu nužno oboje istovremeno mali!

Page 22: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Numerika i sustavi linearnih jednanžbiUvjetovanost sustava, broj uvjetovanosti matrice

Odnos veličine reziduala r i veličine greške e kvatificiran je brojemuvjetovanosti matrice (kondicijski broj, eng.: condition number).Ako se perturbiraju koeficijeti u sustavu linearnih jednadžbi, kolikose mijenja rjšenje?

Originalan sustav

Ax = b

Perturbiran sustav

A(x + δx) = b + δbA δx = δb

Page 23: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

kratak “intermezzo”: vektorske i matrične norme

Za x ∈ Rn : ‖x‖p :=( n∑

i=1|xi |p

) 1p, 1 ≤ p <∞,

Euklidska norma (2-norma):

‖x‖2 =√x>x =

√x21 + x22 + . . . x2n

Inducirane matrične norme

‖A‖p := maxx 6=0

‖Ax‖p‖x‖p

‖A‖2 =√λmax (A∗A) = σmax (A)

Page 24: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Numerika i sustavi linearnih jednanžbiUvjetovanost sustava, broj uvjetovanosti matrice

Sustav: Ax = b

M = maxx 6=0

‖Ax‖‖x‖

m = minx 6=0

‖Ax‖‖x‖ (m = 0 ako je A singularna matrica)

Page 25: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Numerika i sustavi linearnih jednanžbiUvjetovanost sustava, broj uvjetovanosti matrice

Originalan sustav

Ax = b

Perturbiran sustav

A(x + δx) = b + δbA δx = δb

Iz definicije M i m slijedi:‖b‖ ≤ M‖x‖‖δb‖ ≥ m‖δx‖

⇓ za m 6= 0‖δx‖‖x‖ ≤ κ(A)‖δb‖

‖b‖

Broj uvjetovanosti matrice (Kondicijski broj, eng. condition number)

κ(A) = ‖A‖ ‖A−1‖ (‖A‖ = M, ‖A−1‖ = 1m )

Page 26: PrimjerikrozraduMATLAB-uiR-u AndrejJokić,MarioEssert ... · PDF fileNumericki problemi - Primjeri kroz rad u MATLAB-u i R-u Author: Andrej Jokic, Mario Essert, Tihomir ilic, Vladimir

Numerika i sustavi linearnih jednanžbiUvjetovanost sustava, broj uvjetovanosti matrice

Broj uvjetovanosti matrice (Kondicijski broj, eng. conditionnumber)

κ(A) = ‖A‖ ‖A−1‖ (‖A‖ = M, ‖A−1‖ = 1m )

Ako je κ(A) velik, matrica A je “skoro singularna” matrica.