Aplikovaná matematika a fyzikáln´ı výpocty
Transkript
Aplikovaná matematika a fyzikálnı́ výpočty Poznámky k přednášce Jan Stebel 9. prosince 2015 Obsah 1 Typy a zdroje numerických chyb 2 Základnı́ pojmy z lineárnı́ algebry 2.1 Vektorové prostory . . . . . . . . . . . . . . 2.2 Matice . . . . . . . . . . . . . . . . . . . . . 2.2.1 Leslieho populačnı́ model . . . . . . . 2.3 Soustavy lineárnı́ch rovnic . . . . . . . . . . 2.4 Metody pro řešenı́ soustav lineárnı́ch rovnic 2.4.1 Gaussova eliminace . . . . . . . . . . 2.4.2 Iteračnı́ metody . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Aproximace a interpolace funkcı́ 3.1 Úlohy nejmenšı́ch čtverců . . . . . . . . . . . . . . 3.1.1 Lineárnı́ regrese . . . . . . . . . . . . . . . . 3.1.2 Nelineárnı́ metoda nejmenšı́ch čtverců (NLS) 3.2 Interpolace . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Po částech lineárnı́ interpolace . . . . . . . . 3.2.2 Lagrangeova interpolace . . . . . . . . . . . 3.2.3 Hermiteova polynomiálnı́ interpolace . . . . 3.2.4 Interpolace kubickým splinem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 10 11 13 13 13 . . . . . . . . 14 15 17 17 18 19 19 20 21 4 Numerický výpočet integrálu 22 4.1 Newton-Cotesovy vzorce . . . . . . . . . . . . . . . . . . . . . 23 4.2 Gaussova kvadratura . . . . . . . . . . . . . . . . . . . . . . . 25 4.3 Výpočet integrálů se singularitami . . . . . . . . . . . . . . . . 25 1 5 Numerické řešenı́ nelineárnı́ch rovnic 5.1 Princip iteračnı́ch metod . . . . . . . . . . . 5.2 Metoda prostých iteracı́ pro rovnici g(x) = x 5.3 Metoda půlenı́ intervalu . . . . . . . . . . . 5.4 Newtonova metoda (metoda tečen) . . . . . 5.5 Srovnánı́ . . . . . . . . . . . . . . . . . . . . 5.6 Metoda sečen . . . . . . . . . . . . . . . . . 5.7 Newtonova-Raphsonova metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 26 26 27 28 29 30 31 6 Obyčejné diferenciálnı́ rovnice 6.1 Rovnice a soustavy prvnı́ho řádu . . . . . . 6.2 Rovnice vyššı́ch řádů . . . . . . . . . . . . . 6.3 Řešenı́ vybraných typů ODR . . . . . . . . . 6.4 Aplikace . . . . . . . . . . . . . . . . . . . . 6.4.1 Lineárnı́ oscilátor . . . . . . . . . . . 6.4.2 Logistická rovnice . . . . . . . . . . . 6.4.3 Kinetika enzymatických reakcı́ . . . . 6.4.4 Lotkův-Volterrův model dravec-kořist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 33 34 35 37 37 38 38 39 7 Numerické metody pro obyčejné diferenciálnı́ rovnice 39 7.1 Základnı́ numerické metody . . . . . . . . . . . . . . . . . . . 40 7.2 Analýza numerických metod . . . . . . . . . . . . . . . . . . . 41 1 Typy a zdroje numerických chyb Mnoho praktických problémů se dá převést na nějakou matematickou úlohu (např. soustavu rovnic, hledánı́ kořenů polynomu a pod.). Ne všechny matematické úlohy však majı́ analytické řešenı́, tedy takové, které dává exaktnı́ odpověd’ (např. jako čı́slo nebo funkce). Analytické řešenı́ může být přı́liš obtı́žné nebo zbytečné počı́tat přesně. Přı́klad. Vı́me, že Eulerova konstanta má přibližnou hodnotu e = 2.718. Tato hodnota je důležitá pro výpočet funkce ex , která se vyskytuje v mnoha vzorcı́ch a aplikacı́ch. Málokdy ovšem potřebujeme znát jejı́ přesnou hodnotu, stačı́ nám obvykle prvnı́ch několik cifer v jejı́m desetinném rozvoji. Přibližnou hodnotu čı́sla e lze zı́skat napřı́klad částečným součtem řady N ∞ X X 1 1 ≈ n! n=0 n! n=0 pro dostatečně velké N . 2 (1) Numerické metody se zabývajı́ výpočtem přibližného řešenı́ v přiměřeném čase s použitı́m dostupných prostředků. Jedná se obvykle o iteračnı́ proces— opakuje se, dokud nenı́ dosaženo požadovaného kritéria (přesnost, tolerance, počet iteracı́ apod.) Při použitı́ numerických metod je důležité vědět, jaké (a jak velké) mohou vzniknout chyby. Pokud bude celková chyba pod naši rozlišovacı́ schopnost, jejı́ přı́tomnost nám nevadı́. Numerická analýza je matematická disciplı́na zabývajı́cı́ se studiem efektivity metod, tj. zda daná metoda konverguje k přesnému řešenı́, jak rychle, za jakých omezenı́. Chyby způsobené člověkem se někdy dajı́ eliminovat. Jedná se typicky o chybu nebo nepřesnost ve vstupnı́ch datech (neznámé materiálové koeficienty, kinetické konstanty a pod.), použitı́ chybného vzorce nebo o chyby v počı́tačovém programu. Numerické chyby naproti tomu nelze odstranit, ale lze je mı́t pod kontrolou. Rozlišujeme chyby: • zaokrouhlovacı́: důsledek omezeného počtu platných cifer v počı́tačové reprezentaci čı́sel • diskretizačnı́: důsledek aproximace nebo zanedbánı́ v numerické metodě Přı́klad. S pomocı́ rovnice (1) a N = 4 zı́skáme přibližnou hodnotu čı́sla e: e≈1+ 1 1 1 1 + + + = 2.7083. 1! 2! 3! 4! V počı́tači nebo na kalkulačce bychom tuto hodnotu reprezentovali např. čı́slem: 2.70833333. Tato hodnota v sobě obsahuje jednak chybu diskretizačnı́ (důsledkem zanedbánı́ sčı́tanců v nekonečné řadě): . 2.7083 − e = −0, 009948495 a jednak chybu zaokrouhlovacı́ 2.70833333 − 2.7083 = −0.000000003. Zaokrouhlovacı́ chyba je tedy oproti diskretizačnı́ chybě zanedbatelná. 3 Počı́tačová reprezentace čı́sel. Počı́tače převádějı́ veškeré informace na posloupnosti nul a jedniček. Elementárnı́ datová jednotka, nabývajı́cı́ hodnoty 0 nebo 1, se nazývá bit. • Celá čı́sla reprezentujeme jako n-tici bitů (obvykle 16, 32 nebo 64 bitů): Např. pomocı́ 16 bitů lze reprezentovat čı́sla 0...216 − 1 = 65535. Aby bylo možné pracovat i se zápornými čı́sly, od výsledné hodnoty se odečte 215 , takže 16bitová celá čı́sla mohou být v rozsahu −215 = −32768...32767 = 215 − 1. • Reálná čı́sla reprezentujeme pomocı́ trojice (znaménko s, exponent k a mantisa d): (−1)s ×d×2k . Rozlišujeme jednoduchou a dvojitou přesnost (32, resp. 64 bitů). U dvojité přesnosti je rezervováno 52 bitů pro mantisu, 11 bitů pro exponent a 1 bit pro znaménko. Jelikož 211 = 2048, exponenty mohou být v rozsahu −1024...1024, a tedy absolutnı́ velikost . reprezentovaných čı́sel může být řádově max. 21024 = 1.798 × 10308 . Z . čı́sla 252 pak lze odvodit počet platných cifer: 2−52 = 2.2 × 10−16 , tedy u dvojité přesnosti máme max. 16 platných cifer. Čı́slo 2−52 se označuje jako strojová přesnost a značı́ se symbolem ε. Přı́klad. Velké zaokrouhlovacı́ chyby vznikajı́ sčı́tánı́m velkého a malého čı́sla nebo odčı́tánı́m dvou podobných čı́sel. • V dvojité přesnosti dostaneme: 1e10 + 1e − 10 = 1e10 1.00000000000000123 − 1 = 1e − 15 • Kvadratická rovnice x2 + 49.99x − 0.5 = 0 má kořeny x1 = −50 a x2 = 0.01. Pokud bychom rovnici řešili s přesnostı́ na 3 platné cifry, dostali bychom: ( √ −50, 2500 −50 ± 50 −50 ± . = = x1,2 = 2 2 0. Mı́ry chyb At’ už majı́ chyby jakýkoliv původ, je vhodné je kvantifikovat. Necht’ x značı́ přesnou hodnotu nějaké veličiny a x0 je přibližná hodnota zı́skaná např. numerickou metodou. Absolutnı́ chyba je definována jako |x0 − x|. 4 Z absolutnı́ chyby ovšem nenı́ patrné, jak je velká ve srovnánı́ se samotnou hodnotou x. Proto se zavádı́ také relativnı́ chyba: |x0 − x| . |x| V praxi ovšem neznáme hodnotu x, proto se např. v iteračnı́ch procesech počı́tá relativnı́ chyba pomocı́ po sobě jdoucı́ch iteracı́: |xi+1 − xi | . |xi+1 | Přı́klad. Mnoho numerických metod je založeno na Taylorově rozvoji funkce: f (x + h) = f (x) + hf 0 (x) + h2 00 hn f (x) + . . . + f (n) (x) + Rn , 2! n! kde zbytek Rn lze vyjádřit např. vztahem Rn = hn+1 (n+1) f (ξ), (n + 1)! kde ξ ∈ (x, x + h), resp. ξ ∈ (x + h, x) (je-li h < 0). Pokud je f (n+1) omezená v okolı́ x, pak platı́: Rn = O(hn+1 ), tedy existujı́ konstanty C > 0 a h0 > 0 takové, že |Rn | ≤ Chn+1 ∀h ∈ (0, h0 ). Přı́klad. Výpočet e−x , x > 0 pomocı́ Taylorova rozvoje v bodě 0: ex = 1 − x + x2 x3 − + ... 2! 3! Počı́táme-li tento součet v počı́tačové aritmetice, pak při každém sčı́tánı́ vznikne zaokrouhlovacı́ chyba, tj. teoreticky při sečtenı́ celé řady dostaneme chybu ε.1 + εx + ε x2 x3 + ε + . . . = εex . 2! 3! Relativnı́ zaokrouhlovacı́ chyba rovna εex = εe2x . e−x . Použı́váme-li dvojitou přesnost (ε = 2.2 × 10−16 ), pak pro x = 18 bude relativnı́ zaokrouhlovacı́ chyba cca. 96 % (pro menšı́ x to bude ještě horšı́)! 5 Naproti tomu při výpočtu ex sčı́tánı́m Taylorovy řady vznikne relativnı́ zaokrouhlovacı́ chyba εex = ε. ex Pro záporné exponenty se tedy tento postup nehodı́. Drobnou modifikacı́ dostaneme následujı́cı́ algoritmus, který je již numericky stabilnı́: e−x = 1 1 = 2 x x e 1 + x + 2! + x3 3! + ... , Se zaokrouhlovacı́mi chybami bude výsledek 1 e−x , = ex ± εe−x 1±ε relativnı́ chyba tedy bude O(ε). Přı́klad. Numerický výpočet derivace. Z Taylorova rozvoje lze odvodit např. tyto diferenčnı́ vzorce: • dopředná diference: f 0 (x) = f (x + h) − f (x) + O(h), h f 0 (x) = f (x) − f (x − h) + O(h), h • zpětná diference: • centrálnı́ diference: f 0 (x) = f (x + h) − f (x − h) + O(h2 ). 2h Např. derivace funkce f (x) = x1 v bodě x = 1 je f 0 (1) = −1. Pro různé volby kroku h dostaneme následujı́cı́ hodnoty relativnı́ chyby: h dopředná zpětná centrálnı́ 0.1 0.05 0.025 9.1% 4.8% 2.4% 11.1% 5.3% 2.6% 1% 0.25% 0.0625% Je tedy vidět jednak, že centrálnı́ diference je zdaleka nejpřesnějšı́, ale také, že při polovičnı́m kroku se chyby zmenšı́ cca. 2x (u dopředné a zpětné diference), resp. 4x (u centrálnı́ diference), což odpovı́dá teoretickému odhadu (O(h), resp. O(h2 )). 6 2 Základnı́ pojmy z lineárnı́ algebry 2.1 Vektorové prostory Vektorový prostor je neprázdná množina V , pro jejı́ž prvky (vektory) jsou definovány operace ”násobenı́ reálným čı́slem (skalárem)”a ”sčı́tánı́ vektorů”. Tyto operace musı́ navı́c mı́t jisté vlastnosti (komutativnı́, asociativnı́ a distributivnı́ zákony). Vektorový prostor také musı́ obsahovat nulový prvek. Přı́klady vektorových prostorů • R, R2 , Rn s obvyklým sčı́tánı́m vektorů a násobenı́m reálným čı́slem • orientované úsečky v R3 • triviálnı́ prostor {0} • prostor funkcı́, prostor polynomů, prostor polynomů stupně ≤ n Podprostor vektorového prostoru V je taková množina W , která je podmnožinou V a zároveň W je uzavřená vzhledem ke sčı́tánı́ a násobenı́ skalárem, tj. (i) pro každé x, y ∈ W je x + y ∈ W , (ii) pro každé x ∈ W a α ∈ R je αx ∈ W . Lineárnı́ kombinace vektorů x1 , x2 , . . . , xn je vektor α1 x 1 + α2 x 2 + . . . + αn x n , kde α1 , α2 , . . . , αn jsou nějaká reálná čı́sla. Těmto čı́slům řı́káme koeficienty lineárnı́ kombinace. Triviálnı́ lineárnı́ kombinace vektorů x1 , x2 , . . . , xn je taková lineárnı́ kombinace, která má všechny koeficienty nulové. Netriviálnı́ lineárnı́ kombinace je taková, že alespoň jeden jejı́ koeficient je nenulový. Přı́klady • Triviálnı́ lineárnı́ kombinace je vždy rovna nulovému vektoru. • Výraz 2(1, 0) + 2(0, 2) + (−1)(2, 4) je netriviálnı́ lineárnı́ kombinace vektorů (1, 0), (0, 2) a (2, 4). Povšimněme si však, že tato lineárnı́ kombinace je rovna nulovému vektoru. 7 Konečnou množinu vektorů x1 , . . . , xn nazýváme lineárně závislou, pokud existuje netriviálnı́ lineárnı́ kombinace těchto vektorů, která je rovna nulovému vektoru. Stručně řı́káme, že vektory x1 , . . . , xn jsou lineárně závislé. Množina vektorů x1 , . . . , xn se nazývá lineárně nezávislá, pokud nenı́ lineárně závislá. Lineárnı́ (ne)závislost lze zavést také pro nekonečné množiny vektorů: Množina je lineárně závislá, pokud v nı́ existuje konečně mnoho vektorů, které jsou lineárně závislé. Přı́klady • Nulový vektor a jakákoliv množina obsahujı́cı́ nulový vektor jsou lineárně závislé, nebot’ 1.0 je netriviálnı́ lineárnı́ kombinace, která je rovna 0. • Funkce cos(2x), cos2 x a 1 jsou lineárně závislé, nebot’ cos(2x) − 2 cos2 x + 1 = 0 ∀x ∈ R. Lineárnı́ obal konečné množiny vektorů je množina všech lineárnı́ch kombinacı́ těchto vektorů. Lineárnı́ obal nekonečné množiny je sjednocenı́ lineárnı́ch obalů všech jejı́ch konečných podmnožin. Lineárnı́ obal množiny M značı́me hM i. Báze vektorového prostoru V je lineárně nezávislá podmnožina B ⊂ V , pro kterou platı́ hBi = V . Každý vektor tedy lze napsat (jednoznačně) jako lineárnı́ kombinaci prvků báze. Koeficientům této lineárnı́ kombinace řı́káme souřadnice vektoru v bázi. Každý vektorový prostor má bázi a všechny jeho báze majı́ stejný počet prvků nebo jsou nekonečné. Dimenze vektorového prostoru V je počet prvků báze tohoto prostoru. Označujeme ji symbolem dim V . 2.2 Matice (Reálná) matice typu (m, n) je a1,1 a1,2 a2,1 a2,2 A= am,1 am,2 symbol . . . a1,n . . . a2,n j=1,...,n = (aij )i=1,...,m , .. . . . . am,n kde pro i = 1, . . . , m a j = 1, . . . , n jsou aij reálná čı́sla (nazývajı́ se prvky matice A). Matice stejného typu sčı́táme a násobı́me reálnými konstantami 8 po složkách. Nulová matice O je matice, která má všechny prvky nulové. Matici typu (n, n) nazýváme čtvercovou maticı́. Množina všech reálných matic typu (m, n) tvořı́ vektorový prostor a značı́me ji Rm×n . Matice A ∈ Rm×n se nazývá • hornı́ trojúhelnı́ková, pokud pro každé i = 1, . . . , m a j = 1, . . . , i−1 platı́: ai,j = 0, • dolnı́ trojúhelnı́ková, pokud pro každé i = 1, . . . , m a j = i+1, . . . , n platı́: ai,j = 0, • diagonálnı́, pokud je hornı́ i dolnı́ trojúhelnı́ková. • transponovaná matice k matici B = (bi,j ) ∈ Rn×m , jestliže bi,j = aj,i , i = 1, . . . , n, j = 1, . . . , m. Značı́me B = A> . 0 0 0 0 0 0 ! 0 0 0 ! 0 0 0 0 0 0 0 0 0 ! Obrázek 1: Hornı́ trojúhelnı́ková, dolnı́ trojúhelnı́ková a diagonálnı́ matice. Hodnost matice A značı́me rank(A) a definujeme jako (maximálnı́) počet lineárně nezávislých řádků matice A. Pro každou matici platı́, že rank(A> ) = rank(A), což znamená, že hodnost matice je rovna také počtu lineárně nezávislých sloupců. Součinem AB matic A ∈ Rm×n a B ∈ Rn×p je matice C ∈ Rm×p , jejı́ž prvky ci,j , i ∈ {1, . . . , m}, j ∈ {1, . . . , p}, jsou dány vzorcem ci,j = n X ai,k bk,j = ai,1 b1,j + ai,2 b2,j + . . . = ai,n bn,j . k=1 Poznámka: Součin matic nenı́ komutativnı́, tj. obecně AB 6= BA. Čtvercovou matici I = (ei,j ) ∈ Rn×n nazýváme jednotkovou maticı́, pokud pro jejı́ prvky platı́: ei,j = 0 pro i 6= j a ei,j = 1 pro i = j. Matici B ∈ Rn×n nazveme inverznı́ maticı́ k matici A ∈ Rn×n , pokud platı́ AB = I = BA. 9 Tuto matici značı́me symbolem B = A−1 . Pokud existuje A−1 , pak matici A nazýváme regulárnı́. V opačném přı́padě se A nazývá singulárnı́ matice. Determinant matice A = (ai,j ) ∈ Rn×n je čı́slo X det A = (sgn π)a1,i1 a2,i2 · · · an,in , π=(i1 ,i2 ,...,in ) kde π značı́ permutaci n prvků a sgn π jejı́ znaménko. V uvedeném vzorci se sčı́tá přes všechny permutace n prvků, tj. jedná se o n! sčı́tanců. Determinant je nulový právě tehdy, když matice je singulárnı́. Čı́slo λ ∈ C se nazývá vlastnı́m čı́slem matice A ∈ Cn×n , jestliže existuje nenulový vektor u ∈ Cn takový, že Au = λu. Vektor u se pak nazývá vlastnı́ vektor matice A přı́slušný vlastnı́mu čı́slu λ. Všechna vlastnı́ čı́sla matice A tvořı́ jejı́ spektrum, které se značı́ σ(A). Čı́slo λ je vlastnı́m čı́slem A právě tehdy, má-li soustava (A − λI) netriviálnı́ řešenı́, tj. právě tehdy, je-li A − λI singulárnı́, což je ekvivalentnı́ podmı́nce det(λI − A) = 0. Polynom χA (λ) := det(λI − A) se nazývá charakteristický polynom matice A. Čı́slo λ je tedy vlastnı́m čı́slem A, je-li kořenem χA . Poznamenejme, že polynom s reálnými koeficienty může mı́t komplexnı́ kořeny, a reálná matice může proto mı́t komplexnı́ vlastnı́ čı́sla. Jeli ovšem reálná matice symetrická, pak jsou všechna jejı́ vlastnı́ čı́sla reálná. Matice a lineárnı́ zobrazenı́. Matici A ∈ Rm×n si lze představit jako objekt, který libovolnému vektoru v ∈ Rn jednoznačně přiřadı́ vektor w = Av ∈ Rm . A tedy reprezentuje zobrazenı́ z Rn do Rm . Protože platı́ vztahy A(u + v) = Au + Av a A(αu) = α(Au), jedná se o zobrazenı́ lineárnı́. Napřı́klad tzv.rotačnı́ matice cos θ sin θ − sin θ cos θ otočı́ vektor v ∈ R2 o úhel θ ve směru hodinových ručiček. 2.2.1 Leslieho populačnı́ model Použitı́ matic a vlastnı́ch čı́sel demonstrujeme na následujı́cı́m přı́kladu. Uvažujme časový vývoj populace samiček nějakého živočišného druhu, u nějž je sledován 10 počet jedinců v určitých věkových skupinách. Řekněme, že vektor pn ∈ RK obsahuje početnost věkových skupin [0, τ ), [τ, 2τ ), . . . , [(K − 1)τ, ∞) v čase nτ . Přı́růstek populace v čase (n + 1)τ bude dán jednak stárnutı́m, tj. n pn+1 i+1 = si pi , i = 1, . . . , K − 1, kde si ≥ 0 je pravděpodobnost přežitı́ i-té věkové skupiny, a jednak reprodukcı́: pn+1 = f1 pn1 + f2 pn2 + · · · + fK pnK . 1 Zde fi ≥ 0 značı́ plodnost (mı́ru reprodukce) i-té věkové skupiny. Tyto vztahy lze zapsat maticově: f1 f2 . . . fK−1 fK n+1 n s1 0 . . . p1 0 0 p1 .. 0 s2 . . . . 0 0 .. , . = . . . . .. .. pn .. .. . . . pn+1 K K 0 0 0 sk 0 nebo také zkráceně pn+1 = Lpn . Matice L se nazývá Leslieho matice a má tu vlastnost, že jejı́ největšı́ vlastnı́ čı́slo je jednoduché a kladné. Označı́me-li toto vlastnı́ čı́slo λ a přı́slušný vlastnı́ vektor v, pak pro n → ∞ platı́: PK 0 pi v. pn ≈ eλn Pi=1 K i=1 vi Populace tedy exponenciálně roste (λ > 1), stagnuje (λ = 1) nebo exponenciálně vymı́rá (λ < 1), přičemž asymptoticky se rozloženı́ věkových skupin blı́žı́ poměrně vektoru v. 2.3 Soustavy lineárnı́ch rovnic V této kapitole ztotožnı́me vektory z Rn s maticemi typu (n, 1), tj. a ∈ Rn znamená totéž jako a ∈ Rn×1 . Maticovou rovnost Ax = b, kde A ∈ Rm×n , x = (x1 , . . . , xn )> ∈ Rn a b = (b1 , . . . , bm ) ∈ Rm , nazýváme soustavou m lineárnı́ch rovnic o n neznámých. Matici A nazýváme maticı́ soustavy, vektor b nazýváme vektorem pravých stran a vektor x řešenı́m soustavy. Připı́šeme-li k matici soustavy do dalšı́ho sloupce vektor b (pro přehlednost oddělený svislou čarou), dostáváme matici (A|b) ∈ Rm×(n+1) , kterou nazýváme rozšı́řenou maticı́ soustavy. 11 Věta 2.1 (Frobeniova). Soustava Ax = b má řešenı́ právě tehdy, když rank(A) = rank(A|b), tj. když hodnost matice soustavy se rovná hodnosti rozšı́řené matice soustavy. Existuje-li v matici b aspoň jeden prvek nenulový, řı́káme, že soustava Ax = b je nehomogennı́. Jsou-li všechny prvky v matici b nulové, nazýváme soustavu rovnic homogennı́ a zapisujeme ji takto: Ax = 0. Množina M0 všech řešenı́ homogennı́ soustavy Ax = 0 s n neznámými tvořı́ podprostor vektorového prostoru Rn . Libovolné řešenı́ v ∈ Rn nehomogennı́ soustavy lineárnı́ch rovnic Ax = b o n neznámých se nazývá partikulárnı́ řešenı́ této soustavy. Pokud zaměnı́me matici b za nulovou matici stejného typu, dostáváme homogennı́ soustavu Ax = O, kterou nazýváme přidruženou homogennı́ soustavou k soustavě Ax = b. Věta 2.2. 1. Necht’ v je partikulárnı́ řešenı́ nehomogennı́ soustavy Ax = b a u je libovolné řešenı́ přidružené homogennı́ soustavy Ax = 0. Pak v + u je také řešenı́m soustavy Ax = b. 2. Necht’ v a w jsou dvě partikulárnı́ řešenı́ nehomogennı́ soustavy Ax = b. Pak v − w je řešenı́m přidružené homogennı́ soustavy Ax = 0. Věta 2.3. Necht’ v je partikulárnı́ řešenı́ soustavy Ax = b a M0 je vektorový prostor všech řešenı́ přidružené homogennı́ soustavy Ax = 0. Pak pro množinu M všech řešenı́ soustavy Ax = b platı́: M = {v + u; u ∈ M0 }. Věta 2.4 (Cramerovo pravidlo). Necht’ A je čtvercová regulárnı́ matice. Pak pro i-tou složku řešenı́ soustavy Ax = b platı́: αi = det Bi , det A kde matice Bi je shodná s A až na i-tý sloupec, který je zaměněn za sloupec pravých stran. 12 2.4 Metody pro řešenı́ soustav lineárnı́ch rovnic Nynı́ uvedeme několik postupů, které se běžně použı́vajı́ při počı́tačovém řešenı́ soustav. Tyto metody se dajı́ rozdělit na přı́mé (např. Gaussova eliminace, LU rozklad, QR rozklad, singulárnı́ rozklad) a iteračnı́ (např. klasické iteračnı́ metody – Jacobiova, Gauss-Seidelova, metody Krylovových podprostorů – m. sdružených gradientů, m. GMRES, m. BiCG). 2.4.1 Gaussova eliminace Řešenı́ soustavy lineárnı́ch rovnic Gaussovou eliminačnı́ metodou spočı́vá v převedenı́ na jednoduššı́ soustavu, která má stejné řešenı́, pomocı́ operacı́: • prohozenı́ rovnic, • násobenı́ rovnice nenulovým čı́slem, • přičtenı́ libovolného násobku nějaké rovnice k jiné rovnici. Postup znázornı́me schematicky pomocı́ rozšı́řené matice soustavy: 1. Přı́mý chod: neznámé v ”levém!dolnı́m trojúhelnı́ku” ! postupně eliminujeme ! ! ∼ 0 ∼ 0 0 0 ∼ 0 0 0 0 0 0 0 0 0 0 2. Zpětný chod: neznámé v ”pravém ! postupně eliminujeme ! ! ! hornı́m trojúhelnı́ku” 0 0 0 0 0 0 0 ∼ 0 0 0 0 0 0 0 0 0 0 ∼ 0 0 0 0 0 0 0 0 0 0 0 0 ∼ 0 0 0 0 0 0 0 0 0 Gaussova eliminace je univerzálnı́ metoda, kterou lze použı́t pro libovolnou regulárnı́ matici. Pro velké matice algoritmus vykoná O(n3 ) násobenı́ čı́sel, což pro velké n může být limitujı́cı́ faktor. Dalšı́ nevýhodou Gaussovy eliminace je, že výpočet musı́ proběhnout celý, při předčasném ukončenı́ tedy nelze zı́skat žádnou informaci o celém řešenı́. 2.4.2 Iteračnı́ metody Principiálnı́ odlišnost iteračnı́ch metod od metod přı́mých spočı́vá v možnosti ukončit výpočet, jakmile je dosaženo požadované přesnosti. Vstupem je kromě matice A ∈ Rn×n a vektoru b ∈ Rn také počátečnı́ odhad x0 ∈ Rn , tolerance τ > 0 a přı́padně maximálnı́ počet iteracı́ M . Iteračnı́ metoda pak generuje 13 posloupnost vektorů x1 , x2 , ... do té doby, než je dosaženo zastavovacı́ho kritéria, např.: kb − Axk k < τ nebo k = M. kbk Klasické iteračnı́ metody se použı́vajı́ spı́še jako pomocné algoritmy, nebot’ obecně konvergujı́ poměrně pomalu. Metody Krylovových podprostorů majı́ společnou vlastnost, totiž že (v přesné aritmetice) naleznou přesné řešenı́ po max. n iteracı́ch. Rychlost konvergence (poklesu chyby) závisı́ obecně na čı́sle podmı́něnosti matice A, které je definováno výrazem κ(A) = |λ1 | . λ1 ,λ2 ∈σ(A) |λ2 | max Zmı́nı́me vlastnosti třı́ z těchto metod: • Metoda sdružených gradientů (CG) je určena pro symetrické pozitivně definitnı́ matice1 . Je pamět’ově nenáročná, nebot’ v průběhu celého výpočtu si ukládá pouze 4 vektory. Při každé iteraci se provádı́ jedno násobenı́ maticı́ A, jinak nenı́ potřeba celou matici držet v paměti. • Zobecněná metoda minimálnı́ch reziduı́ (GMRES) je určena pro obecné regulárnı́ matice. Na rozdı́l od CG generuje při každé iteraci dalšı́ pomocný vektor, jejı́ pamět’ová náročnost tedy roste lineárně s počtem iteracı́. Z praktických důvodů se proto použı́vá restartovaná metoda GMRES, při které se v paměti udržuje pouze poslednı́ch l vektorů. • Metoda bikonjugovaných gradientů (BiCG) funguje také pro libovolnou regulárnı́ matici a má konstantnı́ pamět’ovou náročnost (srovnatelnou s CG). Nenı́ ovšem zaručena jejı́ konvergence, může totiž dojı́t k předčasnému zastavenı́. V tom přı́padě je nutné bud’ zvolit jiný počátečnı́ odhad nebo použı́t jinou metodu. 3 Aproximace a interpolace funkcı́ V této kapitole se budeme zabývat různými způsoby, jak zı́skat funkci ze sady dat. Budeme tedy hledat funkci určitého typu (lineárnı́, polynomiálnı́ a 1 Matice A je pozitivně definitnı́, pokud pro každý nenulový vektor v ∈ Rn platı́ v · Av > 0. 14 pod.), jejı́ž graf procházı́ několika zadanými body nebo se od těchto bodů co nejméně odchyluje. Pro začátek ještě upřesnı́me použı́vané pojmy: • Interpolace je přibližné určenı́ hodnoty funkce v bodě, který ležı́ uvnitř intervalu (nebo obecněji množiny), na němž jsou zadány hodnoty. • Extrapolace znamená určenı́ hodnoty funkce vně intervalu (množiny), na kterém jsou zadány hodnoty. • Aproximacı́ se rozumı́ nalezenı́ funkce, která je v nějakém smyslu blı́zká zadaným bodům, ale nemusı́ těmito body procházet. 3.1 Úlohy nejmenšı́ch čtverců V této kapitole se budeme zabývat soustavami lineárnı́ch rovnic, které obecně nemajı́ jednoznačné řešenı́. Pro matici A ∈ Rn×m a pravou stranu b ∈ Rn hledáme vektor x ∈ Rm tak, aby Ax ≈ b v jistém smyslu. Je-li m < n, pak odpovı́dajı́cı́ soustava má vı́ce rovnic než neznámých a nazývá se přeurčená. Pro takové soustavy často neexistuje žádné řešenı́. V přı́padě, že m > n, řı́káme, že soustava je nedourčená, a obvykle má nekonečně mnoho řešenı́. Cı́lem metody nejmenšı́ch čtverců je nalézt vektor x, který minimalizuje součet kvadrátů odchylek: n X (bi − (Ax)i )2 = (b − Ax) · (b − Ax). i=1 Nutná podmı́nka na minimum—nulová derivace podle x—pak vede na soustavu rovnic A> (Ax − b) = 0. Motivacı́ pro úlohy nejmenšı́ch čtverců může být také jejich fyzikálnı́ význam. Pokud b reprezentuje naměřená nebo jinak zı́skaná data, pak téměř jistě tato data obsahujı́ nějakou chybu. Cı́lem pak je nalézt co nejmenšı́ změnu f pravé strany (reprezentujı́cı́ chybu v datech) tak, aby x bylo řešenı́m soustavy Ax = b + f . Požadavek minimalizovat normu kf k pak vede k definici následujı́cı́ úlohy. 15 Definice. Necht’ A ∈ Rn×m a b ∈ Rn . Problém nejmenšı́ch čtverců (LS) je úloha nalézt x ∈ Rm takové, aby byla minimálnı́ kf k za podmı́nky Ax = b + f . Zkratka LS pocházı́ z anglického least squares — minimalizuje se zde euklidovská norma, tj. odmocnina ze součtu kvadrátů prvků rezidua f = Ax − b. Poznamenejme ještě, že lze také uvažovat tzv. úplný problém nejmenšı́ch čtverců, kde předpokládáme, že chyba je obsažena také v koeficientech matice A a hledáme tedy korekce E a f s minimálnı́mi normami tak, aby (A + E)x = b + f . Úplným problémem nejmenšı́ch čtverců se však zde nebudeme zabývat. Připomeňme nynı́ Frobeniovu větu, z nı́ž plyne, že soustava Ax = b má řešenı́ právě tehdy, když rank(A) = rank(()A|b), což lze interpretovat tak, že vektor b je lineárnı́ kombinacı́ sloupců matice A. Zároveň platı́, že sloupce matice A tvořı́ bázi množiny R(A) := {Ay; y ∈ Rm }. Soustava je tedy řešitelná tehdy (a jen tehdy), když b ∈ R(A). V obecném přı́padě je třeba uvažovat ortogonálnı́ projekci b|R(A) vektoru b na množinu R(A). Věta 3.1. Necht’ A ∈ Rn×m a b ∈ Rn . Pak problém nejmenšı́ch čtverců má právě jedno řešenı́ x ∈ Rm , které má minimálnı́ normu kxk. Toto řešenı́ je dáno vztahy Ax = b|R(A) , x ∈ R(A> ). Vlastnost x ∈ R(A> ) znamená, že x je lineárnı́ kombinace řádkových vektorů matice A. Pro řešenı́ problému LS se často použı́vá tzv. soustava normálnı́ch rovnic. Věta 3.2. Necht’ A ∈ Rn×m a b ∈ Rn . Pak x ∈ Rm je řešenı́ problému LS právě tehdy, když je řešenı́m soustavy normálnı́ch rovnic A> Ax = A> b. Pozn.: Má-li A plnou sloupcovou hodnost, pak je matice A> A regulárnı́ a platı́: x = (A> A)−1 A> b = A† b, kde A† je tzv. pseudoinverze A. Vztah x = A† b má platnost i tehdy, když A nemá plnou sloupcovou hodnost. Dále zmı́nı́me nejčastějšı́ aplikaci úloh nejmenšı́ch čtverců. 16 3.1.1 Lineárnı́ regrese Předpokládejme, že jsou dány dvojice čı́sel (x1 , y1 ), . . . , (xn , yn ). Vı́me-li, že mezi veličinami x a y je lineárnı́ závislost, pak řešı́me úlohu nalezenı́ čı́sel a, b ∈ R tak, aby zadané dvojice čı́sel ležely co nejblı́že přı́mky y = ax + b. V ideálnı́m přı́padě tedy a, b řešı́ soustavu y1 = ax1 + b x1 1 y1 .. .. a .. .. neboli . . = . . . b xn 1 yn yn = axn + b, Tuto soustavu lze řešit ve smyslu nejmenšı́ch čtverců, tj. pomocı́ soustavy normálnı́ch rovnic, která má tvar P 2 P P xi xi y i a P xi P = xi n yi b (ve všech sumách sčı́táme přes i = 1, . . . , n). Jejı́m řešenı́m je dvojice P P P 2P P P P yi − xi xi yi xi n xi yi − xi yi P P P P , b= . a= n x2i − ( xi )2 n x2i − ( xi )2 Obecněji je možnéPuvažovat tzv. polynomiálnı́ regresi, kdy hledáme polynomiálnı́ funkci y = pk=0 ak xk , která ležı́ nejblı́že zadaným bodům (xi , yi ), i = 1, . . . , n. 3.1.2 Nelineárnı́ metoda nejmenšı́ch čtverců (NLS) Metoda LS předpokládá lineárnı́ vztah mezi daty {xi } a {yi }. Toto omezenı́ lze odstranit—hledáme pak obecně nelineárnı́ funkci f (x, β), která má opět minimalizovat součet kvadrátů odchylek od zadaných dat: n X i=1 (yi − f (xi , β))2 . Vektor β zde představuje neznámé parametry, na nichž funkce f může záviset komplikovaným (nelineárnı́m) způsobem. Nelineárnı́ metoda LS úlohu nalezenı́ optimálnı́ho β převádı́ na iteračnı́ proces, při kterém se postupně zpřesňuje počátečnı́ odhad vektoru. V každém kroce tohoto procesu se funkce f nahradı́ funkcı́, která na β závisı́ lineárně: Je-li dáno β, pak lze provést následujı́cı́ aproximaci: X ∂f f (x, β) ≈ f (x, β) + (x, β) · (βj − β j ), ∂β j j 17 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 0.0 0.2 0.4 0.6 0.8 1.0 Obrázek 2: Nelineárnı́ metoda nejmenšı́ch čtverců, f (x, β1 , β2 ) = |x + β1 |β2 . x f (x) x0 x1 x2 x3 1.0 1.5 2.5 3.5 0.5 2.25 0.75 1.5 y0 y1 y2 y3 Tabulka 1: Přı́klad tabulky dat pro interpolaci. kde výraz napravo od symbolu ”≈”je lineárnı́ vzhledem k prvkům vektoru β. Iteračnı́ proces pak můžeme definovat následovně: 1. Zvolı́me β 0 . 2. Použijeme LS na linearizovanou funkci (s β := β 0 ). 3. Zı́skáme tak nový vektor β 1 . 4. Opět použijeme LS, tentokrát na funkci linearizovanou v bodě β := β 1 . 5. Opakujeme postup do té doby, než se β ustálı́. Poznamenejme, že úspěšnost procesu závisı́ na tom, jak dobře bylo zvoleno β 0 . Pokud by totiž β 0 bylo přı́liš daleko od optimálnı́ hodnoty, může se stát, že cyklus nezkonverguje. 3.2 Interpolace Necht’ jsou dány body (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), napřı́klad jako v tabulce 1. Body xi , i = 0, . . . , n nemusı́ být rozmı́stěny rovnoměrně, budeme 18 však předpokládat, že jsou uspořádány vzestupně, tj. xi < xi+1 . Našı́m cı́lem je nalézt vhodnou funkci f tak, aby splňovala f (x0 ) = y0 , f (x1 ) = y1 , ... f (xn ) = yn . (2) Podle toho, jaký zvolı́me druh funkce, mluvı́me o různých typech interpolace. 3.2.1 Po částech lineárnı́ interpolace Funkci f můžeme zvolit tak, aby byla lineárnı́ na každém úseku [xi , xi+1 ], i = 0, . . . , n − 1. Pro x ∈ [xi , xi+1 ] tedy definujeme f (x) = x − xi xi+1 − x yi+1 + yi , xi+1 − xi xi+1 − xi (3) viz např. obrázek 3. Tato funkce je velice jednoduchá, má však nevýhodu, že v bodech xi nenı́ hladká (nelze v nich sestrojit tečnu). 3.0 2.5 2.0 1.5 1.0 0.5 0.0 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 Obrázek 3: Po částech lineárnı́ interpolace dat z tabulky 1. 3.2.2 Lagrangeova interpolace Jiná možnost volby interpolačnı́ funkce je polynom Pn stupně n. Lagrange odvodil postup pro výpočet tohoto polynomu: Pn (x) = y0 L0 (x) + y1 L1 (x) + . . . + yn Ln (x) = n X yi Li (x), i=0 XX (x − x0 )(x − x1 ) . . . (x − xi−1 ) (x−Xx X i )(x − xi+1 ) . . . (x − xn ) X Li (x) = . XX XX (xi − x0 )(xi − x1 ) . . . (xi − xi−1 ) (x xX i− i )(xi − xi+1 ) . . . (xi − xn ) 19 Napřı́klad pro data z tabulky 1 dostaneme následujı́cı́ Lagrangeův interpolačnı́ polynom (viz obr. 4): (x − 1.5)(x − 2.5)(x − 3.5) (1 − 1.5)(1 − 2.5)(1 − 3.5) (x − 1)(x − 2.5)(x − 3.5) + 2.25 (1.5 − 1)(1.5 − 2.5)(1.5 − 3.5) (x − 1)(x − 1.5)(x − 3.5) + 0.75 (2.5 − 1)(2.5 − 1.5)(2.5 − 3.5) (x − 1)(x − 1.5)(x − 2.5) + 1.5 (3.5 − 1)(3.5 − 1.5)(3.5 − 2.5) 107 3 49 2 6157 235 = x − x + x− . 60 4 240 16 P3 (x) = 0.5 3.0 2.5 2.0 1.5 1.0 0.5 0.0 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 Obrázek 4: Lagrangeův interpolačnı́ polynom pro data z tabulky 1. Pro některá data, zejména pokud neodpovı́dajı́ polynomiálnı́ funkci, Lagrangeova interpolace nenı́ vhodná, viz přı́klad na obrázku 6. 3.2.3 Hermiteova polynomiálnı́ interpolace Pro přı́pady, kdy jsou k dispozici nejen hodnoty, ale i derivace ve stejných bodech, může být vhodná Hermiteova interpolace. Předpokládejme tedy, že jsou zadána data (xi , yi , yi0 ), i = 0, . . . , n, např. jako v tabulce 2. Hermiteův interpolačnı́ polynom je polynom P2n+1 stupně 2n + 1, který splňuje 0 P2n+1 (xi ) = yi , P2n+1 (xi ) = yi0 , i = 0, . . . , n. 20 i xi yi yi0 0 1 2 3 1.0 1.5 2.5 3.5 0.5 2.25 0.75 1.5 1 0 -0.5 0.5 Tabulka 2: Data pro Hermiteovu interpolaci. Těmito podmı́nkami je P2n+1 určen jednoznačně. Existuje obecný postup, jak tento polynom vypočı́tat, nebudeme jej zde však uvádět. Pro data z tabulky 2 má Hermiteův polynom stupeň 7 a jeho graf je znázorněn na obrázku 5. 3.0 2.5 2.0 1.5 1.0 0.5 0.0 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 Obrázek 5: Hermiteova interpolace. 3.2.4 Interpolace kubickým splinem Lagrangeova a Hermiteova metoda majı́ mimo jiné jednu nepřı́jemnou vlastnost, totiž že změna 1 hodnoty způsobı́ nutnost přepočı́tat celý interpolačnı́ polynom. Navı́c při vysokém počtu zadaných hodnot roste neúměrně stupeň polynomu a tı́m roste i vliv zaokrouhlovacı́ch chyb při počı́tačovém řešenı́. Tyto nevýhody odstraňujı́ tzv. kubické spliny. Kubický spline je funkce y(x) s těmito vlastnostmi: • procházı́ zadanými body (xi , yi ), i = 0, . . . , n • na každém intervalu (xi , xi+1 ) je y polynom 3. stupně (kubická funkce) • v každém vnitřnı́m bodě xi majı́ obě kubické funkce stejnou derivaci (tečnu) a druhou derivaci (křivost) 21 2.0 2.0 n=5 n=11 1.5 1.5 1.0 1.0 0.5 0.5 0.0 0.0 0.5 0.5 1.0 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 n=7 2.0 1.0 2.0 1.5 1.0 0.5 0.0 0.5 1.0 Obrázek 6: Interpolace nehladkých dat. Vlevo: Lagrangeova interpolace, vpravo: kubický spline. Tyto vlastnosti představujı́ 4n − 2 podmı́nek pro 4n koeficientů. Pro jednoznačné určenı́ kubického splinu je třeba přidat 2 dodatečné podmı́nky v krajnı́ch bodech. Typicky se volı́ např. následujı́cı́ podmı́nky: a) nulová křivost b) konstantnı́ křivost na [x0 , x1 ] a [xn−1 , xn ] c) lineárnı́ extrapolace křivosti Výpočet koeficientů kubického splinu pak lze realizovat poměrně efektivně. Interpolace splinem je vhodná pro širokou škálu úloh, včetně nespojitých nebo nehladkých dat (viz obr. 6). 4 Numerický výpočet integrálu V této kapitole uvedeme způsoby, jak lze počı́tat určitý integrál Z b I= f (x) dx. a Připomeňme, že analyticky lze spočı́tat jen některé typy integrálů a že postupy se velmi lišı́ v závislosti na tvaru funkce f . Pokud je výpočet nemožný, přı́liš obtı́žný nebo neefektivnı́, použı́vajı́ se přibližné metody výpočtu integrálu, tzv. numerické kvadratury. Budeme předpokládat, že funkce f je na 22 1.5 2.0 intervalu [a, b] spojitá. Numerická kvadratura aproximuje hodnotu integrálu výrazem N X I≈ w i fi , (4) i=0 kde wi ≥ 0 jsou kvadraturnı́ váhy, fi := f (xi ) a xi jsou kvadraturnı́ body. Předpokládáme, že body xi jsou uspořádány vzestupně a platı́ a = x0 < x1 < . . . < xN = b. Vzorec (4) může vzniknout např. když funkci f nahradı́me nějakou jejı́ interpolantou. Kvadraturnı́ vzorce dělı́me na uzavřené (w0 > 0, wN > 0) a otevřené (w0 = wN = 0). Tzv. Newton-Cotesovy vzorce použı́vajı́ rovnoměrné dělenı́ intervalu, tj. x1 − x0 = x2 − x1 = . . . = xN − xN −1 . Mezi jiné často použı́vané patřı́ Gaussovy kvadratury, které majı́ tu vlastnost, že při daném počtu kvadraturnı́ch bodů dávajı́ přesný výsledek pro polynomy nejvyššı́ho možného stupně. Kvadratury lze kombinovat a skládat, tedy nejprve rozdělit interval [a, b] na menšı́ intervaly, na nichž použijeme kvadraturu a výsledky sečteme. Pro numerickou kvadraturu definujeme chybu N X E = I − wi f (xi ) . i=0 Zřejmě platı́, že kvadratura je přesná, pokud E = 0. Řekneme, že kvadratura má řád přesnosti p, jestliže je přesná pro každý polynom stupně nejvýše p. 4.1 Newton-Cotesovy vzorce V této části předpokládáme, že body xi , i = 0, . . . , N jsou rozmı́stěny s krokem h = (a − b)/N , tj. xi = a + ih. V kvadraturnı́ch vzorcı́ch budeme také použı́vat body xi+ 1 := xi + h2 . 2 Obdélnı́kové pravidlo je nejjednoduššı́ kvadratura, která nahrazuje funkci f jejı́ konstantnı́ interpolantou: N = 1, w0 = 0, w1/2 = h, w1 = 0. Tedy I ≈ hf 1 . 2 Z Taylorova rozvoje lze odvodit odhad chyby: h3 E≤ max |f 00 (x)| =: O(h3 f 00 ). 24 x∈[a,b] Protože každý polynom stupně 1 splňuje f 00 ≡ 0, má obdélnı́kové pravidlo řád přesnosti 1. 23 Složené obdélnı́kové pravidlo vznikne opakovaným použitı́m předchozı́ho pravidla na intervalech (x0 , x1 ), (x1 , x2 ), . . . , (xN −1 , xN ). Dostaneme: I ≈ h(f1/2 + f3/2 + · · · + fN −3/2 + fN −1/2 ), E≤ N h3 max |f 00 (x)| = O(h2 f 00 ). 24 x∈[a,b] Lichoběžnı́kové pravidlo spočı́vá v nahrazenı́ funkce f lineárnı́ interpolantou určenou hodnotami v krajnı́ch bodech intervalu: N = 1, w0 = w1 = h2 , I≈ h (f0 + f1 ). 2 Stejně jako u obdélnı́kového pravidla dostaneme odhad chyby E = O(h3 f 00 ) a pravidlo má řád přesnosti 1. Složené lichoběžnı́kové pravidlo má tvar 1 1 I ≈ h( f0 + f1 + f2 + · · · + fN −2 + fN −1 + fN ), 2 2 E = O(h2 f 00 ). Adaptivnı́ lichoběžnı́kové pravidlo postupně zjemňuje dělenı́ intervalu [a, b], přičemž již spočtené hodnoty se využijı́ v dalšı́m výpočtu. Vycházı́ z rekurentnı́ho vzorce: 1 b−a Ik = Ik−1 + k Σk , 2 2 kde Ik je intergrál spočtený složeným lichoběžnı́kovým pravidlem s N = 2k a Σk := f1 + f3 + · · · + f2k −1 . Simpsonovo pravidlo nahrazuje funkci f kvadratickou interpolantou, N = 2, w0 = w2 = h3 , w1 = 43 h: I≈ h (f0 + 4f1 + f2 ), 3 E = O(h5 f (4) ), jedná se tedy o pravidlo 3. řádu přesnosti. 24 4.2 Gaussova kvadratura Gaussovy kvadraturnı́ vzorce jsou navrženy tak, aby pro daný počet dělı́cı́ch bodů dosahovaly co nejvyššı́ho řádu přesnosti. Platı́, že při použitı́ n kvadraturnı́ch bodů je řád Gaussovy kvadratury roven 2n−1. Např. nejjednoduššı́m Gaussovým vzorcem (n = 1) je obdélnı́kové pravidlo. Pro n = 2 má Gaussova kvadratura následujı́cı́ tvar: b − a√ a+b a − b√ a+b b−a f 3+ +f 3+ . I≈ 2 2 2 2 2 Pravidla vyššı́ch řádů se dajı́ nalézt v literatuře. 4.3 Výpočet integrálů se singularitami Pokud funkce f nenı́ spojitá a omezená, pak lze v některých přı́padech použı́t jeden z následujı́cı́ch postupů: • Má-li f v krajnı́m bodě konečnou limitu, např. Z 1 sin x dx, x 0 použijeme obdélnı́kové pravidlo. • Je-li krajnı́m bodem ±∞, provedeme substituci, např. t = 1/x, a použijeme otevřené pravidlo: Z 1/a Z b 1 f (x)dx = f (1/t) dt. 2 a 1/b t • Má-li f v krajnı́m bodě singularitu, provedeme vhodnou substituci. Např. pokud f (x) ≈ (x − a)−γ , γ ∈ [0, 1), zvolı́me substituci t = (x − a)1−γ : Z a 5 b 1 f (x)dx = 1−γ Z (b−a)1−γ 0 γ t 1−γ f t1/(1−γ) + a dt. Numerické řešenı́ nelineárnı́ch rovnic V mnoha oborech se setkáme s úlohami, které lze formulovat pomocı́ rovnice nebo soustavy rovnic typu f (x) = 0 nebo g(x) = x. 25 Pro některé speciálnı́ typy funkcı́ f (např. lineárnı́ nebo kvadratické funkce) existujı́ metody pro vyřešenı́ dané rovnice. Je-li ovšem f , resp. g obecná nelineárnı́ funkce, pak neexistuje univerzálnı́ postup k nalezenı́ řešenı́ x̄. V tomto textu zmı́nı́me některé metody, které naleznou přibližnou hodnotu řešenı́ x̄ na základě iteračnı́ho schématu. Budeme se zabývat nelineárnı́mi funkcemi f a g, o nichž se předpokládá, že jsou spojité. Je-li nějaká funkce f spojité na nějakém intervalu I, budeme to značit zápisem f ∈ C(I). Podobně ma-li f na I spojité všechny derivace až do řádu k, pı́šeme f ∈ C k (I). 5.1 Princip iteračnı́ch metod Iteračnı́ metody pro řešenı́ nelineárnı́ch rovnic generujı́ posloupnost čı́sel {xk }, k = 0, 1, 2, . . ., na základě nějakého (pokud možno jednoduchého) pravidla. Obvykle je třeba zvolit počátečnı́ aproximaci x0 . Definice. Necht’ {xk } je posloupnost čı́sel generovaná numerickou metodou pro řešenı́ nelineárnı́ rovnice typu f (x) = 0 nebo g(x) = x a necht’ x̄ je přesné řešenı́ této rovnice. Řekneme, že daná metoda je konvergentnı́, pokud limk→∞ xk = x̄. V praxi ovšem výpočet musı́me v určitém okamžiku ukončit, nejlépe když dosáhneme požadované přesnosti, nebo když je jasné, že metoda nekonverguje. Důležitá je proto volba zastavovacı́ho kritéria, které určuje, zda prvek xk je již dostatečně blı́zko přesnému řešenı́ x̄. Obvykle se volı́ některé z následujı́cı́ch kritériı́: xk −xk−1 • xk−1 < ε • |f (xk )| < ε Symbol ε > 0 je volitelný parametr určujı́cı́ požadovanou přesnost zı́skané aproximace. 5.2 Metoda prostých iteracı́ pro rovnici g(x) = x Metoda prostých iteracı́ generuje posloupnost hodnot opakovaným dosazovánı́m do iteračnı́ funkce g. Algoritmus je následujı́cı́: 1. Zvolı́me x0 ∈ (a, b), ε > 0 a M > 0. 2. Pro k = 0, 1, 2, ..., M : • spočteme xk+1 := g(xk ). 26 g(x) a=0 x0 x1 x2 x3 b Obrázek 7: Metoda prostých iteracı́. • Pokud |xk − xk−1 | < ε, výpočet ukončı́me. Konvergence metody závisı́ jak na vlastnostech funkce g tak na volbě počátečnı́ aproximace. Následujı́cı́ věta zaručuje existenci a jednoznačnost pevného bodu. Věta 5.1. Necht’ g : [a, b] → [a, b] je spojitá funkce na intervalu [a, b]. Pak g má na tomto intervalu pevný bod ξ, tj. g(ξ) = ξ. Pokud navı́c existuje q ∈ [0, 1) takové, že |g(x) − g(y)| ≤ q|x − y| ∀x, y ∈ [a, b], (5) pak g má na [a, b] právě jeden pevný bod. Pro libovolné x0 ∈ [a, b] posloupnost {xk }, xk := g(xk−1 ) konverguje k pevnému bodu ξ a platı́: |xk − ξ| ≤ q k |x0 − ξ|. Poznámka: Nerovnost (5) (nazývá se také Lipschitzova podmı́nka) je splněna napřı́klad tehdy, když g má na intervalu [a, b] derivaci a platı́ |g 0 (x)| ≤ q < 1 ∀x ∈ [a, b]. 5.3 Metoda půlenı́ intervalu Metoda půlenı́ intervalu (nebo také metoda bisekce) vycházı́ z následujı́cı́ho teoretického výsledku. Věta 5.2 (Bolzanova). Necht’ funkce f : [a, b] → R je spojitá na intervalu [a, b] a necht’ f nabývá v koncových bodech intervalu hodnot s opačnými znaménky, tj. f (a)f (b) < 0. Potom uvnitř tohoto intervalu existuje alespoň jeden bod x̄ takový, že f (x̄) = 0. V přı́padě, že prvnı́ derivace funkce f má na tomto intervalu konstantnı́ znaménko, pak se zde nacházı́ právě jeden takový bod. 27 f (x) f (x) f (x) x2 a x0 b a x0 = b x1 a = x1 x0 = b Obrázek 8: Prvnı́ 3 kroky metody půlenı́ intervalu. Algoritmus metody je následujı́cı́: 1. Zvolı́me a, b tak, aby f (a)f (b) < 0, ε > 0 a M > 0. 2. Pro k = 0, 1, 2, . . . , M : • xk := 12 (a + b) • Pokud |f (xk )| < ε, pak výpočet skončı́. • Jinak položı́me a := xk (je-li znaménko f (xk ) stejné jako f (a), tj. f (xk )f (a) > 0) nebo b := xk (pokud f (xk )f (b) > 0). Jedná se o poměrně univerzálnı́ a robustnı́ metodu (lze ji použı́t prakticky pro libovolnou spojitou nelineárnı́ funkci). Jejı́ nevýhodou je velmi pomalá konvergence. 5.4 Newtonova metoda (metoda tečen) Tato metoda je určena pro rovnici f (x) = 0 a spočı́vá v nahrazenı́ funkce f tečnou. Rovnice tečny v bodě xk je y = f (xk ) + f 0 (xk )(x − xk ). Definujeme-li xk+1 jako xovou souřadnici průsečı́ku tečny s osou x, dostaneme 0 = f (xk ) + f 0 (xk )(xk+1 − xk ), a po úpravě xk+1 = xk − f (xk ) . f 0 (xk ) Algoritmus lze souhrnně zapsat následovně: 1. Zvolı́me x0 ∈ (a, b), ε > 0 a M > 0. 28 f (x) x2 x1 x0 Obrázek 9: Newtonova metoda. 2. Pro k = 0, 1, 2, ..., M : • spočteme xk+1 := xk − f (xk ) . f 0 (xk ) • Pokud |f (xk )| < ε, výpočet ukončı́me. Newtonova metoda nenı́ obecně konvergentnı́. Platı́ však následujı́cı́ tvrzenı́. Věta 5.3. Necht’ f je dvakrát spojitě diferencovatelná funkce na intervalu (a, b) a x̄ ∈ (a, b) je kořen f , tj. f (x̄) = 0. Pokud navı́c f 0 (x̄) 6= 0, pak existuje δ > 0 takové, že Newtonova metoda konverguje pro libovolné x0 ∈ (x̄−δ, x̄+δ). Z věty vyplývá, že metoda konverguje pro dostatečně blı́zkou počátečnı́ aproximaci. Poloměr intervalu konvergence δ závisı́ na vlastnostech funkce f . 5.5 Srovnánı́ Nynı́ demonstrujeme použitı́ výše prezentovaných metod na rovnici 1 x − sin x = , x ∈ [0, 4]. 2 Úlohu můžeme zapsat ve tvaru f (x) := x − sin x − 1 1 = 0 nebo g(x) := + sin x = x. 2 2 Nejprve ověřı́me předpoklady pro použitı́ metod: • Funkce f je spojitá na intervalu [0, 4], f (0) = − 21 < 0, f (4) = 3.5 − sin(4) > 0, na intervalu (0, 4) tedy ležı́ kořen a lze použı́t metodu půlenı́ intervalu. 29 • Dále f je dvakrát spojitě diferencovatelná na intervalu (0, 4) jejı́ derivace je nenulová: f 0 (x) = 1 − cos x > 0. Konvergovat tedy bude i Newtonova, pokud zvolı́me vhodnou počátečnı́ aproximaci. • Funkce g nesplňuje podmı́nku (5) na celém intervalu [0, 4]. Omezı́me-li se však na interval [0.5, 2.5], pak pro x z tohoto intervalu je |g 0 (x)| = | cos x| < cos(0.5) < 1 a g(x) ∈ [0.5, 2.5]. Zde tedy bude konvergovat metoda prostých iteracı́. V tabulce 3 je porovnána rychlost konvergence jednotlivých metod. U metody prostých iteracı́ si lze povšimnout, že ačkoliv x0 ∈ / [0.5, 2.5], po několika krocı́ch se hodnota xk dostane do požadovaného intervalu a v něm pak již zůstává. k 0 1 2 3 4 5 6 7 a 0 0 1 1 1.25 1.375 1.4375 1.46875 b 4 2 2 1.5 1.5 1.5 1.5 1.5 xk 2 1 1.5 1.25 1.375 1.4375 1.46875 1.484375 (a) Půlenı́ intervalu k 0 1 2 3 4 5 6 7 xk 4 -0.256802 0.246011 0.743537 1.176896 1.423419 1.489160 1.496670 k 0 1 2 3 4 5 6 7 xk 4 1.425804 1.500266 1.497305 1.497300 1.497300 1.497300 1.497300 (b) Prosté iterace (c) Newtonova metoda Tabulka 3: Srovnánı́ rychlosti konvergence. Tučně jsou uvedeny platné čı́slice výsledku. 5.6 Metoda sečen Newtonova metoda ve svém algoritmu potřebuje derivaci funkce f . Může se ovšem stát, že výpočet derivace je obtı́žný nebo časově náročný. V tom přı́padě je vhodné derivaci nahradit diferencı́, což je myšlenkou metody sečen: f 0 (xk ) ≈ f (xk ) − f (xk−1 ) . xk − xk−1 Na rozdı́l od Newtonovy metody je potřeba na začátku zvolit dvě hodnoty: x0 a x1 . 1. Zvolı́me x0 , x1 ∈ (a, b), ε > 0 a M > 0. 30 2. Pro k = 1, 2, ..., M : −xk−1 • spočteme xk+1 := xk − f (xk ) f (xxkk)−f . (xk−1 ) • Pokud |f (xk )| < ε, výpočet ukončı́me. Konvergence metody sečen je zaručena za stejných podmı́nek jako ve Větě 5.3. 5.7 Newtonova-Raphsonova metoda Newtonovu metodu lze zobecnit také pro řešenı́ soustav nelineárnı́ch rovnic ve tvaru f (x) = 0. Předpokládejme, že f : Rn → Rm , tedy máme soustavu m rovnic pro n neznámých. Taylorův rozvoj funkce f dává vztah f (x) ≈ f (xk ) + J(xk )(x − xk ), kde ∂f1 ∂x1 J(xk ) = ... ∂fm ∂x1 ... ∂f1 ∂xn ... ∂fm ∂xn .. (x ) . k je tzv. Jacobiova matice funkce f . Výsledný vztan pro tzv. NewtonovuRaphsonovu metodu je xk+1 = xk − [J(xk )]† f (xk ), kde symbol A† značı́ tzv. zobecněnou inverzi, neboli pseudoinverzi matice A. V praxi se ovšem mı́sto pseudoinverze řešı́ soustava lineárnı́ch rovnic: J(xk )r k = f (xk ), xk+1 = xk − r k . Pokud je Jacobiova matice obdélnı́ková nebo singulárnı́, hledá se r k ve smyslu nejmenšı́ch čtverců. 6 Obyčejné diferenciálnı́ rovnice Fyzikálnı́ zákony bilance stejně jako mnoho procesů v přı́rodnı́ch vědách jsou matematicky popsány pomocı́ diferenciálnı́ch rovnic. Jejich řešenı́m pak dostaneme popis stavu nebo časového vývoje daného systému při předepsaných vstupnı́ch datech. V této kapitole nejprve shrneme obecné poznatky z teorie obyčejných diferenciálnı́ch rovnic a poté se zaměřı́me na některé konkrétnı́ rovnice a jejich interpretaci. 31 Definice. (i) (Obyčejnou) diferenciálnı́ rovnicı́ (ODR) pro funkci y = y(x) rozumı́me rovnici tvaru F (x, y, y 0 , y 00 , . . . , y (n) ) = 0, (6) kde F je reálná funkce n + 2 proměnných. Řádem ODR (6) nazveme řád nejvyššı́ derivace funkce y, která se v rovnici (6) vyskytuje. (ii) Soustava ODR je vztah ve tvaru F (x, y, y 0 , . . . , y (n) ) = 0, kde F : R × Rn × · · · × Rn → Rn . Přı́klad. (i) Vztah y 00 = −2y 0 − 2y + 2x + 2 (7) lze ekvivalentně zapsat jako rovnici F (x, y, y 0 , y 00 ) = 0, kde F (x, y, . . . , y 00 ) := y 00 + 2y 0 + 2y − 2x − 2. Jedná se proto o obyčejnou diferenciálnı́ rovnici 2. řádu. (ii) Soustava y10 = y1 − 2y1 y2 , y20 = −y2 − 3y1 y2 (8) je podle Definice 6 soustavou ODR 1. řádu, nebot’ je ekvivalentnı́ rovnosti F (x, y, y 0 ) = 0, kde 0 0 y1 − y1 + 2y1 y2 y1 y1 0 0 y= , F (x, y, y ) := . , y = y20 y20 + y2 + 3y1 y2 y2 Definice. • Řešenı́m diferenciálnı́ rovnice (6) rozumı́me funkci y definovanou na nějakém neprázdném otevřeném intervalu I, která má v každém bodě intervalu I vlastnı́ n-tou derivaci a jejı́ž hodnoty spolu s hodnotami derivacı́ splňujı́ rovnici (6) v každém bodě intervalu I, tj. pro každé x ∈ I platı́ F (x, y(x), y 0 (x), . . . , y (n) (x)) = 0. • Řešenı́ y diferenciálnı́ rovnice (6) je maximálnı́, pokud neexistuje takové řešenı́ z, pro které D(y) $ D(z) a které se na D(y) shoduje s y. (Symbol D(y) zde značı́ definičnı́ obor funkce y.) Přı́klad. Derivovánı́m lze ukázat, že pro libovolné α, β ∈ R je funkce y(x) = x + αe−x sin x + βe−x cos x řešenı́ diferenciálnı́ rovnice (7) na množině I = R. 32 6.1 Rovnice a soustavy prvnı́ho řádu Uvažujme rovnici, resp. soustavu rovnic prvnı́ho řádu s počátečnı́ podmı́nkou y 0 = f (x, y), y(x0 ) = y 0 . (9) Pro tuto úlohu (nazývá se počátečnı́ nebo také Cauchyova úloha) lze stanovit poměrně obecné podmı́nky zaručujı́cı́ existenci alespoň jednoho nebo právě jednoho řešenı́: Věta 6.1 (Peanova). Necht’ I je otevřený interval, H je otevřená množina v Rn , f : I × Rn → Rn je spojitá na okolı́ bodu (x0 , y0 ) ∈ I × H. Pak existuje řešenı́ rovnice (9) na nějakém okolı́ bodu x0 . Peanova věta zaručuje existenci řešenı́ v okolı́ bodu, kde je zadána počátečnı́ podmı́nka. A priori však nenı́ jasné, jak velké toto okolı́ je. Přı́klad. Počátečnı́ úloha y 0 = y 2 , y(0) = y0 ∈ R splňuje předpoklady Peanovy věty, nebot’ funkce f (x, y) := y 2 je spojitá na množině I × H := R × R a bod (0, y0 ) ležı́ v I × H. Pro dostatečně malé δ tedy existuje řešenı́ na intervalu (−δ, δ). Ve skutečnosti je řešenı́m funkce y(x) = 1 y0 1 −x na intervalu (−∞, y10 ). Přı́klad. Rovnice p y 0 = 2 |y| (10) splňuje předpoklady Peanovy věty a má řešenı́ ys (x) = 0 na intervalu (−∞, ∞). Kromě toho však jsou řešenı́m i funkce yc+ (x) = (x − c)2 , x ∈ (c, ∞), yc− (x) = −(x − c)2 , x ∈ (−∞, c), c ∈ R. Tato tři řešenı́ lze na sebe navazovat, a tak pro každou počátečnı́ podmı́nku y(x0 ) = y0 existuje nekonečně mnoho řešenı́. 33 Věta 6.2 (Picardova). Necht’ I je otevřený interval, H je otevřená množina v Rn , f : I × H → Rn je spojitá na nějakém okolı́ bodu (x0 , y 0 ) ∈ I × H a navı́c splňuje Lipschitzovu podmı́nku vzhledem ke 2. proměnné, tj. existuje L > 0 takové, že |f (x, y 1 ) − f (x, y 2 )| ≤ L|y 1 − y 2 | pro každé x ∈ I a y 1 , y 2 ∈ H. Pak existuje právě jedno řešenı́ úlohy (9) na nějakém okolı́ bodu x0 . Lipschitzova podmı́nka je splněna napřı́klad tehdy, když f má omezené parciálnı́ derivace 1. řádu podle y, tedy když pro každé (x, y) ∈ I × H platı́ ∂fi ∂yj (x, y) ≤ L, i, j = 1, . . . , n. Přı́klad. Soustava (8) splňuje předpoklady Picardovy věty, nebot’ funkce y1 − 2y1 y2 f (x, y) := −y2 − 3y1 y2 je spojitá a vzhledem k y diferencovatelná, přičemž parciálnı́ derivace ∂f1 = 1 − 2y2 , ∂y1 ∂f1 = −2y1 , ∂y2 ∂f2 = −3y2 , ∂y1 ∂f2 = −1 − 3y1 ∂y2 jsou omezené, pokud y ležı́ v omezené množině H. Pro každou počátečnı́ podmı́nku tedy bude existovat právě jedno řešenı́. Přı́klad. Rovnice (10) nesplňuje předpoklady Picardovy věty, nebot’ funkce p f (x, y) := 2 |y| nesplňuje Lipschitzovu podmı́nku: Zvolı́me-li L > 0, pak pro pro y1 := 0 a y2 := 2/L2 platı́: √ 2 2 2 2 |f (x, 0) − f (x, 2/L )| = > = L|0 − 2/L2 |. L L To nenı́ překvapenı́m, nebot’ na okolı́ bodu y = 0 má f neomezenou derivaci vzhledem k y. Proto v bodech, kde řešenı́ nabývá hodnoty y = 0 docházı́ k větvenı́. 6.2 Rovnice vyššı́ch řádů Rovnici n-tého řádu y (n) = f (x, y, y 0 , . . . , y (n−1) ) 34 (11) s počátečnı́ podmı́nkou y(x0 ) = y0 , y 0 (x0 ) = y1 , . . . , y (n−1) (x0 ) = yn−1 lze převést na soustavu ODR 1. řádu. Zavedeme-li funkce w0 , . . . , wn−1 : w0 (x) := y(x), w1 (x) := y 0 (x), . . . , wn−1 (x) := y (n−1) (x), pak je rovnice (11) ekvivalentnı́ se soustavou 1. řádu w00 = w1 , w10 = w2 , ... 0 wn−2 = wn−1 , 0 wn−1 = f (x, w0 , . . . , wn−1 ), neboli w1 .. . w0 = , wn−1 f (x, w) w := (w0 , . . . , wn−1 )> . Transformovaná počátečnı́ podmı́nka má tvar w(x0 ) = y 0 , kde y 0 := (y0 , . . . , yn−1 )> . Vlastnosti ODR 1. řádu tedy lze do jisté mı́ry aplikovat také na rovnice a soustavy vyššı́ch řádů. 6.3 Řešenı́ vybraných typů ODR Definice. Rovnice se separovanými proměnnými je rovnice tvaru y 0 = g(y) · h(x). (12) Návod k řešenı́: • Pokud g(c) = 0, je funkce y(x) = c řešenı́m rovnice. • Na intervalech, kde g(y) 6= 0 uvažte R h(x)dx. y0 g(y) = h(x) s následným R dy g(y) = • Nutná je diskuse o možnostech navazovánı́ řešenı́ předchozı́ch dvou typů! 35 Definice. Lineárnı́ ODR prvnı́ho řádu je rovnice tvaru y 0 + p(x)y = q(x), (13) kde p, q jsou spojité funkce na daném intervalu (a, b), a, b ∈ R∗ , a < b Návod k řešenı́: • Násobte rovnici výrazem eP (x) , kde P je primitivnı́ funkce k p na (a, b). • Upravte na levé straně do tvaru derivace součinu. • Integrujte. Definice. Lineárnı́ diferenciálnı́ rovnice druhého řádu s konstantnı́mi koeficienty je rovnice tvaru Ay 00 + By 0 + Cy = f (x), (14) kde A, B, C ∈ R, A 6= 0, a funkce f (x) je spojitá na intervalu (a, b). Pokud je f identicky nulová na (a, b), nazýváme rovnici (14) homogennı́. Přı́pad I: f ≡ 0, rovnice: Ay 00 + By 0 + Cy = 0, obecné řešenı́ yh Pokud charakteristická rovnice Aλ2 + Bλ + C = 0 má: 1. dva různé reálné kořeny λ1 6= λ2 : yh (x) = c1 eλ1 x + c2 eλ2 x 2. jeden dvojnásobný reálný kořen λ: yh (x) = c1 eλx + c2 xeλx 3. dva komplexně sdružené kořeny α ± iβ, β 6= 0: yh (x) = eαx (c1 cos βx + c2 sin βx) Přı́pad II: f 6≡ 0, rovnice: Ay 00 + By 0 + Cy = f (x) Pro řešenı́ y(x) platı́: y(x) = yh (x) + yp (x), kde yh (x) je obecné řešenı́ homogennı́ rovnice (viz předchozı́ přı́pad) a yp (x) je jedno (jakékoliv), tzv. partikulárnı́ řešenı́ rovnice Ay 00 +By 0 +Cy = f (x). Některá partikulárnı́ řešenı́ lze uhodnout“ podle tvaru pravé strany. ” 36 • Je-li f (x) = P (x)eαx , kde α ∈ R a P je polynom, potom existuje polynom Q, st Q = st P , že 1. α 6= λ1 , α 6= λ2 =⇒ yp (x) = Q(x)eαx , 2. α = 6 λ1 , α = λ2 =⇒ yp (x) = xQ(x)eαx , 3. α = λ1 = λ2 =⇒ yp (x) = x2 Q(x)eαx . • Je-li f (x) = eαx (P (x) cos βx + R(x) sin βx), (P , R polynomy), existujı́ polynomy Q, S, stupně nejvýše max(st P, st R), takové, že 1. α + iβ 6= λ1 , α + iβ 6= λ2 =⇒ yp (x) = eαx (Q(x) cos βx + S(x) sin βx), 2. α + iβ = λ1 , α + iβ 6= λ2 =⇒ yp (x) = xeαx (Q(x) cos βx + S(x) sin βx), 6.4 6.4.1 Aplikace Lineárnı́ oscilátor odpor prostředı́ odpor pružiny vnějšı́ vlivy b k y 00 = − y 0 − y + f (x) |{z} m } |{z} m | {z y. . . odchylka od klidové polohy m. . . hmotnost závažı́ k. . . tuhost pružiny b. . . součinitel odporu y=0 y 37 6.4.2 Logistická rovnice y 0 = αy (K − y) , y(0) = y0 y. . . hustota populace α. . . koeficient rychlosti růstu K. . . maximálnı́ stav populace 1 alpha=2 alpha=0.2 alpha=-0.5 alpha=-2 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 2 4 6 8 10 Průběh řešenı́ logistické rovnice (K = 1). Řešenı́: y(x) = K 1+ yK −1 e−αKx 0 6.4.3 Kinetika enzymatických reakcı́ Rovnice pojmenovaná podle L. Michaelise a M. Mentenové popisuje časový vývoj množstvı́ substrátu, který je spotřebováván při enzymatické reakci. − ds Vmax s = , dt Km + s s. . . koncentrace (množstvı́) substrátu Vmax . . . maximálnı́ rychlost reakce Km . . . koncentrace, při nı́ž je rychlost reakce 12 Vmax Vmax 1 2 Vmax Km Rychlost reakce v závislosti na koncentraci substrátu. 38 6.4.4 Lotkův-Volterrův model dravec-kořist y10 = y1 (α − βy2 ) y20 = −y2 (γ − δy1 ) y1 . . . množstvı́ kořisti (králı́cı́) y2 . . . množstvı́ dravců (lišky) • soustava rovnic nemá explicitnı́ řešenı́ • lze řešit přibližně nebo studovat kvalitativnı́ vlastnosti řešenı́ • řešenı́ jsou periodická • rovnovážné řešenı́ (y10 = y20 = 0) 7 Numerické metody pro obyčejné diferenciálnı́ rovnice V této kapitole se budeme zabývat rovnicı́ 1. řádu s počátečnı́ podmı́nkou y 0 (x) = f (x, y(x)), x > 0, y(0) = y 0 , (15) kde y a f jsou funkce nabývajı́cı́ skalárnı́ch nebo vektorových hodnot (ve druhém přı́padě pak mluvı́me o soustavě rovnic). Připomeňme, že do této kategorie úloh spadajı́ také rovnice vyššı́ch řádů, jestliže provedeme speciálnı́ substituci. Budeme předpokládat, že f je spojitá na [0, ∞) × Rn a Lipschitzovská vzhledem k y: ∃L > 0 ∀y 1 , y 2 ∈ Rn ∀x ∈ [0, ∞) : |f (x, y 1 ) − f (x, y 2 )| ≤ L|y 1 − y 2 |. Za těchto podmı́nek má úloha (15) jediné řešenı́ na nějakém intervalu [0, T ]. Pro některé speciálnı́ typy pravé strany f jsme zmı́nili způsoby analytického (přesného) řešenı́. V obecném přı́padě ale neexistuje univerzálnı́ metoda pro nalezenı́ řešenı́ rovnice (15). Protože v mnoha přı́padech je dostačujı́cı́ znát pouze přibližný průběh řešenı́ y, hrajı́ důležitou roli numerické metody. Princip numerických metod je následujı́cı́. Zvolı́me dělenı́ 0 = x0 < x1 < . . . < xN = T intervalu [0, T ]. Pro jednoduchost budeme předpokládat, že uzly xi jsou rozmı́stěny rovnoměrně, tj. xi = ih, kde h := T /N je krok metody. Přesné řešenı́ aproximujeme diskrétnı́mi hodnotami y i ≈ y(xi ), přičemž hodnota y 0 je rovna počátečnı́ podmı́nce pro y(0). Po částech lineárnı́ funkci 39 y y(x) yNh y2 y0 y1 0 = x0 x1 x2 xNh x Obrázek 10: Numerické řešenı́ ODR. určenou hodnotami y i pak nazveme přibližným (numerickým) řešenı́m rovnice (15) (viz obrázek 10). Jednotlivé numerické metody se pak lišı́ pouze ve způsobu, jak ze známých hodnot y 0 , . . . , y k vypočı́tat dalšı́ hodnoty. Rozlišujeme 2 druhy numerických metod: a) Explicitnı́ l-kroková metoda: K výpočtu y i+1 se použı́vá explicitnı́ vzorec použı́vajı́cı́ hodnoty y i , y i−1 , . . . , y i−l+1 ; b) Implicitnı́ l-kroková metoda: Pro výpočet y i+1 vyžaduje řešit obecně nelineárnı́ rovnici závisejı́cı́ na y i+1 , y i , . . . , y i−l+1 . Zatı́mco tedy u explicitnı́ metody se nová hodnota y i+1 spočte prostým dosazenı́m známých hodnot y i , . . . , y i−l+1 do vzorce, implicitnı́ metoda vyžaduje pro výpočet y i+1 vyřešenı́ obecně nelineárnı́ rovnice. Implicitnı́ metody jsou tedy složitějšı́ na implementaci a výpočetně náročnějšı́, majı́ však své výhody, které zmı́nı́me později. 7.1 Základnı́ numerické metody Nejjednoduššı́ metoda je založena na Taylorově rozvoji y(xi+1 ) = y(xi ) + hy 0 (xi ) + O(h2 ). Připomeňme, že nějaká funkce a(h) splňuje a(h) = O(hp ), pokud existuje c > 0 takové, že pro h → 0+ je |a(h)| ≤ chp . Z (15) lze nahradit y 0 (xi ) = f (xi , y(xi )). Zanedbáme-li člen O(h2 ), dostaneme vzorec, který se nazývá explicitnı́ Eulerova metoda: y i+1 = y i + hf (xi , y i ). 40 Tento vztah lze také zapsat ve tvaru y i+1 − y i = f (xi , y i ), h odkud vidı́me souvislost s rovnicı́ (15): derivace y 0 (xi ) je zde nahrazena y −y dopřednou diferencı́ i+1h i . Z obdobného rozvoje y(xi ) = y(xi+1 ) − hy 0 (xi+1 ) + O(h2 ), vycházı́ Implicitnı́ Eulerova metoda: y i+1 = y i + hf (xi+1 , y i+1 ). Dalšı́ implicitnı́ jednokrokovou metodou je Crank-Nicholsonova metoda: y i+1 = y i + 7.2 h f (xi , y i ) + f (xi+1 , y i+1 ) . 2 Analýza numerických metod Pro vhodnou volbu numerické metody pro ODR jsou důležité jejı́ vlastnosti. Zejména nás zajı́má, jak velká je chyba numerického řešenı́ v závislosti na velikosti kroku h a jak se tato chyba vyvı́jı́ v čase. V této sekci budeme značit výrazem y(x; a, z) přesné řešenı́ rovnice y 0 (x) = f (x, y(x)), y(a) = z. (16) Funkce y(x; 0, y 0 ) =: y(x) je pak řešenı́ rovnice (15). Uvažujme nynı́ přibližné řešenı́ zı́skané nějakou numerickou metodou a reprezentované hodnotami y hi ≈ y(xhi ), kde xhi = ih, i = 0, . . . , Nh := T /h. Základnı́ otázkou je, zda rozdı́l mezi y hi a y(xhi ) bude pro dostatečně malý krok h přijatelně malý. To vyjadřuje následujı́cı́ definice Definice. Globálnı́ chyba numerické metody v bodě xhi je čı́slo ehi := y(xhi ) − y hi . Řekneme, že metoda je konvergentnı́, pokud lim max h→0+ i=0,1,...,Nh |ehi | = 0. Metoda je konvergentnı́ řádu p, pokud max |ehi | = O(hp ). i=0,...,Nh 41 y y(x) = y(x; 0, y0 ) y(x; xh1 , yh1 ) eh2 δ2h yh,Nh yh2 y0 yh1 0 = xh0 xh1 xh2 T = xh,N xh Obrázek 11: Globálnı́ a lokálnı́ chyba metody. Globálnı́ chyba vzniká akumulacı́ chyb z předchozı́ch kroků. Tyto chyby vzniklé v jednom kroce lze analyzovat samostatně. Definice. Lokálnı́ chyba metody je výraz δ hi := y(xhi ; xh,i−1 , y h,i−1 ) − y h,i . Dalšı́ možnost vyjádřenı́ chyby spočı́vá v dosazenı́ přesného řešenı́ do rovnice metody. K tomu zavádı́me tzv. diferenčnı́ operátor Lh metody. Pro explicitnı́ Eulerovu metodu je [Lh u](x) := u(x) − u(x − h) − f (x − h, u(x − h)), h tedy [Lh u](xhi ) := u(xhi ) − u(xh,i−1 ) − f (xh,i−1 , u(xh,i−1 )). h Definice. Lokálnı́ diskretizačnı́ chyba metody je τ hi := τ h (xhi ) = [Lh y](xhi ), kde y = y( · ; xh,i−1 , y h,i−1 ) je funkce splňujı́cı́ y(xh,i−1 ) = y h,i−1 . Řekneme, že metoda je konzistentnı́, pokud pro každé x ∈ (0, T ) je lim |τ h (x)| = 0. h→0+ Metoda je konzistentnı́ řádu p, pokud pro každé x ∈ (0, T ) je τ h (x) = O(hp ). 42 Tvrzenı́. Má-li přesné řešenı́ úlohy (16) omezenou druhou derivaci, pak je explicitnı́ Eulerova metoda konzistentnı́ řádu 1. Důkaz. Protože y(xh,i−1 ; xh,i−1 , y h,i−1 ) = y h,i−1 , platı́: δ hi = y(xi ; xi−1 , y h,i−1 ) − y h,i−1 − hf (xi−1 , yh,i−1 ) = hτ hi . Z Taylorova rozvoje y(xhi ; . . .) = y(xh,i−1 ; . . .) + hy 0 (xhi ; . . .) + dostáváme δ hi = a tedy |τ hi | ≤ kde h2 00 y (ξi ; . . .), ξi ∈ (xh,i−1 , xhi ) 2 h2 00 y (ξi ; xh,i−1 , y h,i−1 ), 2 |δih | h ≤ max y 00 (x; xh,i−1 , y h,i−1 ) = Ch, h 2 x∈[0,T ] C := 1 max |y 00 (x; a, z)|. a∈[0,T ] 2 n z∈R x∈[0,T ] Dokázali jsme, že explicitnı́ Eulerova metoda je konzistentnı́ 1. řádu. Definice. Numerická metoda se nazývá stabilnı́, pokud existujı́ kladné konˆ takové, že pro numerické řešenı́ y h s počátečnı́ podmı́nkou y 0 stanty k, ĥ, ∆ a numerické řešenı́ z h s počátečnı́ podmı́nkou y 0 + ∆0 platı́: |y h,i − z h,i | ≤ k|∆0 |, i = 1, 2, . . . , Nh , ˆ a to pro všechna h ∈ (0, ĥ) a |∆0 | ∈ (0, ∆). Stabilita numerické metody znamená, že při malé změně počátečnı́ podmı́nky bude odchylka v numerických řešenı́ch omezená. Tvrzenı́. Explicitnı́ Eulerova metoda je stabilnı́. Důkaz. Označme ∆hi := y h,i − z h,i . Pak platı́: ∆hi = ∆hi−1 + h(f (xh,i−1 , y h,i−1 ) − f (xh,i−1 , z h,i−1 )), a tedy |∆hi | ≤ |∆hi−1 | + hL|∆hi−1 | = (1 + hL)|∆hi−1 |. Opakovánı́m poslednı́ úvahy pro i − 1, i − 2, . . . , 1 dostaneme |∆hi | ≤ (1 + hL)i |∆0 | ≤ ehLi |∆0 | ≤ eLT |∆0 |. 43 (17) Vidı́me, že ačkoliv je metoda stabilnı́, odchylka v numerických řešenı́ch způsobená změnou počátečnı́ podmı́nky ∆0 může růst exponenciálně pro T → +∞. Definice. Numerická metoda se nazývá absolutně stabilnı́, pokud je stabilnı́ s konstantou k = 1. Jak je vidět z (17), explicitnı́ Eulerova metoda obecně nenı́ absolutně stabilnı́. Proto se absolutnı́ stabilita obvykle zkoumá u konkrétnı́ rovnice. Např. pro lineárnı́ rovnici y 0 = λy, y(0) = y0 (18) explicitnı́ Eulerova metoda splňuje ∆hi = (1 + hλ)∆hi−1 = . . . = (1 + hλ)i ∆0 . Pro λ a h takové, že |ΦEE (hλ)| ≤ 1, kde ΦEE (z) := 1 + z, je metoda absolutně stabilnı́. Uvažujeme-li reálné hodnoty λ, pak explicitnı́ Eulerova metoda je absolutně stabilnı́ pro λ < 0 a h ≤ − λ2 , tedy pro dostatečně malý krok h. Pro implicitnı́ Eulerovu metodu platı́ u rovnice (18): ∆hi 1 ∆hi−1 = . . . = = 1 − hλ 1 1 − hλ i ∆0 a metoda je absolutně stabilnı́, pokud |ΦIE (hλ) ≤ 1, kde ΦIE (z) := 1 , 1−z tedy bud’ pro λ < 0 a libovolné h nebo pro λ > 0 a h ≤ λ2 . U Crank-Nicholsonovy metody dostaneme obdobně: !i hλ hλ 1 + 1 + 2 2 ∆hi = ∆hi−1 = . . . = ∆0 , hλ hλ 1− 2 1− 2 odkud plyne, že metoda je absolutně stabilnı́ pokud 1 + z2 |ΦCN (hλ)| ≤ 1, kde ΦCN (z) := , 1 − z2 44 −1 0 0 1 0 Obrázek 12: Oblast absolutnı́ stability pro explicitnı́ Eulerovu, implicitnı́ Eulerovu a Crank-Nicholsonovu metodu. tedy pro všechna h > 0 a λ < 0. Absolutnı́ stabilita je hlavnı́ výhodou implicitnı́ch metod. Lze je proto s výhodou použı́t u úloh, kde by explicitnı́ metoda vyžadovala přı́liš malý krok. Oblast absolutnı́ stability je definována jako množina {z ∈ C; |Φ(z)| ≤ 1}. Pro uvažované metody je tato množina zobrazena v komplexnı́ rovině na obrázku 12. 45
Podobné dokumenty
Sbírka příkladů k předmětu Fyzika a přístrojová - EnviMod
Při psaní jednotek v odborném textu je nutno dodržovat řadu pravidel, která jsou shrnuta
především v ČSN ISO 80000-1. Je však možné se setkat s texty, kde tato pravidla nejsou
dodržována, přičemž ...
Iterační metody, úvod do funkcionální analýzy
Důsledek: Je-li M0 vektorový prostor všech řešenı́ homogennı́ soustavy lineárnı́ch
rovnic A~x “ ~0 s n neznámými, pak dim M0 “ n ´ rank A.
Definice 28 Libovolné řešenı́ ~v P Rn nehomoge...
Stieltjesu˚v integra´l (Kurzweilova teorie) Milan Tvrdy´
Stieltjesově pojednánı́ [60] z let 1894–5, věnovaném souvislostem konvergence řetězových
zlomků a problému, jak popsat rozloženı́ hmoty na hmotné úsečce, jsou-li známy všechny
moment...
Poznámky k přednášce NTIN090 Úvod do složitosti a vyčíslitelnosti
funkce nutné. Instrukce číslo 1 odpovídá zapsání „1“ místo prázdného slova a ukončení práce.
Instrukce 2 až 6 odpovídají pohybu hlavy na konec vstupu a přechodem zpět zpoza konce na
poslední znak v...
Dynamika rotor˚u a základn´ı poznatky na jednoduchém systému
I Přı́prava vstupnı́ch dat
I Vytvořenı́ výpočtového/matematického modelu (lineárnı́ vs. nelineárnı́)
I Řešenı́ matematického modelu — závisı́ na požadovaných výstupech
I Modálnı́ an...
Numerické a geometrické modelován´ı
Zápočet
Zápočet lze zı́skat za jednu z následujı́cı́ch aktivit:
• absolvovánı́ praktických cvičenı́ a splněnı́ podmı́nek (odladěnı́ programu v MATLABu,
vytvořenı́ modelu v systému RHIN...
Univerzita Karlova v Praze Matematicko – fyzikální
Definice. Označme WLk2 (Sobolevův) prostor funkcí f : R → C s periodou
2π, pro které existuje f (k−1) a je absolutně spojitá a f (k) ∈ L2 (0, 2π) .
Věta 2.3.1. Nechť f ∈ C2π (R). Pak následující tv...