1. Úvod do numerické matematiky Tento učební text byl podpořen z Operačního programu Praha- Adaptabilita Irena Sýkorová
Zdroje chyb Reálné problémy, např. fyzikální, ekonomické, biologické, vyjadřujeme matematickým modelem. K řešení matematické úlohy pak užijeme nějakou numerickou metodu. Každá numerická úloha má konečný počet vstupních i výstupních dat a při jejím řešení můžeme provést jen konečný počet operací. Obsahem numerické matematiky jsou především metody, kterými se matematická úloha převádí na numerickou. Při procesu řešení nějakého problému se vždy dopouštíme určitého zjednodušení, z čehož vznikají různé chyby. a) Matematický model je zjednodušením reality, nepřesnosti se říká chyba matematického modelu. b) Místo přesného řešení matematického modelu získáme často jen jeho aproximaci, to je tzv. chyba numerické metody(nekonečný proces nahradíme konečným). c) Výsledek ovlivňují i chyby ve vstupních datech, což jsou například chyby měření. d) Je třeba vzít v úvahu i zaokrouhlovací chyby; ty jsou způsobené uložením čísel v počítači a další zaokrouhlovací chyby vznikají při provádění početních operací. Pokud vybíráme vhodnou numerickou úlohu k řešení nějakého problému, musíme vzít v úvahu otázku konvergence, složitost algoritmu(počet operací), nároky na paměť počítače a stabilitu. Algoritmus je stabilní, jestliže je dobře podmíněný, tj. málo citlivý na chyby ve vstupních datech a numericky stabilní, tj. málo citlivý na zaokrouhlovací chyby vznikající v průběhu výpočtu. Zobrazení čísel v počítači Jsme zvyklí počítat s čísly vyjádřenými v desítkové poziční soustavě. V počítači jsou však čísla uloženavedvojkovésoustavě(pouze0a1)aprokaždéčíslojevyhrazenjenkonečnýpočetmíst.z toho mohou pramenit různé nepřesnosti výpočtu: (1) Převedením čísla z desítkové do dvojkové soustavy se může stát, že číslo s konečným rozvojem je nahrazeno číslem s nekonečným rozvojem(např. číslo 0, 4 je ve dvojkové soustavě periodické,(0,4) 10 =(0,0110) 2 ). (2) Číslo s nekonečným rozvojem je zobrazeno jen s konečným počtem číslic. (3) Při provádění operací mohou výsledek ovlivnit zaokrouhlovací chyby. (4) Pro počítačové operace neplatí asociativní a distributivní zákon. Nemusí platit (x+y)+z= x+(y+z), (x y) z= x (y z), x 1 x =1. Neplatnost asociativního zákona ukážeme na jednoduchém příkladu. Příklad 1: Předpokládejme, že můžeme zobrazit maximálně dvojciferná čísla, a máme za úkol vypočítat82+46 31.Budeme-lipočítatzleva, (82+46) 31= 128 31 nastane chyba, protože číslo 128 už nemůžeme zobrazit. Zatímco, při druhém způsobu uzávorkování, tj. 82+(46 31)=82+15=97 výpočet proběhne bez problémů. Každé nenulové reálné číslo může být jednoznačně vyjádřeno v tzv. normalizovaném tvaru ( ) x=sgn(x) 2 E 1+ a i 2 i, kde E Z, a i {0,1}. 2
Výraz M=1+ a i 2 i se nazývá mantissa a celému číslu E se říká exponent, sgn(x) označuje znaménko čísla x. Reálná čísla jsou v počítači zobrazena v pohyblivé řádové čárce, tj. každé nenulové číslo je zobrazeno ve tvaru x=sgn(x) 2 E ( 1+ ) k a i 2 i, kde E Z, E min E E max, k N, a i {0,1}. Podle standardu IEEE 754(Institute of Electrical and Electronic Engineers) mohou být reálná čísla jsou zobrazována: v jednoduché přesnosti(32 bitů), v dvojnásobné přesnosti(64 bitů), v rozšířeném formátu(80 bitů). Projednoduchoupřesnostsepoužíváslovoodélce32bitů,kdelevýbitjeurčenproznaménko(0 prokladnáčísla,1prozáporná),následujících8bitůjeproexponentazbývajících23bitůsloužík uložení mantisy. ± E a 1,a 2,,a 23 Protožepromantisuplatí1 M <2,tedynejvyššíbitjevždyroven1,nenípotřebatentobit zobrazovat. Vjednoduchépřesnostijemožnézobrazitexponentyod E min = 126do E max =127(jejich počítačová reprezentace obsahuje vždy jedničky i nuly), tedy lze zobrazit normalizovaná čísla x, pro která platí N min x N max -N -N 0 max min N min N max Nejmenšíkladnézobrazitelnénormalizovanéčísloje1,0 2 126 1,2 10 38.Množinazobrazitelných normalizovaných čísel je rozložena nerovnoměrně, kolem nuly je mezera, proto byla rozšířena i o tzv. subnormalní čísla(nelze je vyjádřit v normalizovaném tvaru, mantisa začíná nulou), to jsou číslasnulovýmexponentem.nejmenšíkladnésubnormálníčísloje1,4 10 45. Ve dvojnásobné přesnosti jsou čísla zobrazena podobným způsobem, ale v 64 bitovém slově, kde jejedenbiturčenproznaménko,11bitůproexponentazbývajících52bitůpromantisu. Exponenty 00000000 a 11111111 jsou určeny pro speciální hodnoty, kromě subnormálních čísel sloužítakékoznačenínuly(tujemožnézobrazitdvojímzpůsobemjako+0nebo 0)ačíslapřesahujícírozsahzobrazitelýchčísel,tj. x > N max (tzv.přetečení).koznačenínedefinovanýchoperací slouží tzv. N an(not a number), nezobrazitelné, nedefinované číslo. Znaménkový bit exponent E mantisa význam 0nebo1 0resp.1 00000000 00000000000000000000000 ±0(dvazpůsobyzobrazení) 11111111 00000000000000000000000 ± (dvěrůznéhodnoty) 0resp.1 11111111 nenulovýřetězec NaN chyba 0nebo1 00000000 nenulovýřetězec subnormálníčísla x N min Rozsah kladných zobrazitelných normalizovaných čísel a počet platných dekadických číslic pro jednoduchou a dvojnásobnou přesnost je uveden v následující tabulce. 3
Přesnost od do počet platných dekadických číslic jednoduchá 1,2 10 38 3,4 10 38 7 dvojnásobná 2,2 10 308 1,8 10 308 16 V jednoduché přesnosti můžeme tedy počítat zhruba se sedmi platnými dekadickými číslicemi. Abychom omezili vliv zaokrouhovacích chyb, během výpočtů nezaokrouhlujeme mezivýsledky, počítáme s maximální možnou přesností. Absolutní a relativní chyba Označíme-li x hledanoupřesnouveličinuaxjejíaproximaci,pakabsolutníchyba e a jedána absolutní hodnotou jejich rozdílu e a = x x. Protoževšakpřesnouhodnotu x většinouneznáme,hledámeodhad absolutní chyby ε(x) přibližné hodnoty x x x ε(x). Přesnostlépecharakterizujerelativní chyba e r,poměrabsolutníchybykabsolutníhodnotě přesné veličiny e r = x x x. 0dhad relativní chyby δ(x) přibližné hodnoty x je x x x δ(x). Norma vektoru Aritmetickývektor xjeuspořádaná n-ticereálnýchčísel,tj. x=(x 1,...,x n ).Normaaritmetickéhovektoru x R n jetakovánezápornáfunkce(značíme ),kterásplňujetytopodmínky: (i) x >0prokaždýnenulovývektora x =0pouzepro x=o, (ii) c x = c x prokaždéreálnéčíslo c, (iii) x+y x + y prokaždédvavektoryzr n. Nejčastěji užívané normy vektoru jsou: a) x =max{ x 1, x 2,..., x n },tzv.maximovánorma, b) x 1 = n x i,tzv.oktaedrickánorma, n c) x 2 = x 2 i,tzv.euklidovskánorma. Příklad2:Vypočítámevšechnynormyvektoru x=(1, 2,0,3). x =max{ 1, 2, 0, 3 }=max{1,2,0,3}=3 x 1 = 1 + 2 + 0 + 3 =1+2+0+3=6 x 2 = 1 2 +( 2) 2 +0 2 +3 2 = 1+4+0+9= 14 4
MATLAB norma vektoru v: maximová: >> norm(v,inf) oktaedrická: >> norm(v,1) euklidovská: >> norm(v,2) >> norm(v) PojemnormamůžemezavéstivjinýchprostorechnežjenvR n : i) Vprostorureálnýchčísel Rjenormatotéžcoabsolutníhodnota x = x, x R, ii) vprostoruspojitýchfunkcínauzavřenémintervalu C a,b můžebýtnormadefinovanátakto: f = max a x b f(x), f C a,b. Prostory, ve kterých je definovaná norma, se nazývají normované. Poznámka:Pro u, vznormovanéhoprostoru Msečíslo u v nazývávzdálenostprvků uav. Konvergence Uvažujemenynínějakýnormovanýprostor Maposloupnostprvků v n M, n=1,2,... Řekneme,žeposloupnostprvků(v n )konvergujekv M,tj. v n vpro n (resp. lim n v n= v),jestliže v n v 0 pro n. Řekneme,žeposloupnostprvků(v n )jecauchyovskájestliže v n v m 0 pro n,m. Poznámka:Jestližejeposloupnostkonvergentnívprostoru M,pakjeiCauchyovskávM. Normovaný prostor M se nazývá úplný, jestliže každá Cauchyovská posloupnost je konvergentní v M. Následující normované prostory jsou úplné: 1) M=Rsnormou x = x, 2) M=R n snormami x, x 1, x 2, 3) M=C a,b snormou f = max a x b f(x) (prostorfunkcíspojitýchnauzavřenémintervalu a,b ). Příklad3:Uvažujeme M=(0,1)snormou x = x.pak Mneníúplný. Posloupnost x n = 1 n jecauchyovskávm=(0,1),protožeprokaždé n Nje 1 n (0,1)a 1 n 1 m 0pro n,m.tatoposloupnostvšakneníkonvergentnívm=(0,1),protožejejí 1 limita0nenívmobsažená,tj. lim n n =0(/ M). 5
Banachova věta Některé metody, které budeme používat, jsou založené na následující větě. Věta(Banachova). Nechť Mjeúplnýnormovanýprostor,číslo α (0,1), fjetakovézobrazení Mdo M,prokteréplatí Pak a) Existujejedinýbod x p,prokterý f(x) f(y) α x y prokaždé x,y M. f(x p )=x p. b) Prolibovolnýbod x 0 Mposloupnostbodů konvergujekx p,tj. c) Platí odhady: x n = f(x n 1 ) pro n=1,2,... x p = lim n x n. x k x p αk 1 α x 0 x 1 pro k >1, x k x p α 1 α x k 1 x k pro k >1. Poznámka:Bod x p senazývápevnýbodzobrazení f. 6