primjerikrozradumatlab-uir-u andrejjokić,marioessert ... · pdf filenumericki problemi -...
TRANSCRIPT
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.
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.
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
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)...
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 )
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
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
Tipovi grešakaGreške modela
Tipovi grešakaGreške modela
[Drmač, Hari, Marušić, Rogina, Singer, Singer] Numerička analiza
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 )
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)|
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.
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.
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
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.
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)
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”)
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 )
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
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
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!
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
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)
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)
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 )
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.