matematických úloh N2612 Elektrotechnika a informatika 1802T007 Informační technologie Bc. Zdeněk Kybl RNDr. Dana Černá, Ph.D.
|
|
- Richard Bílek
- před 9 lety
- Počet zobrazení:
Transkript
1 Aplikce pro numerické řešení mtemtických úloh Diplomová práce Studijní progrm: Studijní obor: Autor práce: Vedoucí práce: N2612 Elektrotechnik informtik 1802T007 Informční technologie Bc. Zdeněk Kybl RNDr. Dn Černá, Ph.D. Liberec 2015
2 Applictions for the numericl solution of mthemticl problems Diplom thesis Study progrmme: Study brnch: Author: Supervisor: N2612 Electrotechnology nd informtics 1802T007 Informtion technology Bc. Zdeněk Kybl RNDr. Dn Černá, Ph.D. Liberec 2015
3 Tento list nhrd te originálem zdání.
4 Prohlášení Byl jsem seznámen s tím, že n mou diplomovou práci se plně vzthuje zákon č. 121/2000 Sb., o právu utorském, zejmén 60 školní dílo. Beru n vědomí, že Technická univerzit v Liberci (TUL) nezshuje do mých utorských práv užitím mé diplomové práce pro vnitřní potřebu TUL. Užiji-li diplomovou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovt o této skutečnosti TUL; v tomto přípdě má TUL právo ode mne poždovt úhrdu nákldů, které vynložil n vytvoření díl, ž do jejich skutečné výše. Diplomovou práci jsem vyprcovl smosttně s použitím uvedené litertury n zákldě konzultcí s vedoucím mé diplomové práce konzultntem. Součsně čestně prohlšuji, že tištěná verze práce se shoduje s elektronickou verzí, vloženou do IS STAG. Dtum: Podpis:
5 Abstrkt Diplomová práce si klde z cíl vytvoření rešerše vybrných numerických metod zhotovení plikce, jež slouží zejmén jko didktická pomůck studentům při studiu problemtiky numerické mtemtiky. Teoretická část je rozdělen do šesti kpitol, přičemž v kždé kpitole jsou chrkterizovány hlvní principy numerických metod jednoho odvětví numerické mtemtiky. Práce postupně seznmuje s lgoritmy zbývjícími se proximcí interpolcí funkce, numerickou integrcí derivcí, řešením nelineárních rovnic, metodmi pro řešení soustv lineárních rovnic s lgoritmy sloužícími pro výpočet vlstních čísel vlstních vektorů reálných symetrických mtic. V prktické části je nejprve předstven plikce implementovná v jzyce C# z pohledu jejího návrhu, kdy jsou blíže předstveny všechny vrstvy plikce. Později je ilustrován interkce jednotlivých vrstev plikce dění v pozdí plikce při jejím užívání uživtelem. Pro zjištění dosttečné didktické úrovně využívá plikce nástrojů, pomocí nichž dochází k zobrzení nejen získného řešení, le i postupu, který vedl k jeho dosžení. V přípdě proximce interpolce funkce, řešení nelineárních rovnic numerické integrce je didktická úroveň umocněn grfickou interpretci úlohy jejího řešení. Aplikce dále obshuje sdu cvičných úloh podporuje exporty do dlších formátů. Pro distribuci plikce byly zhotoveny webové stránky. Kĺıčová slov Numerická mtemtik, proximce funkcí, numerická integrce, numerická derivce, nelineární rovnice, soustvy lineárních rovnic, vlstní čísl vektory symetrických mtic, didktická plikce, postup výpočtu, cvičné úlohy, export 5
6 Abstrct The im of the thesis is review of numericl methods nd mnufcturing pplictions, which re minly used s didctic id for students studying the problems of numericl mthemtics. The theoreticl prt is divided into six chpters, where ech chpter outlines the min principles of numericl methods, one brnch of numericl mthemtics. Work grdully introduces lgorithms deling with pproximtions nd interpoltion functions, numericl integrtion nd differentition, solution of nonliner equtions, methods for solving systems of liner equtions nd lgorithms serving for clculting eigenvlues nd eigenvectors of rel symmetric mtrices. The prcticl prt is firstly introduced by ppliction implemented in lnguge C# in terms of its design, which introduces ech ppliction lyer in more detils. Then the interction of the lyers of the ppliction during its use is illustrted. To ensure sufficient levels of eductionl uses the ppliction uses tools for viewing not only the results, but lso the process leding to their chievement. In the cse of pproximtion nd interpoltion functions, solving nonliner equtions nd numericl integrtion didctic level is enhnced by grphicl interprettion of the exmples nd its solutions. The ppliction lso includes set of trining tsks nd supports exports to other formts. The websites were mde for distribution of the ppliction. Keywords Numericl methods, pproximtion of function, numericl integrtion, numericl differentition, nonliner equtions, liner equtions, eigenvlues nd eigenvectors of symmetric mtrices, didctic pplictions, clcultion procedure, prctice tsks, export 6
7 Poděkování Rád bych poděkovl vedoucí mé práce RNDr. Dně Černé, Ph.D. z odborné vedení, cenné rdy, trpělivost ochotu, kterou mi v průběhu zprcování diplomové práce věnovl. 7
8 Obsh Seznm zkrtek Seznm obrázků Seznm tbulek Úvod 13 1 Aproximce funkce Aproximce interpolčním polynomem Interpolce spline funkcemi Metod nejmenších čtverců Numerická derivce Derivce pomocí interpolce Richrdsonov extrpolce Numerická integrce funkcí Newton-Cotesovy vzorce Metod polovičního kroku Rombergov kvdrtur Gussov kvdrtur Nelineární rovnice Metod půlení intervlu Metod regul flsi Metod sečen Newtonov metod Steffensenov metod Hlleyov metod Sturmov posloupnost Lineární rovnice Zákldní pojmy Přímé metody Iterční metody Soustvy s obdélníkovou mticí
9 6 Vlstní čísl vlstní vektory mtic Zákldní pojmy Částečný problém vlstních čísel Úplný problém vlstních čísel Implementce plikce Implementční vrstv plikce Kontrolní výpočetní vrstv Prezentční vrstv plikce Ilustrce interkce vrstev plikce Distribuce instlce plikce Závěr 98 Litertur 100 A Ukázky plikce 105 B Obsh DVD 116 9
10 Seznm zkrtek N R C f(x) f (x) b Množin přirozených čísel Množin reálných čísel Množin komplexních čísel Hodnot funkce f v bodě x Hodnot první derivce funkce f v bodě x f(x)dx Integrál funkce f n intervlu, b lim x 0 f δ ij C n+1 (I) Π n Π n A T A 1 A + h(a) I det(a) λ, b (, b) ρ(a) σ i x AJAX BMP GIF GUI HTML JPG LIFO MthML MSIE PDF PNG RPN TIFF XML XSD Limit funkce f pro x jdoucí k nule Kroneckerovo delt Pro všechn Existuje Je prvkem Prostor (n + 1) spojitých derivcí n intervlu I Prostor polynomů stupně nejvýše n Prostor normovných polynomů stupně nejvýše n Trnsponovná mtice k mtici A Inverzní mtice k mtici A Pseudoinverzní mtice k mtici A hodnost mtice A Jednotková mtice Determinnt mtice A Vlstní číslo mtice Uzvřený intervl Otevřený intervl Spektrální poloměr mtice A i-té singulární číslo Euklidovská norm vektoru x Absolutní hodnot Asynchronous JvScript nd XML Bit Mpped Picture Grphic Interchnge Formt Grphic User Interfce HyperText Mrkup Lnguge Joint Photogrphic Experts Group Lst In First Out Mthemticl Mrkup Lnguge Microsoft Internet Explorer Portble Document Formt Portble Network Grphics Reverzní polská notce Tg Imge File Formt Extensible Mrkup Lnguge XML Schem 10
11 Seznm obrázků 6.1 Odvození Householderovy mtice Odvození mtice rovinné rotce Zjednodušený digrm návrhu plikce Ukázk převodu výrzu do MthML Zjednodušený postup výpočtu úlohy obdélníkovým prvidlem s následným zobrzení pomocí Awesomi Digrm znázorňující nčtení cvičné úlohy Ukázk postupu generování HTML pro Gussovu eliminci jeho zobrzení pomocí Awesomi Ukázk postupu při exportu do PDF
12 Seznm tbulek 2.1 Richrdsonov extrpolce Uzly váhy Gussovy kvdrtury Priorit operátorů v metodě RPN
13 Úvod Skoro kždý člověk moderního svět denně využívá technických pomůcek či vymožeností, niž by si uvědomovl, že z jejich objevením stojí velice čsto různá odvětví mtemtiky. Při vývoji těchto moderních výdobytků čsto nrážíme n velice složité mtemtické modely metody. V předpočítčové éře bylo nprosto nepředstvitelné provádět velké množství početních opercí, proto se odborníci plikovné mtemtiky snžili nlézt řešení nlytickým způsobem, pomocí něhož došlo k redukci počtu prováděných opercí. Ovšem získání tohoto přesného řešení je mnohdy nemožné, či velice složité prcné. Nštěstí se ukzuje, že pro reálné využití nám ve většině přípdů postčí pouze řešení přibližné. A v tuto chvíli přichází n řdu numerická mtemtik. Numerická mtemtik zznmenl prudkého rozmchu ž s rozvojem počítčů, kdy došlo k výrznému zlevnění početní operce. Proto mohly přejít do popředí výpočty čsto cyklického chrkteru, v nichž můžeme uvžovt dříve nemyslitelné počty opercí. I přes nesporné využití numerické mtemtiky mtemtiky obecně při řešení reálných problémů (jmenujme npříkld odvětví strojírenství, teorie obvodů či stvitelství) není o studium této problemtiku příliš velký zájem. Z tohoto důvodu si předkládná diplomová práce klde nejprve z úkol seznámit čtenáře s vybrnými numerickými metodmi z oblsti proximce funkce, numerického výpočtu určitého integrálu derivce, s postupy pro řešení nelineárních rovnic či metodmi pro řešení soustv lineárních rovnic v neposlední řdě tké s lgoritmy pro výpočet vlstních čísel vlstních vektorů reálných symetrických mtic. N zákldě této teoretické stti si diplomová práce klde z cíl vytvoření didktické plikce, která n rozdíl od již existujících mtemtických progrmů, bude kromě smotného řešení uživteli interpretovt i postup výpočtu, pomocí něhož bylo řešení dosženo. Implementovná plikce by měl dále obshovt soubor cvičných úloh včetně podpory pro vykreslování grfů exportů dt. Pro snzší distribuci plikce přípdnému čtenáři bude v rámci řešení diplomové práce zhotoven webová stránk, která bude obshovt zhotovenou plikci. Předkládná diplomová práce by tedy měl sloužit zejmén jko studijní opor součsně jko výuková pomůck pro zájemce zbývjící se problemtikou numerické mtemtiky. 13
14 1 Aproximce funkce V první kpitole se budeme zbývt metodmi pro interpolci proximci funkce. Princip proximce funkce spočívá v nhrzení jisté funkce f jinou funkcí φ, která je v jistém smyslu původní funkci podobná. Aproximující funkce φ by měl být co možná nejjednodušší, zároveň by měl být zdným bodům f(x i ) pro i = 0,...., n co nejblíže. Využití proximcí funkce je poměrně různorodé. Pokud npříkld chceme n počítči vypočítt funkční hodnotu jisté funkce, tk výpočet této hodnoty se čsto děje právě pomocí proximcí funkcí, kdy je vstupní funkce f nhrzen jistým polynomem P, to zejmén z důvodu sndné hlvně rychlé práce s mnohočleny. Polynomy jsou totiž poměrně sndno vyčíslitelné, jejich derivce i integrály jsme schopni sndno rychle vypočítt. Dlší oblstí, které se budeme věnovt později kde můžeme vidět využití proximcí funkce, je výpočet integrálu, kdy opět nhrzujeme vstupní funkci f jistým polynomem P. Nyní vyvstává otázk, jk nlézt funkci, která bude proximovt původní funkci. Existuje několik typů metod pro její určení. Prvním typem, se kterým se budeme blíže seznmovt, je proximce interpolčním polynomem. 1.1 Aproximce interpolčním polynomem O interpolci mluvíme tehdy, je-li úkolem stnovit hodnotu funkce f v bodech ležících mezi dvěm tbulkovými body. Snžíme se nlézt funkci, která v bodech x 0, x 1, x 2,..., x n nbývá hodnoty f(x 0 ), f(x 1 ), f(x 2 ),..., f(x n ). Body x 0, x 1, x 2,..., x n nzýváme uzlové body Lgrngeův interpolční polynom Lgrngeov interpolce je proximce polynomem L n, pro který pltí, že splňuje zákldní úlohu interpolce. Definice Uvžujme n + 1 bodů, které jsou nvzájem různé. Hledáme polynom L n stupně nejvýše n tkový, že pltí f(x i ) = L n (x i ), i = 0,..., n. Tento problém budeme oznčovt jko zákldní úlohu interpolce. Polynom L n se nzývá Lgrngeův interpolční polynom. 14
15 Vět Mějme dány body [x i, f(x i )], i = 0,..., n. Pk existuje právě jeden interpolční polynom L n stupně nejvýše n tkový, že L n (x i ) = f(x i ), i = 0,..., n. Důkz. Předpokládejme, že existují dv polynomy L n R n stupně nejvýše n tkové, že L n (x i ) = R n (x i ) = f(x i ) pro i = 0,..., n. Ukážeme, že jsou tyto dv polynomy shodné. Položme Q n = L n R n. Potom Q n (x i ) = L n (x i ) R n (x i ) = 0. Polynom Q n je polynom stupně n, který má n + 1 nulových bodů. Podle zákldní věty lgebry je tento polynom identicky roven nule, tedy L n R n. Hledáme polynom stupně nejvýše n, který splňuje podmínku interpolce. Máme tedy n + 1 bodů, kterými musí grf hledného polynomu procházet. Tuto úlohu můžeme řešit jko soustvu lineárních rovnic, kdy bychom zjistili hodnoty koeficientů hledného polynomu (pomocí tzv. Vndermondovy mtice). Nicméně tento způsob řešení se příliš nevyužívá lze se mu vyhnout pomocí Lgrngeov interpolčního polynomu. Vět Lgrngeův interpolční polynom lze vyjádřit ve tvru kde g i (x) = j=0,j i x x j x i x j. L n (x) = f(x i )g i (x), (1.1) i=0 Vět Necht f C n+1 (I), kde I je nejmenší intervl obshující x 0, x 1, x 2,..., x n 1, x n, x x 0, x 1, x 2,..., x n jsou nvzájem různé uzly. Pk x I ξ I, pro které pltí: kde ω n+1 (x) = (x x 0 )(x x 1 )... (x x n ). Důkz. Předpokládejme, že x i = x. Potom Z vlstnosti interpolce plyne Pokud x i x, potom definujme funkci kde x I, t R. f(x ) L n (x ) = f (n+1) (ξ) ω n+1(x ) (n + 1)!, (1.2) f(x i ) L n (x i ) = f n+1 (ξ) ω n+1(x i ) (n + 1)!. (1.3) f(x i ) L n (x i ) = 0. (1.4) F (x) = f(x) L n (x) tω n+1 (x), (1.5) 15
16 Funkce F (x) má n + 1 nulových bodů (uzlové body x i ). Hledáme tkové t, by byl splněn rovnost F (x ) = 0. (1.6) To splňuje t = f(x ) L n (x ). (1.7) ω n+1 (x ) Funkce F má tedy n+2 nulových bodů. Z Rolleovy věty plyne, že F má lespoň n + 1 nulových bodů. F má lespoň n nulových bodů. F (n+1) má lespoň jeden nulový bod ξ, F (n+1) (ξ) = 0. (1.8) Protože L (n+1) n Dosdíme z proměnnou t 0, dostneme vyjádříme výslednou chybu F (n+1) (ξ) = f (n+1) (ξ) 0 t(n + 1)!. (1.9) 0 = F (n+1) (ξ) = f (n+1) (ξ) f(x ) L n (x ) (n + 1)! (1.10) ω n+1 (x ) f(x ) L n (x ) = f (n+1) (ξ) ω n+1(x ) (n + 1)!. (1.11) Více informcí nlezneme npříkld v [1] nebo [2] Newtonův interpolční polynom Tento polynom je pro n + 1 uzlových bodů interpolčním polynomem stupně nejvýše n. Bude se tedy jednt o nový způsob zápisu Lgrngeov interpolčního polynomu. Tento polynom budeme hledt ve tvru N n (x) = (x x 0 ) + 2 (x x 0 )(x x 1 ) +... (1.12) + n (x x 0 )(x x 1 )... (x x n 1 ). Newtonův interpolční polynom tedy musí vyhovovt podmínce interpolce N n (x i ) = f(x i ), i = 0, 1,..., n. (1.13) Koeficienty i, i = 0,..., n, vyjádříme pomocí poměrných diferencí. Definice Poměrná diference nultého řádu je definován: f[x i ] = f(x i ), i = 0,..., n. (1.14) 16
17 Poměrná diference prvního řádu je definován: f[x i, x i+1 ] = f[x i+1] f[x i ] x i+1 x i, i = 0,..., n 1. (1.15) Poměrná diference k-tého řádu je definován rekurentně: f[x i, x i+1,..., x i+k ] = f[x i+1,..., x i+k ] f[x i, x i+1,..., x i+k 1 ] x i+k x i. (1.16) Newtonův interpolční polynom můžeme zpst pomocí poměrných diferencí: N n (x) = f[x 0 ] + f[x 0, x 1 ](x x 0 ) + f[x 0, x 1, x 2 ](x x 0 )(x x 1 ) f[x 0, x 1,..., x n ](x x 0 )(x x 1 )... (x x n 1 ). (1.17) Newtonov interpolce má oproti Lgrngeově interpolci podsttnou výhodu, která spočívá v tom, že je výpočetně méně náročné přidt dlší bod s jeho funkční hodnotou, protože některé výpočty zůstnou beze změny (npříkld předchozí koeficienty k se nezmění). Bližší informce jsou k nlezení npříkld v [1]. 1.2 Interpolce spline funkcemi Pro intervly větší délky je použití interpolčního polynomu nízkého stupně mnohdy nepřesné použití interpolčního polynomu vyšších stupňů nevhodné vzhledem k vlstnosti, kdy interpolční polynom n krjích intervlů nepříjemně osciluje. Vhodnější je využití interpolčních spline funkcí, které jsou po částech polynomy. Princip spline interpolce spočívá v rozdělení intervlu n podintervly. N kždém z těchto podintervlů poté budeme konstruovt obecně jiný polynom. Mezi nejčstěji využívné spliny ptří lineární kubický [3] Lineární interpolční spline Definice (Lineární interpolční spline) Lineárním splinem nzýváme funkci φ(x), která je spojitá n intervlu x 0, x n n kždém podintervlu x i, x i+1, i = 0,..., n 1 je polynomem prvního stupně. Lineární interpolční spline, který prochází uzlovými body, tj. φ(x i ) = f(x i ), n podintervlu x i, x i+1, i = 0,..., n 1 můžeme zkonstruovt následujícím způsobem φ i (x) = f(x i ) + f(x i+1) f(x i ) h i (x x i ), (1.18) kde h i = x i+1 x i. Grfem tohoto spline je lomená čár. Více informcí lze získt npříkld v [4]. 17
18 1.2.2 Kvdrtický interpolční spline Definice (Kvdrtický interpolční spline) Kvdrtickým splinem nzýváme funkci φ(x), která je spojitá n intervlu x 0, x n, přičemž n kždém podintervlu x i, x i+1, i = 0,..., n 1, je polynomem druhého stupně. Tyto polynomy n sebe v uzlových bodech hldce nvzují mjí spojitou první derivci. Kvdrtický interpolční spline procházející uzlovými body, tj. φ(x i ) = f(x i ), n podintervlu x i, x i+1, i = 0,..., n 1, můžeme zkonstruovt následujícím způsobem φ i (x) = d i+1 d i 2(x i+1 x i ) (x x i) 2 + d i (x x i ) + f(x i ), (1.19) kde d i+1 = 2 f(x i+1) f(x i ) x i+1 x i, i = 0, 1,..., n 1. Hodnoty d i vycházejí z podmínky první spojité derivce ve vnitřních bodech kvdrtického splinu. Jednotlivé spline n intervlech tedy ve výsledku tvoří hldkou křivku. Jelikož se budeme zbývt přirozeným kvdrtickým splinem, kldeme d 1 = 0. Více informcí týkjící se konstrukce kvdrtického interpolčního splinu můžeme nlézt v [5] Kubický interpolční spline Interpolce pomocí kubických splinů je nejčstěji využívnou spline interpolcí, protože podle [3] se ukzuje, že právě tto po částech polynomiální interpolce doshuje nejlepších výsledků. Definice Kubickým splinem nzveme funkci φ(x), která má n intervlu x 0, x n dvě spojité derivce n kždém podintervlu x i, x i+1, i = 0,..., n 1, je polynomem třetího stupně. Konstrukce přirozeného kubického spline Mějme v uzlových bodech x i dány funkční hodnoty f(x i ), i = 0,..., n, funkce f. Nším úkolem je sestrojit kubický interpolční polynom, který splňuje zákldní úlohu interpolce. Z definice kubického polynomu φ(x) = x 3 + bx 2 + cx + d plyne, že kubický polynom je určen čtyřmi koeficienty. Máme-li n + 1 bodů, budeme mít n intervlů. Z toho vyplývá, že φ(x) je n intervlu x 0, x n určen 4n prmetry. Podmínky spojitosti φ(x), φ (x) φ (x) ve vnitřních bodech intervlu x 0, x n dávjí dlších 3n 3 podmínek. Interpolční podmínky nám djí n + 1 podmínek. Celkem tedy máme 4n 2 podmínek pro 4n neznámých. Protože konstruujeme přirozený kubický spline, zbylé dvě podmínky doplníme tk, že položíme druhé derivce v krjních bodech intervlu x 0, x n rovny nule. Pokud budeme vycházet z předpokldu, že φ(x) je kubický polynom, pk φ (x) je kvdrtický polynom φ (x) je lineární polynom, který prochází body [x i, M i ] 18
19 [x i+1, M i+1 ], kde M i = f (x i ) M i+1 = f (x i+1 ) jsou tzv. momenty splinu. Jelikož je přímk jednoznčně určen dvěm body, můžeme položit φ (x) = L 1 (x) s nulovou chybou, zároveň můžeme odvodit vzthy pro výpočet kubické interpolční spline funkce: φ i (x) = L 1 (x) = f (x i ) x x i+1 x i x i+1 + f (x i+1 ) x x i x i+1 x i (1.20) = M i x x i+1 h i x x i x x i+1 x x i + M i+1 = M i + M i+1, (1.21) h i h i h i φ i(x) = M i 2h i (x x i+1 ) 2 + M i+1 2h i (x x i ) 2 + A i, (1.22) φ i (x) = M i 6h i (x x i+1 ) 3 + M i+1 6h i (x x i ) 3 + A i (x x i ) + B i, (1.23) kde h i = x i+1 x i A i B i jsou integrční konstnty. Nyní určíme integrční konstnty, přičemž využijeme skutečnosti, že funkce φ i (x) musí n intervlu x i, x i+1 splňovt podmínky interpolce: Dostneme φ i (x i ) = f(x i ) φ i (x i+1 ) = f(x i+1 ). φ i (x i ) = M i 6h i (x i x i+1 ) 3 + M i+1 6h i (x i x i ) 3 + A i (x i x i ) + B i (1.24) = M i 6h i ( h i ) 3 + B i (1.25) můžeme vyjádřit Anlogicky dostneme B i = f(x i ) M i 6 h i 2. (1.26) φ i (x i+1 ) = M i 6h i (x i+1 x i+1 ) 3 + M i+1 6h i (x i+1 x i ) 3 + A i (x i+1 x i ) + B i (1.27) = M i+1 6h i h 3 i + A i h i + B i (1.28) = M i+1 6 h2 i + A i h i + f(x i ) M i 6 h i 2. (1.29) Z těchto vzthů vyjádříme A i = f(x i+1) f(x i ) + M i M i+1 h i. (1.30) h i 6 Nyní určíme momenty splinu M i. Protože konstruujeme přirozený kubický spline, tk M 0 = M n = 0. Momenty splinu určíme pomocí dlší podmínky, kterou musí 19
20 funkce φ i (x) splňovt. Poždujeme, by derivce funkce φ i (x) byl zlev i zprv spojitá, tj. φ i 1(x i ) = φ i(x i ). Jelikož víme, že Potom φ i(x) = M i 2h i (x x i+1 ) 2 + M i+1 2h i (x x i ) 2 + A i. (1.31) φ i 1(x i ) = M i 1 (x i x i ) 2 + M i (x i x i 1 ) 2 + A i 1 (1.32) 2h i 1 2h i 1 Anlogicky dostneme = M i 2h i 1 (h i 1 ) 2 + A i 1 (1.33) = M i 2h i 1 (h i 1 ) 2 + f(x i) f(x i 1 ) h i 1 + M i 1 M i h i 1 (1.34) 6 = M i 1 + 2M i h i 1 + f(x i) f(x i 1 ). (1.35) 6 h i 1 φ i(x i ) = M i 2h i (x i x i+1 ) 2 + M i+1 2h i (x i x i ) 2 + A i (1.36) = M i 2h i ( h i ) 2 + A i (1.37) = M i 2 h i + f(x i+1) f(x i ) + M i M i+1 h i h i 6 (1.38) = M i+1 + 2M i h i + f(x i+1) f(x i ). 6 h i (1.39) Nyní můžeme npst následující rovnost: M i 1 + 2M i h i 1 + f(x i) f(x i 1 ) = M i+1 + 2M i h i + f(x i+1) f(x i ), (1.40) 6 h i 1 6 h i M i 1 + 2M i 6 h i 1 + M i+1 + 2M i h i = f(x i+1) f(x i ) f(x i) f(x i 1 ). (1.41) 6 h i h i 1 Při předpokldu ekvidistntního dělení intervlu pltí: h i 1 = h i. M i 1 + 2M i h i + M i+1 + 2M i 6 6 h i = f(x i+1) f(x i ) h i f(x i) f(x i 1 ) h i,(1.42) M i 1 + 4M i + M i+1 h i = f(x i+1) 2f(x i ) + f(x i 1 ). (1.43) 6 h i Při prktickém výpočtu interpolce pomocí kubické spline funkce postupujeme v níže nznčených krocích. Nejdříve vypočteme pomocí rovnic (1.41) momenty splinu M i, i = 1,..., n 1. V prxi se při výpočtu momentů splinu při předpokldu konstrukce přirozeného 20
21 kubického splinu využívá Gussov elimince plikovná n třídigonální mtici pro řešení n 1 rovnic o n 1 neznámých. Soustv má tvr h 0 +h 1 3 h h i 1 6 h i 1 +h i 3 h i h n 2 6 h n 2 +h n 1 3 M 1. M i 1 M i M i+1. M n 1 = g 1. g i 1 g i g i+1. g n 1, (1.44) kde g i = f(x i+1) f(x i ) h i f(x i) f(x i 1 ) h i 1. Po výpočtu momentů splinu musíme určit integrční konstnty A i, i = 1,..., n, B i, i = 1,..., n, podle vzthů (1.26) (1.30). V tuto chvíli již známe všechny neznámé můžeme vypočítt kubické spliny n jednotlivých intervlech doszením do vzthu (1.23). Bližší informce lze nlézt ve [2] [6]. 1.3 Metod nejmenších čtverců Metod nejmenších čtverců již není interpolční metod. Její princip můžeme popst tk, že zdnými body [x i, y i ] pro i = 1,..., n prokládáme funkci φ tk, by součet druhých mocnin rozdílu hodnot y i funkčních hodnot φ(x i ) byl minimální. Odvození metody nejmenších čtverců pro lineární regresi Uvžujme množinu n bodů [x i, y i ] pro i = 1,..., n. Vzdálenost bodů od přímky y = x + b můžeme vyjádřit jednoduchým způsobem s i = x i + b y i, kde i = 1,..., n. Smyslem této metody je minimlizovt funkci S(, b) = n i=1 (x i + b y i ) 2. Protože je známo, že lokální extrém diferencovtelné funkce může nstt pouze ve stcionárním bodě, využijeme pro minimlizci funkce S prciální derivce ( ) S = 2 (x i + b y i )x i = 2 x 2 i + b x i x i y i, (1.45) S b = 2 i=1 ( (x i + b y i ) = 2 i=1 i=1 x i + b i=1 i=1 1 i=1 i=1 ) y i. (1.46) Proto nyní položíme tyto prciální derivce rovny nule: ( ) 2 x 2 i + b x i x i y i = 0, (1.47) 2 i=1 ( i=1 x i + b i=1 i=1 1 i=1 ) y i i=1 = 0. i=1 21
22 Tyto rovnice uprvíme jednoduchými úprvmi n následující tvr, x 2 i + b x i = i=1 i=1 x i + bn = i=1 x i y i, (1.48) i=1 y i. i=1 čímž získáme soustvu rovnic s neznámými, b. Pokud tedy chceme njít proximční polynom prvního řádu φ(x) = x + b, musíme zjistit hodnotu koeficientů, b. Tyto koeficienty zjistíme vyřešením soustvy (1.48). Protože všechny hlvní subdeterminnty mtice jsou kldné, je kvdrtická form pozitivně definitní. Podle Sylvestrov kritéri je tedy nlezený stcionární bodem minim. Pro proximci obecným polynomem φ(x) = m i=0 b ix i řešíme následující soustvu rovnic: nb 0 + x i b 1 + i=1 x i b 0 + i=1 x m i b 0 + i=1 x 2 i b i=1 x 2 i b i=1 i=1 x m+1 i b i=1 x m i b m = i=1 i=1 x m+1 i b m =. x 2m i b m = y i, (1.49) i=1 x i y i, i=1 x m i y i. i=1 Dlší informce lze nlézt v [7]. 22
23 2 Numerická derivce Ve druhé kpitole této práce se budeme zbývt metodmi pro určení numerické derivce funkce f v bodě. Definice Funkce f má v bodě x 0 derivci, je-li definován v okolí bodu x 0 existuje limit f(x 0 + h) f(x 0 ) lim. (2.1) h 0 h Tuto limitu nzýváme derivcí funkce f v bodě x 0 znčíme ji f (x 0 ). Metody pro výpočet numerické derivce v bodě vycházejí přímo z definice nebo npříkld z myšlenky nhrzení funkce f v okolí bodu x 0 interpolčním polynomem (funkci lze nhrdit npříkld i proximcí získnou metodou nejmenších čtverců, nebo Čebyševovými polynomy) [8]. 2.1 Derivce pomocí interpolce V následujících odstvcích ukážeme, jk můžeme odvodit vzthy pro výpočet derivce funkce v bodě pomocí interpolce. Funkci f můžeme proximovt Lgrngeovým interpolčním polynomem f(x) = f(x) = L n (x) + f(x i )l i (x) + i=0 Pro chybu Lgrngeovy interpolce pltí kde ω n+1 (x) = n (x x i ). i=0 f(x) L n (x) = Zderivujeme-li ω n+1 (x) podle proměnné x, dostneme ω n+1(x) = 1 (n + 1)! f (n+1) (ξ)ω n+1 (x), (2.2) 1 (n + 1)! f (n+1) (ξ)ω n+1 (x). (2.3) 1 (n + 1)! f (n+1) (ξ)ω(x), (2.4) n i=0 j=0,j i (x x j ). (2.5) 23
24 Nyní provedeme derivci funkce f ( f (x) = f(x i )l i(x) 1 + (n + 1)! f (n+1) (ξ) i=0 i=0 n j=0,j i (x x j ) ) (2.6) pro derivci funkce f v bodě x 0 tedy pltí ( ) f (x 0 ) = f(x i )l i(x 1 n 0 ) + (n + 1)! f (n+1) (ξ) (x 0 x j ). (2.7) Podle vzthu (2.7) můžeme tedy konstruovt vzthy pro výpočet derivce funkce f(x) v bodě x 0. Nyní odvodíme vzth pro derivci v bodě pomocí interpolčního polynomu prvního stupně. Funkci f nhrdíme v okolí bodu x 0 interpolčním polynomem prvního stupně. Tento polynom poté zderivujeme podle proměnné x. Sestrojíme interpolční polynom prvního stupně pro body [x i, f(x i )] [x i + h, f(x i + h)], L 1 (x) = f(x i ) x (x i + h) x i (x i + h) + f(x x x i i + h) (2.8) (x i + h) x i = f(x i ) x (x i + h) h Polynom L 1 (x) zderivujeme podle proměnné x. Dostneme j=1 + f(x i + h) x x i h. (2.9) L 1(x) = 1 h (f(x i + h) f(x i )) (2.10) f (x 0 ) = f(x 0 + h) f(x 0 ) 1 h 2 f (2) (ξ)h. (2.11) Pokud stejným způsobem využijeme pro určení první derivce funkce f(x) v bodě x 0 interpolční polynom druhého řádu dostáváme L 2(x) = 1 2h (f(x i + h) f(x i h)), (2.12) f (x 0 ) = f(x 0 + h) f(x 0 h) 1 2h 6 f (3) (ξ)h 2. (2.13) Jestliže L 2 zderivujeme ještě jednou dostáváme předpis pro proximci druhé derivce funkce f v bodě x 0 f (x 0 ) = f(x 0 + h) 2f(x 0 ) + f(x 0 h) h 2. (2.14) Při prktickém výpočtu numerické derivce funkce f(x) v bodě x 0, musíme dbát n vliv zokrouhlovcích chyb, které mohou mít podsttnou měrou vliv n výsledek. Jmenovtelé uvedených vzorců obshují krok h, který musí být jkýmsi kompromisem mezi dosttečně přesnou proximcí, která vyžduje dosttečně mlý krok h, zokrouhlovcí chybou, která se nopk při mlém h zvyšuje. Bližší informce v [3] nebo [9]. 24
25 2.2 Richrdsonov extrpolce Richrdsonov extrpolce je technik, která je v prxi hojně využívná. Setkáme se s ní npříkld v numerické integrci v Rombergově kvdrtuře nebo npříkld v Bulirsch-Stoerovu lgoritmu, jenž se zbývá řešením obyčejných diferenciálních rovnic. Její podstt vychází z předpokldu, že ze dvou přibližných výsledků můžeme pomocí lineární kombince vypočítt třetí, který bude přesnější, přičemž tto nová hodnot se nchází mimo intervl, ohrničený předcházejícími dvěm hodnotmi (proto hovoříme o extrpolci). Odvození Richrdsonovy extrpolce Mějme funkci R krok h. Předpokládejme, že funkci R je možné vyjádřit mocninnou řdou R (h) = h + 2 h h h (2.15) Jestliže h < 1, pk je R(h) dobrou proximcí členu 0. Lepší proximci ovšem získáme, když určíme hodnotu funkce R s krokem h 2 ( ) ( ) 2 ( ) 3 h h h h R = (2.16) 2 2 } {{ } O(h 2 ) Pomocí vhodné lineární kombince můžeme vyjádřit člen 0 s chybou O(h 2 ). Ve vyjádření (2.15) (2.16) znedbáme dlší členy rozvoje R R (h) 0 = 1 h + O ( h 2), (2.17) ( ) h h 0 = O ( h 2). (2.18) Rovnici (2.17) odečteme od dvojnásobku rovnice (2.18) ( ) h R 2 (h) = 2R R (h) = 0 + (2) 2 (h) 2 + (2) 3 (h) (2.19) 2 } {{ } O(h 2 ) Pomocí vhodné lineární kombince vzthů, z nichž ob proximují hodnotu funkce R s chybou O(h), jsme vyjádřili vzth pro 0 s chybou O(h 2 ). Podle [13] pltí, že (2) i < i. R 2 (h) je lepší proximce než R(h) pro mlé h je i lepší proximcí než R( h). 2 Obecný vzth pro Richrdsonovu extrpolci můžeme zpst pomocí následující iterční formule: ( ) h R j+1 (h) = R j + R ( h ) j 2 Rj (h), kde j = 1, 2,.... (2.20) 2 2 j 1 Výpočet můžeme uspořádt do následující tbulky: 25
26 R(h) R( h) 2 R 2(h) R( h) 4 R 2( h) 2 R 3(h) R( h) 8 R 2( h) 4 R 3( h) 2 R 4(h) R( h ) 16 R 2( h) 8 R 3( h) 4 R 4( h) 2 R 5(h) O(h) O(h 2 ) O(h 3 ) O(h 4 ) O(h 5 ) Tbulk 2.1: Richrdsonov extrpolce Při výpočtu postupujeme po řádcích, přičemž prvek v prvním sloupci vypočteme pomocí zákldní metody. Osttní prvky v řádku vypočteme pomocí vzthu (2.20). Výpočet ukončíme ve chvíli, kdy je rozdíl dvou digonálních prvků tbulky menší než poždovná přesnost. Více npříkld v [10], [11], [12] nebo [13]. 26
27 3 Numerická integrce funkcí Ve dlší kpitole se budeme zbývt numerickou integrcí. Je-li funkce f(x) n intervlu, b spojitá známe její primitivní funkci F (x), můžeme hodnotu určitého integrálu b f(x)dx určit pomocí Newton - Leibnizov vzthu b f(x)dx = F (b) F (). (3.1) V prxi ovšem čsto nemůžeme primitivní funkci F (x) njít nlyticky nebo je nlytický výpočet integrálu příliš složitý prcný. V tuto chvíli využijeme metody numerické kvdrtury, kdy funkci f(x) obvykle nhrzujeme jednodušší proximující funkcí φ(x)(nejčstěji polynomem), hodnotu integrálu f(x) položíme přibližně hodnotě integrálu φ(x) [14]. Definice Vyjádřeme integrál ve tvru I(f) = b f(x)dx I h (f) = b φ(x)dx = α i f(x i ) (3.2) i=0 kde I h (f) = n i=0 α if(x i ) se nzývá kvdrturní formule, α i jsou koeficienty kvdrturní formule, které nezávisí n funkci f(x), x i jsou uzly kvdrturní formule, přičemž x i, b. Chybu kvdrturní formule R n (f) vyjádříme R n (f) = I(f) I h (f). U kvdrturních formulí nás zjímá, jkou přesnost dná kvdrturní formule při proximci určitého integrálu má. Řekneme, že kvdrturní formule je řádu n, když integruje polynomy stupně n s nulovou chybou polynomy stupně n + 1 integruje s nenulovou chybou [2]. To nás vede k následující definici. Definice Řád kvdrturní formule I h(f) = n i=0 α if(x i ) je mximální číslo m N {0} tkové, že b p(x)dx = n i=0 α ip(x i ), kde p(x) je polynom stupně m. 3.1 Newton-Cotesovy vzorce Velkou skupinou v oblsti numerické integrce funkcí předstvují Newton-Cotesovy vzorce. Tyto kvdrturní vzorce předpokládjí ekvidistntní dělení intervlu integrce. 27
28 Newton-Cotesovy vzorce lze rozdělit do dvou podskupin. První skupinu oznčujeme jko otevřené druhou jko uzvřené. Rozdíl mezi těmito skupinmi spočívá v přístupu ke krjním bodům intervlu integrce. Uzvřené vzorce tyto body povžují z uzly kvdrtury, otevřené nikoli. Uzly kvdrtury otevřených vzorců jsou určeny symetricky podle středu intervlu. Newton-Cotesovy kvdrturní vzorce proximují hodnotu integrálu pomocí nhrzení funkce f(x) Lgrngeovým interpolčním polynomem L n (x). Více npříkld v [2], [15]. Odvození Newton-Cotesových vzorců Nyní odvodíme obecný tvr Newton - Cotesových vzorců. Hodnotu integrálu funkce f n intervlu, b proximujeme pomocí Lgrngeov interpolčního polynomu L n (x). = b f(x i ) i=0 b n j=0,j i f(x)dx b L n (x)dx = ( ) x xj dx = x i x j } {{ } l i (x) f(x i ) l i (x)dx, } {{ } i=0 b α i (3.3) kde = x 0 < x 1 < x 2 <... < x n = b. Určíme koeficienty α i. Položme h = b n Nyní provedeme substituci x 0 = + 0h, x 1 = + h,..., x n = + nh. (3.4) Použitím substituce došlo ke změně integrčních mezí x = + th, dx = hdt. (3.5) t = x h. (3.6) Pokud z proměnnou x dosdíme dolní mez intervlu integrce dostáváme jko novou dolní mez nulovou hodnotu. Dosdíme-li do vzthu (3.6) z proměnnou x výrz b = + nh, dostáváme pro novou horní mez integrálu hodnotu n: n α i = h 0 n j=0,j i ( ) t j dt. (3.7) i j Z Newton - Cotesových vzorců lze poměrně jednoduše odvodit prvidl jejich složené vrinty pro výpočet určitého integrálu. Princip proximce určitého integrálu pomocí složených vzorců spočívá v rozdělení intervlu n jednotlivé podintervly. Přičemž n kždý z podintervlů použijeme jednoduché Newton - Cotesovy vzorce. Hodnotu integrálu poté proximujeme hodnotou, kterou vypočteme jko součet obshu ploch n jednotlivých intervlech, čímž dostáváme přesnější proximci dného integrálu. 28
29 Šířku intervlu h určíme jko h = b, kde m je počet podintervlů. Dlší informce můžeme nlézt v [2] nebo m [16]. Vět Kvdrturní formule získná integrcí interpolčního polynomu pro uzlové body [x i, f(x i )] pro i = 0,..., n má stupeň přesnosti lespoň n. Důkz. Uvžujme integrál I(f), který proximujeme Lgrngeovým interpolčním polynomem L n stupně n s chybou E n (f) I(f) = Uprvíme prvou strnu rovnosti b L n (x) + E n (f)dx. (3.8) I(f) = = = b i=0 b i=0 f(x i )l i (x) + E n (f)dx (3.9) f(x i )l i (x)dx + i=0 b f(x i ) l i (x)dx + b b E n (f)dx. b E n (f)dx, kde l i (x)dx = α i. Nyní vyjádříme chybu E n (f) I(f) f(x i )α i = b i=0 E n (f)dx. (3.10) Přičemž pro chybu Lgrngeovy interpolce pltí E n (f) = f (n+1) (ξ) ω n+1(x) (n + 1)!. (3.11) Nyní můžeme vidět, že vyjádření chyby E n (f) obshuje (n + 1)-ní derivcí funkce f. Z toho přímo plyne, že chyb interpolční kvdrturní formule bude nulová pro všechny polynomy stupně nejvýše n řád přesnosti bude tedy lespoň n. Později ukážeme, že interpolční kvdrturní formule má řád přesnosti pro n + 1 bodů nejvýše 2n + 1. Dlší informce v [17] (Složené) obdélníkové prvidlo Je nejjednodušším vzorcem pro kvdrturu řdíme jej mezi otevřené Newton - Cotesovy vzorce. Jeho řád přesnosti je jedn, ovšem je vhodné jej využít v přípdě, 29
30 kdy nemůžeme vypočíst integrál složitějšími metodmi z důvodu nemožnosti určení funkční hodnoty n krjích integrálu. Princip tohoto prvidl spočívá v určení funkční hodnoty středu intervlu. Hodnot určitého integrálu je tk proximován jko obsh obdélníku, kdy jedn strn je určen šířkou intervlu druhá funkční hodnotou.dostneme b ( ) + b f(x)dx hf. (3.12) 2 Pokud jsme ovšem schopni určit funkční hodnoty i n krjích integrčních mezí, je vhodnější použít dále popsné metody. Předpis pro proximci určitého integrálu pomocí složeného obdélníkového prvidl: b f(x)dx h kde m je počet podintervlů. Dlší informce lze nlézt v [3]. m ( ) xi 1 + x i f, (3.13) 2 i= (Složené) lichoběžníkové prvidlo Jedná se o jednoduchou metodu s řádem přesnosti jedn, která je sndno implementovtelná pomocí počítče. Hodnot integrálu je vypočten jko obsh lichoběžníku, kdy funkci f nhrzujeme Lgrngeovým interpolčním polynomem prvního řádu. Pokud využijeme složenou vrintu tohoto prvidl je intervl rozdělen n části n kždé této části je zkonstruován lichoběžník. Hodnot integrálu je určen jko součet obshu jednotlivých lichoběžníků. Použitím vzthu (3.3) odvodíme vzth pro lichoběžníkové prvidlo. Určíme šířku intervlu h = x 1 x 0, kde = x 0 < x 1 = b. Integrál funkce f n intervlu, b proximujeme pomocí Lgrngeov interpolčního polynomu prvního stupně 0 b j=0,j i f(x)dx 1 α i f(x i ). (3.14) Pro koeficienty α i dle vzthu (3.7) pltí 1 n ( ) t j α i = h dt, (3.15) i j 1 t 1 α 0 = h 0 1 dt = h α 1 = h t dt = h i=0 [ ] 1 1 tdt = h t t2 2 0 [ ] t 2 1 tdt = h Tímto dostáváme vzth pro lichoběžníkové prvidlo b 2 0 = h 2, (3.16) = h 2. (3.17) f(x)dx h [f() + f(b)]. (3.18) 2 30
31 Předpis pro proximci určitého integrálu pomocí složeného lichoběžníkového prvidl: [ ] b f(x)dx h 2 f(x 0 ) + 2 m 1 i=1 f(x i ) + f(x m ) kde m je zvolený počet podintervlů. Více npříkld v [3], [18] (Složené) Simpsonovo prvidlo, (3.19) Dlší metodou vycházející z Newton - Cotesových vzorců je Simpsonovo prvidlo. Ze zdného intervlu vybereme body n obou krjích intervlu bod uprostřed tohoto intervlu. Tyto body proložíme křivkou, která je grfem polynomu druhého řádu-prbolou. Hodnot integrálu je určen jko obsh plochy pod prbolou. b f(x)dx h 3 [ f() + 4f ( ) + b 2 ] + f(b), (3.20) kde h = b. 2 U složené vrinty tohoto prvidl rozdělujeme dný intervl n sudý počet podintervlů v kždém intervlu x 2i, x 2i+2, i = 0,..., m 1, se provede náhrd 2 původní funkce polynomem druhého řádu. Hodnot integrálu se určí jko součet ploch pod těmito prbolmi. Předpis pro proximci určitého integrálu pomocí složeného Simpsonov prvidl (hodnot h opět předstvuje šířku podintervlu m počet podintervlů): b f(x)dx h f(x 0 ) m m f(x 2i 1 ) + 2 f(x 2i ) + f(x m ), (3.21) i=1 kde h = b. Bližší informce jsou k nlezení v [19]. m (Složené) tříosminové prvidlo K určení hodnoty integrálu využívá tto metod plochy pod grfem kubického polynomu, který je určen čtyřmi body, které se ncházejí n obou krjích intervlu součsně v jedné druhé třetině dného intervlu. Pokud zvolíme složenou vrintu tohoto prvidl, je nutné, by počet poždovných podintervlů byl dělitelný třemi. i=1 b f(x)dx 3h 8 [ f() + 3f ( ) ( ) 2 + b + 2b + 3f 3 3 ] + f(b), (3.22) kde h = b 3. 31
32 Předpis pro proximci určitého integrálu pomocí složeného tříosminového prvidl: m b f(x)dx 3h 3 f(x 0 ) + 3 (f(x 3i 1 ) + f(x 3i 2 )) (3.23) 8 i=1 m f(x 3i ) + f(x m ), i=1 kde h = b. Podrobnější informce získáme v [20]. m (Složené) Boolevo prvidlo Booleovo prvidlo je dlším z uzvřených Newton - Cotesových vzorců má z uvedených vzorců nejvyšší řád přesnosti, protože je přesný ž pro polynomy pátého stupně. K výpočtu hodnoty integrálu využívá kromě bodů n krjích intervlů prostředního bodu tké dlší dv, které jsou umístěny v jedné třetí čtvrtině intervlu. Pokud zvolíme složenou vrintu tohoto prvidl, je nutné, by počet poždovných podintervlů byl dělitelný čtyřmi. Vzorec má tvr: b f(x)dx h [ ( ) ( ) 3 + b + b 7f() + 32f + 12f (3.24) ( ) ] + 3b + 32f + 7f(b), 4 kde h = b. 4 Předpis pro proximci určitého integrálu pomocí složeného Booleov prvidl: m b f(x)dx h 4 7f(x 0 ) + 32 (f(x 4i 1 ) + f(x 4i 3 )) (3.25) 90 i=1 m m f(x 4i 2 ) 14 f(x 4i ) + 7f(x m ), i=1 kde h = b, více npříkld v [16]. m Chyb Newton - Cotesových vzorců Z věty plyne, že pro chybu Newton - Cotesových vzorců pltí: R n (f ) = f (n+1 ) (ξ) (n + 1)! kde ω n+1 (x) = (x x 0 )(x x 1 )... (x x n ). b i=1 ω n+1 (x), (3.26) 32
33 V prxi můžeme hodnotu f n+1 (ξ) omezit mx x,b f (n+1) (x). Pokud intervl integrce rozdělíme n m podintervlů n kždém z nich proximujeme funkci f(x) Lgrngeovým interpolčním polynomem stupně n, budeme chybu R n (f) odhdovt jko součet chyb n dílčích intervlech. Tedy b f(x)dx = R n (f) = x i i=1 x i 1 f(x)dx x i i=1 x i 1 L n,i (x)dx, (3.27) R n,i (f), (3.28) i=1 kde R n,i (f) oznčuje chybu n intervlu x i 1, x i. V následujících odstvcích odvodíme chybu pro lichoběžníkové prvidlo. Oznčíme h = b, = x 0 < x 1 = b, (3.29) x 0 = + 0h, x 1 = + h, použijeme substituci Pro chybu pltí x = + th, dx = hdt. (3.30) R 1 (f) = f (ξ) 2 b = f (ξ) 2 h 1 = f (ξ) 2 h3 (x )(x b)dx (3.31) ( + th )( + th ( + h))dt t(t 1 )dt = f (ξ) h 3 12 = f (ξ) (b ) Je-li funkce f n intervlu [, b] spojitá, existuje bod ξ, b tkový, že pltí f (ξ 1 ) + f (ξ 2 ) f (ξ m ) = mf (ξ). (3.32) Pro odhd chyby složeného lichoběžníkového prvidl, kde h = b, pk dostáváme m R 1 (f) = m f (ξ) 12 h3 (3.33) (b )h2 = f (ξ) (3.34) 12 33
34 Anlogicky bychom mohli odvodit vzthy pro chyby dlších prvidel. Chyb Simpsonov prvidl je dán vzthem Pro chybu jeho složené vrinty pltí Více npříkld v [1] nebo [18]. R 2 (f) = f (4) (ξ) h 5. (3.35) 90 R 2 (f) = 3.2 Metod polovičního kroku (b )h4 f (4) (ξ). (3.36) 180 Chybu numerické kvdrtury lze odhdnout pomocí vzthů (3.26). V těchto vztzích se vyskytuje mximální hodnot derivce n intervlu (, b), kterou není jednoduché zjistit. Odhd chyby je tké hodně pesimistický, protože ve skutečnosti je chyb mnohem menší. Z toho důvodu se pro odhd chyby využívá nejčstěji metod polovičního kroku. Metod polovičního kroku vychází z myšlenky, že chybu lze vyjádřit v v závislosti n kroku h následující řdou. R(h) = k h k + k+1 h k , kde k = 0, 1,..., (3.37) pokud pro chybu metody pltí, že je řádu O(h k ). Pro obdélníkovou lichoběžníkovou metodu je k = 2, pro Simpsonovu metodu tříosminové prvidlo je k = 4 k = 6 v přípdě Booleov prvidl. Odvození metody polovičního kroku Spočteme integrál I(f) s dvěm různými kroky h 1 h 2 dostneme Oznčme Znedbáme vyšší členy v rozvoji chyby I(f) = I(h 1 ) + k h k 1 + k+1 h k+1 1, (3.38) I(f) = I(h 2 ) + k h k 2 + k+1 h k+1 2. (3.39) E(h) = I(f) I(h). (3.40) I(f) I(h 1 ) + k h k 1, (3.41) I(f) I(h 2 ) + k h k 2. (3.42) Od rovnice (3.42) odečteme rovnici (3.41). Tím dostneme 0 [I(h 2 ) I(h 1 )] + k h k 2 k h k 1, (3.43) 0 [I(h 2 ) I(h 1 )] + k (h k 2 h k 1), k [I(h 2) I(h 1 )], h k 1 h k 2 34
35 proto E(h 1 ) k h k 1 [I(h 2) I(h 1 )] h k h k 2 h 1. (3.44) k 1 Pokud zvolíme h 1 = h h 2 = h (odtud název metod polovičního kroku) 2 dostáváme po jednoduché úprvě pro chybu s krokem h [ ( ) ] E(h) = 2k h I I(h), (3.45) 2 k 1 2 kde k = 1,.... Metod polovičního kroku je tedy zložen n stejné myšlence jko jeden krok Richrdsonovy extrpolce. Více v [21]. 3.3 Rombergov kvdrtur Rombergov kvdrtur vychází z myšlenky Euler - Mclurinov vzorce, kdy můžeme chybu složeného lichoběžníkového (CT h (f)) prvidl rozvinout do řdy sudých mocnin integrčního kroku h CT h (f) = I(f) + i h 2i. (3.46) Tím zjistíme vyšší přesnosti kvdrturních vzorců. Tuto myšlenku vyjádříme pomocí vzthu. K tomu Rombergov kvdrtur využívá tzv. Richrdsonovy extrpolce (2.2), která je využíván i při výpočtech numerické derivce. V prxi bývá Rombergov kvdrtur znázorňován pomocí stejné tbulky jko u Richrdsonovy extrpolce (2.1), kde hodnoty n digonále předstvují proximci integrálu s chybmi řádu O(h 4 ), O(h 6 ),.... První sloupec (při znázornění Rombergovy kvdrtury pomocí tbulky) odpovídá složenému lichoběžníkovému prvidlu s kroky h/2, h/4,..., druhý složenému Simpsonovu prvidlo třetí složenému Booleovu prvidlu. Pltí, že n - tý sloupec je kvdrturní formule řádu 2n+1 s krokem h n. Tento způsob výpočtu je vhodný pro počítče, protože pro výpočet lepší proximce určitého integrálu využíváme hodnoty, které jsou již vypočtené. Dlší informce jsou k nlezení v [13] [15]. Odvození Rombergovy kvdrtury pro chybu O(h 6 ) Vyjádřeme postupně chybu integrálu O(h 6 ) pro kroky h, h, h. Ze vzthu (3.46) 2 4 plyne i=1 I(f) CT h (f) = 1 h h 4 + O(h 6 ) (3.47) ( ) 2 ( ) 4 h h I(f) CT h (f) = O(h 6 ) (3.48) ( ) 2 ( ) 4 h h I(f) CT h (f) = O(h 6 ). (3.49)
36 Nyní pomocí vhodné lineární kombince vyjádříme I(f) s chybou O(h 6 ). Rovnici (3.47) vynásobíme neznámou x 1. Rovnici (3.48) vynásobíme neznámou x 2. Rovnici (3.49) vynásobíme neznámou x 3. Následně tyto rovnice sečteme. Celkově tedy dostáváme (x 1 + x 2 + x 3 )I(f) = x 1 CT h (f) + x 2 CT h 2 + x 1 1 h 2 h 2 + x x 3 1 h x 1 2 h 2 + x 2 2 h x 3 2 h 2 (f) + x 3 CT h (f) + (3.50) O(h6 ). Nyní sestvíme soustvu rovnic tk, bychom u I(f) dostli hodnotu 1 eliminovli členy s koeficienty 1, 2 3. Dostáváme soustvu x 1 + x 2 + x 3 = 1, (3.51) x 1 + x x 3 16 = 0, x 1 + x x = 0. Vyřešením této soustvy tří rovnic se třemi neznámými (npř. Gussovou elimincí) získáme x 1 = 64, x 45 2 = 20 x 45 3 = 1. Integrál I(f) s chybou 45 O(h6 ) vypočteme tedy I(f) 64CT h(f) 20CT h (f) + CT h (f). (3.52) 45 Obecný vzth pro Rombergovu metodu můžeme zpst pomocí následující iterční formule: I (k) 2h = 4k I (k) 2h 1 I(k 1) h 4 k Gussov kvdrtur, kde k = 1, 2,.... (3.53) V přípdě Newton-Cotesových vzorců jsme předpokládli ekvidistntní dělení intervlu, n kterém jsme chtěli proximovt hodnotu integrálu. Pokud upustíme od poždvku ekvidistntního dělení intervlu, jsme schopni dosáhnout vyšší lgebrické přesnosti. Vět Řád kvdrturní formule pro n + 1 bodů je nejvýše 2n + 1. Důkz. Necht polynom p(x) = n i=0 (x x i) 2 Π 2n+2, kde x i jsou uzly kvdrturní formule. Polynom p(x) je nezáporná funkce n intervlu, b, pro který pltí b p(x) > 0. Kvdrturní formule (3.2) je ovšem rovn nule, což je spor. Pro tento polynom tedy není kvdrturní formule přesná řád přesnosti je tedy nejvýše 2n
37 Kvdrturní formule, konstruovná tk, že její řád je 2n+1, se nzývá Gussov. Předtím, než budeme definovt Gussovy kvdrturní vzorce, je nezbytné, bychom si objsnili pojem ortogonální polymony Ortogonální polynomy Zved me množinu Π n pro množinu všech polynomů stupně nejvýše n. Symbolem Π n budeme znčit množinu všech normovných polynomů stupně nejvýše n (jejich koeficient u nejvyšší mocniny je roven jedné). Definice Necht ω je funkce, o které předpokládáme, že je integrovtelná nezáporná n intervlu, b ω(x) > 0 skoro všude n [, b]. Tkovou funkci budeme nzývt váhovou funkcí. Použitím váhové funkce ω(x) se můžeme podle [17] vyhnout řdě problémů. Jedním z nich je npříkld singulrit integrndu v bodech, které jsou uzly kvdrturní formule. V dlší části se proto budeme zbývt výpočtem integrálu b Dále definujeme sklární součin funkcí. ω(x)f(x)dx. (3.54) Definice Sklárním součinem n prostoru spojitých reálných funkcí n uzvřeném intervlu,b budeme rozumět f, g = b ω(x)f(x)g(x)dx Definice Jestliže f, g = 0, říkáme, že funkce f, g jsou ortogonální n intervlu, b. Vět Pro váhovou funkci ω(x) n intervlu, b existují polynomy p j j = 0, 1, 2,... tkové, že p i, p k = 0 pro i k. Π j Tyto polynomy lze sestrojit pomocí Grm - Schmidtov ortogonlizčního procesu. Vět Kždý polynom p Π k lze vyjádřit jko lineární kombinci ortogonálních polynomů p i Π i, i k. 2. Polynom p n Π n je ortogonální ke všem polynomům p Π n Kořeny kždého polynomu z posloupnosti ortogonálních polynomů jsou reálné, jednoduché leží v (, b). Nyní již můžeme přistoupit k smotné chrkterizci Gussov kvdrturního vzorce. Bližší informce jsou k nlezení v [2], [17] [22]. 37
38 3.4.2 Gussův Kvdrturní vzorec Vět Necht kvdrturní formule ve tvru (3.2) má stupeň přesnosti lespoň n. Předpokládejme, že p n Π n, n = 0, 1,..., jsou ortogonální polynomy n intervlu, b vzhledem k váhové funkci ω. Pk tto formule má stupeň přesnosti 2n + 1, právě tehdy, když uzly x i pro i = 0, 1,..., n této kvdrturní formule jsou kořeny polynomu p n+1 Π n+1. Důkz. Uvžujme kvdrturní formuli (3.2), která má stupeň přesnosti lespoň n. Tuto formuli můžeme podle věty získt npříkld integrcí interpolčního polynomu. Dále uvžujme polynom q(x) Π 2n+1. Zřejmě pltí, že q(x) = p n+1 (x)s n (x) + r n (x), (3.55) kde s n je podíl po dělení polynomu q(x) polynomem p n+1 (x) r n (x) je zbytek po tomto dělení. Nyní vypočteme chybu R(q). R(q) = = = + b b b b ω(x)q(x)dx α i q(x i ) (3.56) i=0 ω(x) [p n+1 (x)s n (x) + r n (x)] dx ω(x) [p n+1 (x)s n (x)] dx ω(x)r n (x)dx i=0 α i [p n+1 (x i )s n (x i ) + r n (x i )] i=0 α i p n+1 (x i )s n (x i ) i=0 α i r n (x i ) Polynom p n+1 (x) je ortogonální s vhou ω(x) k polynomu s n (x). Zároveň pltí, že uzly x i jsou kořeny polynomu p n+1 (x). První sčítnec je tedy roven nule. Z předpokldu plyne, že stupeň přesnosti kvdrturní formule je lespoň n. Proto je i druhý sčítnec roven nule. Pro chybu R(q) pltí, že je rovn nule pro libovolný polynom q(x) Π 2n+1. Stupeň přesnosti kvdrturní formule je tedy 2n + 1. Připomeňme, že tková formule se nzývá Gussov. Gussovy interpolční kvdrturní vzorce volí tedy koeficienty uzly kvdrtury tk, by jejich řád přesnosti byl mximální. Více npříkld v [3] nebo [17]. Odvození Gussov kvdrturního vzorce Podle [2] určíme koeficienty α i Gussovy kvdrtury, tk by pltilo b ω(x)q(x)dx = α i q(x i ), (3.57) i=0 kde q(x) Π 2n+1. Uvžujme ortogonální systém polynomů p 0, p 1,..., p n+1 kořeny x i polynomu p n+1. 38
39 Polynom q(x) můžeme vyjádřit následujícím způsobem q(x) = p n+1 (x)s(x) + r(x), (3.58) kde s Π n je podíl po dělení polynomu q(x) polynomem p n+1 (x) r(x) Π n je zbytek po tomto dělení. Podle (3.4.3) můžeme polynomy s(x) r(x) vyjádřit jko lineární kombinci ortogonálních polynomů. Integrál b ω(x)dx můžeme vyjádřit tkto b ω(x)q(x)dx = b ω(x)s(x)p n+1 (x)dx + b ω(x)r(x)dx. (3.59) Z vlstnosti ortogonálních polynomů uvedených ve větě plyne, že polynom p n+1 (x) je ortogonální ke všem polynomům nižšího stupně. Proto tedy b b ω(x)q(x)dx = ω(x)s(x)p n+1 (x)dx + } {{ } b =0 ω(x)q(x)dx = b b ω(x)r(x)dx, (3.60) ω(x)r(x)dx. (3.61) Polynom r(x) můžeme opět podle věty vyjádřit jko lineární kombinci ortogonálních polynomů. Položme r(x) = Nyní vyjádříme druhý sčítnec β j p j (x), kde p 0 (x) = 1. (3.62) j=0 b ω(x)q(x)dx = = = b b ω(x) ω(x) β j p j (x)dx (3.63) j=0 β j p j (x)p 0 (x)dx j=0 b β j ω(x)p j (x)p 0 (x)dx. j=0 Pokud využijeme větu 3.4.2, je druhý sčítnec, tedy levá strn rovnosti (3.57) rovn b β 0 ω(x)dx. (3.64) Zbývá vyjádřit prvou strnu rovnosti (3.57), která je proztím vyjádřen ve tvru α i q(x i ). (3.65) i=0 39
40 Jestliže využijeme vyjádření (3.58), pk pro prvou strnu rovnosti pltí α i [p n+1 (x i )s(x i ) + r(x i )]. (3.66) i=0 Protože body x i jsou kořeny polynomu p n+1 (x), pltí α i p n+1 (x i )s(x i ) +r(x } {{ } i ). (3.67) i=0 =0 S využitím (3.62) dostneme rovnici b β 0 ω(x)dx = α i i=0 j=0 β j p j (x i ), (3.68) kterou můžeme vyjádřit v mticovém tvru: p 0 (x 0 ) p 0 (x 1 )... p 0 (x n ) α b 0 p 1 (x 0 ) p 1 (x 1 )... p 1 (x n ) α 1 ω(x)dx.... = 0.. (3.69) p n (x 0 ) p n (x 1 )... p n (x n ) 0 Uzlové body x i budeme proto nyní volit podle tvru tzv. váhové funkce ω(x). Jedná se o kořeny polynomů, které jsou ortogonální s váhovou funkcí ω(x). Vlstností, která je pro Gussovu kvdrturu nejpodsttnější je, že pro stejný počet uzlových bodů je přesnější než výsledky získné metodmi zloženými n Newton - Cotesových vzorcích. V rámci práce byl implementován Gussův-Legendrův kvdrturní vzorec s váhovou funkcí ω(x) = 1 n intervlu 1, 1. Odvod me Guss-Legendrovu kvdrturu řádu 5 n intervlu 1, 1, přičemž budeme uvžovt první čtyři Legendrovy ortogonální polynomy p 0 = 1, p 1 = x, p 2 = x 2 1, p 2 3 = x 3 3x. 5 Podle věty je kvdrturní formule Gussov právě tehdy, když jko uzly kvdrtury x i pro i = 0, 1,..., n volíme kořeny polynomu p n+1 (x) Π n+1. Zjistíme proto kořeny polynomu p 3 = x 3 3x. Tyto kořeny jsou x 5 0 = 0, x 1 = α n 3, x 5 2 = Integrál 1 ω(x)dx = 2. 1 Nyní již můžeme sestvit mticovou rovnici tří rovnic o třech neznámých, jejímž řešením jsou koeficienty α i kvdrturní formule α α 1 = 0. α
41 Řešením této soustvy jsou koeficienty α 0 = 8, α 9 1 = 5, α 9 2 = 5. Dostáváme tk 9 tříbodovou kvdrturní formuli 1 f(x)dx 5 ) ( ) 3 ( 9 f f (0) f, (3.70) 5 1 která je n intervlu 1, 1 přesná pro všechny polynomy stupně nejvýše pět. Nicméně hodnoty uzlových bodů koeficientů kvdrturního vzorce nemusíme počítt, protože jsou již zznmenány v litertuře. Hodnotu integrálu n intervlu, b můžeme proximovt podle následujícího složeného vzthu [6] b f(x)dx h 2 m 1 j=0 ( ω i f i=0 ( ( 1 2 x ih + + h j + 2)) ) 1, (3.71) kde ω i jsou koeficienty Gussov-Legendrov kvdrturního vzorce x i jsou kořeny tzv. Legendrových polynomů. Počet uzlů n Uzly x i Váhy ω i ± ± 4 ± ± ±1 3 ± Tbulk 3.1: Uzly váhy Gussovy kvdrtury 41
42 4 Nelineární rovnice Ve čtvrté kpitole se budeme zbývt řešením nelineárních rovnic f(x) = 0, kde x R. Budeme tedy hledt body, které jsou kořeny rovnice. Numerické metody zbývjící se touto problemtikou jsou zprvidl iterční. Tyto metody generují posloupnost {x k } k=0. Proto jsou pro nás důležité informce o smotné konvergenci metody. Definice pltí kde f(α) = 0. Řekneme, že metod konverguje k řešení rovnice f(x) = 0, jestliže lim k xk = α, (4.1) Jestliže metod konverguje k dnému řešení, bude nás zprvidl zjímt, jk rychle tto metod konverguje. V přípdě, že metod diverguje nebo konverguje velice pomlu, musíme výpočet nějkým způsobem zstvit nenecht jej pokrčovt. Vět (Bolznov) Necht funkce f C[, b] necht f nbývá v koncových bodech intervlu hodnot s opčnými znménky, tj. f()f(b) < 0. Potom uvnitř tohoto intervlu existuje lespoň jeden bod α tkový, že f(α) = 0. V přípdě, že první derivce funkce f nemění n tomto intervlu znménko, pk se zde nchází právě jeden tkový bod. 4.1 Metod půlení intervlu Metod půlení intervlů neboli bisekce je metod, která je vždy konvergentní do jisté míry i univerzální lgoritmus, který se dá použít ve znčné míře prktických přípdů. K užití této metody je zpotřebí splnit dvě podmínky. První podmínkou, kterou musí tto metod splňovt je t, že funkce f musí být spojitá n zvoleném počátečním intervlu x 0, x 1. Druhým poždvkem je, by funkční hodnoty v krjních bodech zvoleného intervlu měly opčná znménk, tj. musí splňovt předpokldy Bolznovy věty. Pokud jsou tyto podmínky splněny, pk tto metod konverguje. Půlením intervlu x 0, x 1 zjistíme hodnotu x 2. Nyní musíme zjistit, ve kterém z nové vzniklých intervlů kořen leží. Je-li f(x 2 ) = 0, nšli jsme kořen. V přípdě, že f(x 0 )f(x 2 ) < 0, pk uvžujeme v dlším postupu výpočtu intervl x 0, x 2. Je-li f(x 0 )f(x 2 ) > 0, pk nově uvžovným intervlem je x 2, x 1. Následně budeme celý postup znovu opkovt. Z poslední iterce tohoto postupu, dostneme bod (střed 42
43 intervlu), který povžujeme z proximci kořene zdné rovnice. Čím více itercí tedy provedeme, tím je výsledek přesnější. Střed intervlu určíme jko: x k+1 = k + b k, (4.2) 2 kde k b k jsou krjní body intervlu uvžovného v k-tém kroku. Je-li f(x k+1 ) = 0, pk jsme nlezli kořen výpočet ukončíme. Jink určíme nový intervl ve smyslu Bolznov kritéri, tj. je-li f(x k )f(x k+1 ) < 0, budeme v dlší iterci prcovt s intervlem k+1, b k+1 = x k, x k+1. V přípdě, že f(x k )f(x k+1 ) > 0, budeme dále uvžovt intervl k+1, b k+1 = x k+1, x k 1. Ukončit metodu můžeme npříkld ve chvíli, kdy šířk intervlu je menší než námi zdná přesnost nebo když dvě po sobě jdoucí iterce jsou dosttečně shodné, tj. x k x k 1 < ɛ. Více npříkld v [29]. 4.2 Metod regul flsi Regul flsi zvná též metod tětiv, je velice podobná metodě půlení intervlu. Stejně jko předchozí metod vždy konverguje. Nicméně jko dělící bod intervlu neuvžuje střed intervlu, le průsečík přímky spojující ob krjní body ktuálního intervlu s osou x (proto metod tětiv). Tento průsečík vypočteme podle vzthu: x k = f(b k) k f( k )b k. (4.3) f(b k ) f( k ) Z nově vzniklých intervlů k, x k, x k, b k vybereme ten, který má v krjních bodech intervlu opčná znménk oznčíme ho k+1, b k+1 podle Bolznovy věty musí tedy obshovt kořen rovnice. Výpočet zstvíme ve chvíli, kdy nlezneme kořen rovnice, nebo opět v přípdě dosttečné shodnosti dvou po sobě následujících itercí, tj. kdy x k x k 1 < ɛ. Více informcí lze nlézt npříkld v [19]. 4.3 Metod sečen Metod sečen je podobná metodě regul flsi. Krjní body intervlu spojíme přímkou nlezneme průsečík s osou x. Nyní ovšem nepostupujeme ve smyslu Bolznovy věty, kdy bychom vybrli nový intervl obshující kořen, le vedeme sečnu z bodu [x k 1, f(x k 1 )] do bodu [x k, f(x k )]. Nyní opět nlezneme průsečík s osou x. Tímto způsobem pokrčujeme do doby, než nlezneme kořen nebo x k x k 1 < ɛ. Tento lgoritmus lze chrkterizovt vzthem: x k+1 = x k Více informcí lze nlézt v [10]. x k x k 1 f(x k ) f(x k 1 ) f(xk ). (4.4) 43
44 4.4 Newtonov metod Newtonov metod je metod, která využívá k nlezení kořene rovnice tečny. Pro výpočet musíme zvolit počáteční proximci x 0. Novou proximci kořene x i+1 nlezneme jko průsečík tečny ke grfu funkce f v bodě [x i, f(x i )] s osou x opět sestrojíme tečnu. Využijeme fktu, že hodnoty první derivce funkce určují směrnici tečny. Metod konverguje ve většině přípdů rychleji než metod bisekce. Pro výpočet pomocí Newtonovy metody tečen se užívá vzorec vycházející z Tylorov rozvoje: x k+1 = x k f(xk ) f (x k ), (4.5) kde x k je k-tá proximce kořene. Newtonov metod je z určitých předpokldů kvdrticky konvergentní, tudíž s kždou novou itercí dojde ke zdvojnásobení počtu pltných číslic. Nevýhodou Newtonovy metody je ovšem skutečnost, že ne vždy konverguje. Musíme si uvědomit, že volb počáteční proximce je velmi důležitým (ne všk postčujícím) fktorem při hledání kořene rovnice. Pokud máme z úkol hledt kořen konvexní funkce, musíme počáteční proximci x 0 volit tk, by f(x 0 ) > 0, pokud vyšetřujeme kořen rovnice pro konkávní funkce, musíme počáteční proximci x 0 volit tk, by f(x 0 ) < 0. Dlší informce lze získt v [23], [24]. 4.5 Steffensenov metod Tto metod je velmi podobná Newtonově metodě tečen. Steffensenov metod doshuje kvdrtické konvergence, le n rozdíl od Newtonovy metody nevyužívá pro svůj výpočet derivce v bodě. Metod je definován následujícím předpisem: x k+1 = x k f(xk ) d k, (4.6) kde d k = f(xk +f(x k )) f(x k ) f(x k ) je speciálně spočtená proximce f (x k ). V kždé iterci se funkce f(x) vyhodnocuje hned dvkrát to konkrétně f(x k ) f(x k + f(x k )). Je tk vidět, že vyhnutí se výpočtu derivcí přináší o jedno vyhodnocení nvíc. Bližší informce lze nlézt v [25]. 4.6 Hlleyov metod Tto metod je zložen n proximci funkce Tylorovým polynomem druhého řádu, je tedy přesnější než Newtonov metod, která je zložen n proximci Tylorovým polynomem prvního řádu, proto je její konvergence rychlejší. Ovšem z cenu nutnosti vypočtení i druhé derivce funkce v bodě. 44
45 Stejně jko u Newtonovy či Steffensenovy metody musíme vhodně zvolit počáteční proximci. Pro nlezení kořene rovnice využívá Hlleyov metod následujícího vzthu: x k+1 = x k f(x k ) f (x k ) f (x k )f(x k ) 2f (x k ) Dlší informce jsou k nlezení npříkld v [26]. 4.7 Sturmov posloupnost. (4.7) Sturmov posloupnost slouží pro stnovení počtu loklizci reálných kořenů polynomu P (x) = i x i, kde i R, x C. (4.8) i=0 Definice Sturmov posloupnost pro polynom P n intervlu (, b) je posloupnost polynomů P 0 (x) = P (x), P 1 (x) = P (x),..., P k (x) = konstnt, P i+1 (x) = rem(p i 1 (x), P i (x)), kde rem je zbytek po dělení polynomů. Znkem W (x) budeme znčit počet znménkových změn ve Sturmově posloupnosti {P i (x)} k i=1 v bodě x. Vět (Sturmov) Je-li P () P (b) různé od nuly, je počet různých reálných kořenů polynomu P (x) v intervlu, b roven číslu I b = W (b) W (). Konstruujeme posloupnost polynomů zmenšujících se stupňů, přičemž poslední člen posloupnosti P k (x) není roven nule polynom P (x) má pouze jednoduché kořeny. V opčném přípdě má polynom P (x) vícenásobné kořeny. Pokud v tomto přípdě vydělíme polynom P (x) předposledním členem posloupnosti P k 1 (x), který je největším společným dělitelem polynomu P 0 (x) P 1 (x), získáme polynom, jež má stejné kořeny jko polynom P 0 (x), le všechny jednoduché. Toto plyne z Euklidov lgoritmu. Následně znovu plikujeme Sturmovu větu. Více npříkld v [20] nebo [27]. 45
46 5 Lineární rovnice Soustvy lineárních rovnic jsou velice čstou úlohou numerické mtemtiky vyskytující se npříkld v teorii obvodů či sttistice. Předtím než chrkterizujeme numerické metody pro výpočet řešení soustv lineárních rovnic, je nutné definovt některé pojmy, které budeme ve zbytku kpitoly využívt. 5.1 Zákldní pojmy Definice Soustvu n lineárních rovnic o n neznámých budeme definovt 11 x x n x n = b 1, 21 x x n x n = b 2,..., n1 x 1 + n2 x nn x n = b n, (5.1) kde ij, b i R pro i = 1,..., n, j = 1,..., n. kde Vektorově můžeme tuto soustvu zpst: Ax = b, (5.2) n x 1 b n A=..., x= x 2., b= b 2.. n1 n2... nn x n b n Mtice A se nzývá mtice soustvy, vektor x se nzývá vektor neznámých, vektor b se nzývá vektor prvé strny. Definice Rozšířenou soustvu n lineárních rovnic o n neznámých budeme definovt n b n b 2 A=.... (5.3) n1 n2... nn b n 46
47 Definice Hodnost mtice A je rovn mximálnímu počtu nezávislých řádků. Hodnost mtice znčíme h(a). Definice Necht A R n,n. Mtici A nzveme dolní trojúhelníkovou mticí, pokud pltí ij = 0 pro všechn i < j. Definice Necht A R n,n. Mtici A nzveme horní trojúhelníkovou mticí, pokud pltí ij = 0 pro všechn i > j. Definice Necht A R n,n. Pk A se nzývá regulární, pokud h(a) = n. V opčném přípdě se nzývá singulární. Vět (Frobeniov) Je-li h(a) < h(a), pk soustv (5.1) nemá řešení. Je-li h(a) = h(a) = n, pk soustv (5.1) má právě jedno řešení. Je-li h(a) = h(a) = r < n, pk soustv (5.1) má nekonečné mnoho řešení závislých n n r prmetrech. Definice Mtice A se nzývá řádkově ostře digonálně dominntní právě tehdy, když ii > ij, i = 1,..., n. j=1,j i Definice Mtice A se nzývá sloupcově ostře digonálně dominntní právě tehdy, když jj > ij, j = 1,..., n. i=1,i j Definice Je-li mtice A = ( ij ) typu (n, m), pk trnsponovná mtice k mtici A je mtice A T = (b ji ) typu (m, n), kde b ji = ij, i = 1,..., n, j = 1,..., m. Definice Necht A R n,n. Mtice A se nzývá symetrická právě tehdy, když pltí A T = A. Definice Mtice A je pozitivně definitní, pokud pro libovolný nenulový vektor x pltí x T Ax > 0. Vět Necht A R n,n je symetrická pozitivně definitní mtice. Potom následující vlstnosti jsou ekvivlentní. 1. Mtice A je pozitivně definitní. 2. Všechn vlstní čísl všech submtic mtice A jsou kldná. 3. Všechny hlvní minory (determinnty hlvních submtic) mtice A jsou kldné. 4. Všechn vlstní čísl mtice A jsou kldná. 47
48 5. Existuje regulární dolní trojúhelníková mtice L tk, že A = LL T. Definice Spektrem σ(a) čtvercové mtice A nzveme množinu všech vlstních čísel. Definice Spektrální poloměr mtice A R n,n je číslo ρ(a) = mx i=1,2,...,n λ i, kde λ i, i = 1, 2,..., n jsou vlstní čísl mtice A. Definice Necht A R n,n. Pk A se nzývá ortonormální, pokud AA T = I, kde I je jednotková mtice. Jestliže je mtice soustvy regulární, tj. determinnt mtice je různý od nuly, má tto soustv pouze jediné řešení x = A 1 b. Nicméně výpočet inverzní mtice A 1 k mtici A je velice čsově pmět ově náročná operce, zejmén pro rozsáhlé systémy rovnic. Z tohoto důvodu využíváme pro řešení soustv lineárních rovnic numerické metody, které lze rozdělit do dvou skupin. Více npříkld v [18], [28] nebo [29]. 5.2 Přímé metody Princip přímých metod spočívá v převedení soustvy rovnic n ekvivlentní soustvu s trojúhelníkovou mticí. Použitím těchto metod získáme po konečném počtu elementárních lgebrických úprv teoreticky přesné řešení. Toto řešení ovšem podléhá vlivu zokrouhlovcích chyb, proto nevypočteme obvykle přesné, le pouze přibližné řešení. Chyb řešení je závislá n vlstnostech mtice A. Tyto vlstnosti souvisí s tzv. podmíněností mtic. Podle [2] můžeme říci, že mtice je dobře podmíněná, jestliže reltivně mlé změny prvků mtice nebo vektoru prvé strny způsobí reltivně mlé změny v řešení. Nopk mtice je oznčován jko šptně podmíněná, jestliže reltivně mlé změny prvků mtice nebo vektoru prvé strny způsobí velké změny řešení Gussov elimince Relizci Gussovy elimince lze rozdělit do dvou n sebe nvzujících kroků. Přímý chod Prvním krokem je přímý chod. Hlvní myšlenk přímého chodu spočívá v postupném odečítání rovnic, které jsou násobeny různými koeficienty ž do stvu, kdy převedeme původní soustvu n ekvivlentní soustvu s trojúhelníkovou mticí: ij = ij ik kk kj, b i = b i ik kk b k, kde k = 1,..., n 1, i = k + 1,..., n, j = k + 1,..., n. 48
49 Zpětný chod Druhým krokem je zpětný chod, který slouží k určování hodnot neznámých zdné soustvy lineárních rovnic. Z trojúhelníkového tvru určíme hodnotu neznámé x n přímo zpětným doszováním vypočtených neznámých jsme schopni určit hodnoty všech zbylých neznámých [30]: x i = 1 ii ( b i j=i+1 Relizovtelnost Gussovy elimince x j ij ), i = n,..., 1. (5.4) Algoritmus Gussovy elimince je relizovtelný, jestliže mtice A je sloupcově ostře digonálně dominntní, tj. je-li bsolutní hodnot digonálního prvku větší než součet bsolutních hodnot osttních prvků ve sloupci. Dále můžeme říci, že Gussov elimince je relizovtelná tehdy, je-li mtice A symetrická pozitivně definitní, tj. všechn vlstní čísl mtice A jsou kldná. Pro určení pozitivní definitnosti se v prxi čsto využívá Choleského rozkld, který popíšeme dále. Pokud mtice A nesplňuje některý předpokld z předchozího odstvce nelze obecně říci, že soustvu lineárních rovnic nelze řešit Gussovou elimincí. K výpočtu řešení soustvy lineárních rovnic s libovolnou regulární mticí pomocí Gussovy elimince můžeme využít tzv. pivotci. Pokud se v průběhu přímého chodu vyskytne nulový digonální prvek, nelze výpočet z důvodu dělení nulou provést. Druhý důvod použití pivotce plyne z numerické nestbility, která je způsoben kumulcí zokrouhlovcí chyby. Použitím pivotce se snžíme tuto chybu zmenšit. Pivotci lze relizovt v zásdě dvěm způsoby. Prvním způsobem je částečná pivotce, jejíž podsttu přiblížíme v následujícím odstvci. V i-tém kroku Gussovy elimince nlezneme mezi i-tou ž n-tou rovnicí rovnici, která má u neznámé x i největší koeficient v bsolutní hodnotě následně provedeme záměnu pořdí této rovnice s i-tou rovnicí. Anlogicky lze provádět záměnu pořdí sloupců. Druhou vrintou pivotce je úplná pivotce, která spočívá v tom, že v k-tém kroku volíme z hlvní prvek ten, který je největší v bsolutní hodnotě v submtici vytvořené vynecháním prvních k l řádků sloupců v uprvené mtici. Provádíme záměnu pořdí řádků sloupců k-té rovnice s rovnicí, která má u neznámé x k největší koeficient v bsolutní hodnotě. Je důležité si uvědomit, že nutnost sledovt největší prvek v celé submtici následná záměn pořdí řádků sloupců způsobuje čsovou pmět ovou náročnost. Z tohoto důvodu je v plikci využit částečné pivotce, více viz [31]. Závěrem této podkpitoly upozorníme n náročnost Gussovy eliminční metody, to jk z čsového, tk i pmět ového hledisk. Gussov elimince se hodí nejlépe pro nepříliš rozsáhlé soustvy s plnou mticí nebo pro určité typy velkých řídkých mtic (npř. třídigonální mtice). Bližší informce můžeme nlézt npříkld v [18], [32]. 49
50 5.2.2 LU rozkld Metod LU dekompozice je vlstně vricí Gussovy eliminční metody. Mtici A vyjádříme pomocí součinu dvou mtic L U, kde mtice L je dolní trojúhelníková mtice mtice U horní trojúhelníková mtice. Místo soustvy Ax = b budeme řešit tedy soustvy dvě: Ly = b, (5.5) Ux = y. (5.6) Ovšem řešení těchto dvou soustv je vzhledem ke tvru mtic L U jednodušší rychlejší. Tento rozkld je zvláště výhodný pro řešení soustv se stejnou mticí, le různými vektory prvé strny [32]. Mtice L U konstruujeme npříkld podle následujících vzthů [10]: Zbývjící prvky určíme podle těchto vzthů: j=1 l rr = 1, (5.7) u 11 = 11, (5.8) l i1 = i1 u 11, (5.9) u 1r = 1r. (5.10) r 1 u ir = ir l ij u jr, i = 2,..., r, (5.11) j=1 l ir = 1 r 1 l ij u jr, i = r + 1,..., n, r = 2,..., n. (5.12) u rr Poté můžeme řešit soustvy Ly = b Ux = y tímto způsobem: i 1 y i = b i l ik y k, i = 1,..., n, (5.13) ( x i = 1 y i u ii k=1 k=i+1 u ik x k ), i = n,..., 1. Uvedený lgoritmus lze podle [33] provést, jestliže se během výpočtu neobjeví nulový digonální prvek. Pokud se tento prvek objeví, je nutné stejně jko u Gussovy elimince provést pivotci. V opčném přípdě se součin LU nerovná mtici A, le mtici A s permutovnými řádky, tj. PA = LU. (5.14) Informce o pivotci (záměně řádků) je zznmenávná do permutční mtice P, jejíž zákldní tvr odpovídá jednotkové mtici. Nyní budeme řešit soustvy: Ly = Pb, (5.15) Ux = y. 50
51 5.2.3 Choleského rozkld Jestliže je zdná mtice A symetrická pozitivně definitní, můžeme mtici A rozložit n součin dolní trojúhelníkové mtice L její trnsponovné mtice L T, tj. A = LL T. (5.16) Tím docílíme ušetření počtu ritmetických opercí. Tento způsob výpočtu se nzývá metod odmocnin, nebo tké Choleského dekompozice. Mtici L vypočteme podle následujících vzthů [10]: k 1 l kk = kk lki 2, (5.17) k=1 i=1 ( ) l ij = 1 j 1 ij l ik l jk. (5.18) l jj Po vypočtení mtice L budeme opět řešit dvě soustvy rovnic 5.3 Iterční metody L T x = y, (5.19) Ly = b. V přípdě iterčních metod konstruujeme posloupnost vektorů {x k } k=0 tkovou, že lim k x k = x, kde x je řešením Ax = b x 0 je počáteční proximce řešení. Vektory x k konstruujeme pomocí předpisu x k+1 = Tx k + g, (5.20) kde T je iterční mtice g vektor. Pokud je x = A 1 b řešením soustvy Ax = b, pk poždujeme, by pltilo x = Tx + g. Jestliže tedy pro řešení soustvy lineárních rovnic Ax = b využijeme iterční metody splníme-li podmínky věty věty 5.3.2, dostáváme teoreticky přesné řešení po nekonečně mnoh itercích. Důležité je tedy stnovení zstvovcího kritéri, kterým může být počet itercí nebo npříkld x k+1 x k < ɛ, kde ɛ je poždovná přesnost. Při použití těchto metod si kldeme v zásdě dvě otázky. Zd iterční proces konverguje jk rychlá je jeho přípdná konvergence. Vět (Nutná postčující podmínk konvergence) Posloupnost {x k } k=0 generovná vzthem x k+1 = Tx k + g konverguje k přesnému řešení x soustvy Ax = b pro kždou volbu počáteční proximce x 0, právě když spektrální poloměr iterční mtice T je menší než 1, tj. ρ(t) < 1. 51
52 Vět (Postčující podmínk konvergence) Posloupnost {x k } k=0 generovná vzthem x k+1 = Tx k + g konverguje k přesnému řešení x soustvy Ax = b pro kždou volbu počáteční proximce x 0, pokud T < 1 pro některou z mticových norem. Více informcí lze nlézt v [32] Jcobiho metod Princip této metody spočívá v rozložení mtice A n součet A = E + D + F, (5.21) kde E je ostře dolní trojúhelníková, D digonální F je ostře horní trojúhelníková mtice. Jcobiho metodu můžeme vypočítt podle mticových nebo složkových vzthů: Ax = b, (5.22) (E + D + F)x = b, Dx = (E + F)x + b, x = D 1 (E + F)x + D 1 b. Z poslední rovnosti získáme iterční předpis Jcobiho metody: x k+1 = D 1 (E + F)x k + D 1 b, k = 0, 1,.... (5.23) Jcobiho metodu můžeme rozepst po složkách: ( ) x k+1 i = 1 i 1 b i ij x k j ij x k j, i = 1,..., n, k = 0, 1,.... (5.24) ii j=1 j=i+1 Dlší podrobnosti lze nlézt v [2] nebo [19] Guss-Seidelov metod Princip Guss-Seidelovy metody spočívá v trnsformci soustvy lineárních rovnic Ax = b n soustvu (D + E)x + Fx = b. Jednoduchých odvozením můžeme získt předpis Guss-Seidelovy metody x k+1 = (D + E) 1 Fx k + (D + E) 1 b, k = 0, 1,.... (5.25) V mticovém zápisu můžeme vidět nutnost potřeby výpočtu inverzní mtice. Tomu se můžeme vyhnout tímto způsobem: (D + E)x k+1 = Fx k + b, Dx k+1 = Ex k+1 Fx k + b, (5.26) x k+1 = D 1 Ex k+1 D 1 Fx k + D 1 b. 52
53 Předpis po složkách má tvr: ( x k+1 i = 1 i 1 b i ij x k+1 j ii j=1 j=i+1 ij x k j ), i = 1,..., n, k = 0, 1,.... (5.27) Z rovnic uvedených u Jcobiho Guss-Seidelovy metody můžeme vypozorovt, že v přípdě Jcobiho metody je nutné si pro výpočet dlší iterce pmtovt celý vektor x k, ztímco Guss-Seidelov metod využívá při výpočtu k-té proximce neznámé x k i již vypočtené neznámé x k j, j = 1,..., i 1. U Jcobiho Guss Seidelovy metody dochází ke konvergenci, pokud je mtice soustvy ostře řádkové nebo sloupcově digonálně dominntní. V přípdě Guss- Seidelovy metody je konvergence zručen i pro přípd symetrických pozitivně definitních mtic soustv. Guss Seidelov metod ve většině přípdů konverguje rychleji než Jcobiho metod. Nicméně podle [18] existují přípdy, kdy Jcobiho metod konverguje, ztímco Guss Seidlov metod diverguje. Podrobnější informce nlezneme v [27] Superrelxční metod Superrelxční metod je vricí Guss-Seidelovy metody, která konverguje pro mtice soustv, které jsou ostře řádkově nebo sloupcově digonálně dominntní nebo pro symetrické pozitivně definitní mtice. Obshuje superrelxční fktor ω, který ovlivňuje rychlost konvergence. Superrelxční fktor kldeme obvykle jko hodnotu náležící intervlu 1, 2). Ze vzthů uvedených níže můžeme vidět, že pro ω = 1 je superrelxční metod shodná s Guss-Seidelovou metodou. Důležitým fktorem konvergence této metody je správná volb ω, která může při vhodné volbě vést ke zrychlení konvergence (ke zrychlení nejčstěji volíme ω > 1). V některých přípdech je ovšem vhodná volb ω < 1, jež sice zpomlí konvergenci, le zlepší stbilitu úlohy. Tto metod je dán předpisem x k+1 = (D + ωe) 1 [(1 ω)d ωf]x k + (D + ωe) 1 ωb. (5.28) Rozepíšeme-li předpis po složkách dostáváme x i k+1 = x k i + ω( x i k+1 x k i ), (5.29) kde ( x k+1 i = 1 i 1 b i ij x k+1 j ii j=1 j=i+1 ij x k j ), i = 1,..., n, k = 0, 1,... Více npříkld v [29], [32], [34]. 53
54 5.4 Soustvy s obdélníkovou mticí V následující části budeme uvžovt soustvy s obdélníkovou mticí. Definice Soustv m lineárních rovnic o n neznámých je definován 11 x x n x n = b 1, 21 x x n x n = b 2,..., m1 x 1 + n2 x mn x n = b m, (5.30) kde ij, b i R pro i = 1,..., m, j = 1,..., n. Z Frobeniovy věty vyplývá, že soustv rovnic (5.30) má jediné řešení, jestliže hodnost mtice A hodnost rozšířené soustvy rovnic je rovn min(m, n). Zjistíme-li, že hodnost mtice A hodnost rozšířené soustvy rovnic je rozdílná, pk soustv (5.30) nemá řešení. Soustv (5.30) má nekonečně mnoho řešení, jestliže hodnost mtice A hodnost rozšířené soustvy rovnic je menší než min(m, n). Definice Mtice A + jestliže splňuje: se nzývá pseudoinverzní (Mooreov - Penroseov), 1. A + AA + = A +, 2. AA + A = A, 3. (A + A) T = A + A, 4. (AA + ) T = AA +. Jestliže je mtice A regulární, pk je pseudoinverzní mtice rovn mtici inverzní Singulární rozkld Vět Kždou mtici A R m n lze rozložit n součin A = UΣV T, (5.31) kde U R m m, V R n n jsou ortonormální mtice mtice Σ R m n je digonální, Σ = dig (σ 1, σ 2,..., σ k ), k = min (m, n), (5.32) jejíž digonální prvky splňují kde r = h (A). σ 1 σ 2... σ r > σ r+1 =... = σ k = 0, (5.33) 54
55 Digonální prvky σ 1, σ 2,..., σ k mtice Σ se nzývjí singulární čísl mtice A. Sloupce mtice U, resp. mtice V jsou ortonormální vlstní vektory mtice AA T typu [m, m], resp. mtice A T A typu [n, n]. Dále pltí, že AA T A T A jsou reálné čtvercové pozitivně semidefinitní mtice, která mjí stejná nenulová vlstní čísl. Tto vlstní čísl jsou proto nezáporná. Nenulová singulární čísl mtice A jsou odmocniny z těchto vlstních čísel. Nlezneme-li singulární rozkld mtice, můžeme sndno vypočítt mtici pseudoinverzní, nebot pltí A + = VΣ + U T, (5.34) kde Σ + R n m je digonální mtice ( 1 Σ + = dig, 1,..., 1 ), 0,..., 0. (5.35) σ 1 σ 2 σ r Řešení mticové rovnice Ax = b poté nlezneme jko x = A + b, přičemž pltí, že pokud soustv Ax = b má nekonečně mnoho řešení, pk x = A + b je řešení s nejmenší Euklidovou normou. V přípdě, že dná soustv řešení nemá, pk x = A + b je nejlepší řešení ve smyslu nejmenších čtverců, tj. b Ax b Ay, kde y R n. Má-li rovnice Ax = b jediné řešení, pk x = A + b je tímto řešením. Podrobnější informce lze nlézt v [19], [28], [32] nebo [35]. V rámci diplomové práci je singulární rozkld mtice relizován pomocí QR rozkldu s Householderovou trnsformcí. 55
56 6 Vlstní čísl vlstní vektory mtic Numerické metody pro výpočet vlstních čísel vlstních vektorů mtice A můžeme rozdělit do dvou ktegorií. Metody první ktegorie se soustředí n tzv. částečný problém vlstních čísel mtice A, kdy se snžíme nlézt pouze určitou podmnožinu vlstních čísel vstupní mtice (npříkld vlstní číslo o největší resp. nejmenší bsolutní hodnotě). Druhou ktegorii tvoří metody, které se zbývjí tzv. úplným problémem vlstních čísel. Použitím těchto metod se snžíme nlézt všechn vlstní čísl mtice A. Předtím než se budeme zbývt numerickými metodmi pro výpočet vlstních čísel vlstních vektorů mtice, shrneme některé zákldní pojmy, které budeme ve zbytku kpitoly využívt. 6.1 Zákldní pojmy Definice Necht A R n,n. Číslo λ, pro které má homogenní soustv (A λi) x = 0 (6.1) nenulové řešení, se nzývá vlstní číslo mtice A. Toto nenulové řešení x = (x 1, x 2,..., x n ) oznčujeme jko (prvý) vlstní vektor mtice A. Z věty plyne, že homogenní soustv má vždy lespoň jedno řešení (triviální). Jestliže je dná mtice nvíc singulární, má soustv nenulové řešení. Toto řešení je určeno n h(a) prmetry, kde n je počet rovnic dné soustvy. Pro singulární mtici soustvy pltí, že její determinnt je roven nule, což nás vede k následující definici. Definice Levým vlstním vektorem y oznčujeme vektor, který je řešením mticové rovnice y T A = λy T. (6.2) Vět Levý vlstní vektor y je (prvým) vlstním vektorem trnsponovné mtice A T. Důkz. Ze vzthu (6.2) plyne, že y T A = λy T. (6.3) 56
57 Trnsponujeme-li mticovou rovnici, pk dostáváme (y T A) T = (λy T ) T, (6.4) A T y = λy (6.5) levý vlstní vektor je tedy zároveň prvým vlstním vektorem mtice A T. Vět Levé prvé vlstní vektory, které odpovídjí různým vlstním číslům, jsou ortogonální. Důkz. Uvžujme dvě vlstní čísl λ 1 λ 2 dv vlstní vektory x 1, x 2 příslušné k vlstnímu číslu λ 1, resp. λ 2. Předpokládejme, že λ 1 λ 2. Pltí Ax 1 = λ 1 x 1 (6.6) Ax 2 = λ 1 x 2. (6.7) Mticovou rovnici trnsponujeme (Ax 1 ) T = (λ 1 x 1 ) T (6.8) x T 1 A = (λ 1 x 1 ) T. (6.9) Rovnici vynásobíme zprv vektorem x 2 x T 1 Ax 2 = (λ 1 x 1 ) T x 2, (6.10) x T 1 λ 2 x 2 = λ 1 x T 1 x 2, (6.11) λ 2 x T 1 x 2 = λ 1 x T 1 x 2. (6.12) Kdyby x T 1 x 2 0, tk můžeme tímto číslem rovnici vydělit. Potom by ovšem λ 1 = λ 2, což je spor s předpokldem. Proto x T 1 x 2 = 0 vlstní vektory příslušné různým vlstním číslům jsou ortogonální. Definice Vlstními čísly mtice A jsou právě t čísl λ, která jsou kořenem chrkteristického polynomu p(λ) = det(a λi) = ( 1) n λ n + b 1 λ n b n 1 λ + b n. (6.13) Kždá mtice řádu n má tedy n vlstních čísel λ 1, λ 2,..., λ n, jestliže kždé vlstní číslo počítáme tolikrát, jká je jeho násobnost. Metody, které všk počítjí vlstní čísl jko kořeny chrkteristického polynomu, se příliš nevyužívjí. Hlvním důvodem je podle [32] výpočetní náročnost (zejmén pro velké mtice) numerická nestbilit. Metody, které jsou v prxi využívány čstěji, jsou zloženy n podobnostní trnsformci (připomeňme, že podobnostní trnsformce nemění vlstní čísl, viz vět 6.1.5), kdy se snžíme trnsformovt původní mtici n mtici podobnou, která je trojúhelníková, nebot pltí následující vět. Vět Vlstními čísly trojúhelníkové mtice jsou prvky n její digonále. 57
58 Vět Vlstní vektory libovolné mtice odpovídjící různým vlstním číslům jsou lineárně nezávislé. Definice Čtvercové mtice A B nzýváme podobné, jestliže existuje regulární mtice P tková, že pltí P 1 AP = B. (6.14) Vět Podobné mtice mjí stejná vlstní čísl včetně jejich násobnosti. Důkz. Jestliže λ je vlstní číslo mtice A x příslušný vlstní vektor, pk pltí vzth (6.1). Uvžujme regulární mtici P. Ze vzthu (6.1) plyne P 1 Ax = λp 1 x. (6.15) Necht y = P 1 x. Z toho plyne, že x = Py. Pokud dosdíme do vzthu (6.15), dostáváme P 1 APy = λy. (6.16) Číslo λ je tedy zároveň vlstním číslem P 1 AP y je příslušný vlstní vektor. Obrácené tvrzení le nepltí. Z rovnosti spekter mtic tedy nevyplývá jejich podobnost. Uvžujme nyní mtici X, jejíž i-tý sloupec je vlstní vektor příslušný k vlstnímu číslu λ i, digonální mtici Λ s digonálními prvky λ 1,λ 2...,λ n. Pk pltí AX = XΛ (6.17) X 1 AX = Λ. (6.18) Budou-li vlstní vektory mtice X lineárně nezávislé, pk bude mtice X regulární mtice A bude tedy podobná digonální mtici. Tento přípd podle [3] nstává, když má mtice A všechn vlstní čísl různá nebo když je symetrická. V diplomové práci jsme se soustředili n výpočet vlstních čísel vlstních vektorů reálné symetrické mtice, uvedeme proto některé vlstnosti těchto mtic. Vět Všechn vlstní čísl k nim příslušné vlstní vektory symetrické mtice jsou reálné. Vět Symetrická mtice řádu n má právě n lineárně nezávislých vlstních vektorů. Vět Levé prvé vlstní vektory symetrické mtice příslušné stejným vlstním číslům si jsou rovny. Důkz. Z definice plyne, že levý vlstní vektor je prvým vlstním vektorem mtice A T. Z definice symetrické mtice A T = A plyne, že levý prvý vlstní vektor si jsou rovny. 58
59 Definice Dv vektory nzveme ortogonální, jestliže je jejich sklární součin roven nule. Vět Vlstní vektory symetrické mtice odpovídjící různým vlstním číslům jsou ortogonální. Důkz. Plyne z věty z věty Z předcházejících odstvců plyne, že pro symetrické mtice můžeme nlézt podobnostní trnsformci v následujícím tvru A = XΛX T, (6.19) kde sloupce mtice X jsou tvořeny ortonormálními vlstními vektory mtice A Λ je digonální mtice s vlstními čísly mtice A. Více npříkld v [15], [28], [36], [37], [38] nebo [39]. 6.2 Částečný problém vlstních čísel Mocninná metod Mocninná metod slouží k určení vlstního čísl mtice A o největší bsolutní hodnotě (dominntní vlstní číslo). Konstrukce mocninné metody Předpokládejme, že mtice A řádu n má n lineárně nezávislých vlstních vektorů jediné dominntní vlstní číslo λ 1. Uspořádejme vlstní čísl sestupně λ 1 > λ 2 λ 3... λ n. (6.20) Z předpokldu plyne, že libovolný vektor x 0 R n můžeme vyjádřit jko lineární kombinci n lineárně nezávislých vlstních vektorů v i, i = 1,..., n x 0 = γ i v i. (6.21) i=1 Nyní budeme konstruovt posloupnost Pro x i+1 dostáváme x i+1 = Ax i, i = 0, 1,.... (6.22) x i+1 = Ax i = A 2 x i 1 = A 3 x i 2 =... = A i+1 x 0, i = 0, 1,.... (6.23) V dlším postupu využijeme následující větu. Vět Jestliže λ je vlstním číslem mtice A x je příslušným vlstním vektorem, pk λ 2 je vlstním číslem mtice A 2 x příslušným vlstním vektorem. 59
60 Z předchozích vzthů z rovnosti Ax i = λ i x i vyplývá, že x k = A k x 0 = γ i A k v i = i=1 γ i λ k i v i = λ k 1 i=1 i=1 ( ) k λi γ i v i. (6.24) λ 1 Vyjdeme-li z předpokldu (6.20), pk pltí ( λi lim k λ 1 ) k = 0, i = 2, 3,..., n (6.25) lim k xk = λ k 1γ 1 v 1. (6.26) Ze vzthu (6.26) plyne, že vlstní vektor určený jko lim k x k se liší od vlstního vektoru v 1 pouze multipliktivní konstntou. Připomeňme, že libovolný nenulový násobek vlstního vektoru je tké vlstním vektorem dné mtice. Nyní vyvstává otázk, jk určíme proximci vlstního čísl λ 1. Pro j-tou složku vektoru x k pltí x k j λ k 1γ 1 v 1j, (6.27) kde v 1j je j-tá složk vektoru v 1. Anlogicky pro j-tou složku vektoru x k+1 pltí x k+1 j λ k+1 1 γ 1 v 1j. (6.28) Ze vzthu (6.27) vyjádříme λ k 1 λ k 1 Vzth (6.28) rozepíšeme do následujícího tvru pro proximci vlstního čísl pltí Toto odvození můžeme zobecnit. xk j γ 1 v 1j. (6.29) x k+1 j λ 1 λ k 1γ 1 v 1j, (6.30) λ 1 xk+1 j. (6.31) x k j Vět Je-li y libovolný vektor, který není ortogonální k vlstnímu vektoru v, pk pro proximci vlstního čísl λ 1 pltí λ 1 = yt x k+1 y T x k. (6.32) 60
61 V prxi čsto volíme vektor y tk, by měl n pozici odpovídjící největší složce vektoru x k+1 složku rovnu jedné osttní složky nulové. Aproximci vlstního čísl λ 1 určíme tedy následujícím způsobem λ 1 mx 1 j n xk+1 j mx 1 j n xk j. (6.33) Při implementci lgoritmu mocninné metody je kždá proximce vlstního vektoru z důvodu omezené pměti (překročení dtového rozshu dtového typu) počítče obvykle normlizován (npříkld tk, by byl největší složk vektoru rovn jedné). Jko proximci vlstního čísl λ 1 poté volíme největší složku vlstního vektoru nebo normu vlstního vektoru. Z předcházejících odstvců plyne, že mocninná metod je iterční metod, jejíž rychlost konvergence závisí zejmén n podílu λ 2 λ 1. Jestliže je tento podíl roven přibližně jedné, je konvergence mocninné metody pomlá. Je-li ovšem λ 1 o hodně větší než λ 2, pk je konvergence rychlá. Smotnou konvergenci může výrzně ovlivnit nevhodná volb počáteční proximce x 0. Volíme-li počáteční vektor npříkld tk, že γ 1 0 pltí, že λ 2 > λ 3, pk metod konverguje k vlstnímu číslu λ 2. Metodu ukončíme ve chvíli, je-li rozdíl dvou po sobě jdoucích proximcí vlstního čísl menší než zdná přesnost nebo po m krocích lgoritmu. Více v [15], [28] nebo [37] Inverzní mocninná metod Jestliže chceme nlézt v bsolutní hodnotě nejmenší vlstní číslo vstupní mtice A k němu příslušný vlstní vektor, můžeme použít inverzní mocninnou metodu. Opět vyjdeme z předpokldu, že mtice A je řádu n, má n lineárně nezávislých vlstních vektorů jediné dominntní vlstní číslo λ 1. Dále předpokládejme, že pro vlstní čísl λ i, i = 0, 1,..., n, pltí λ 1 λ 2 λ 3... > λ n > 0, (6.34) tj. pro vlstní čísl inverzní mtice A 1 pltí 1 > 1... > 1 0. (6.35) λ n λ n 1 Vět Je-li λ nenulovým vlstním číslem mtice A vektor x je vlstním vektorem příslušný k tomuto vlstnímu číslu, pk 1 je vlstním číslem inverzní mtice A 1 vektor x je vlstním vektorem příslušným k tomuto vlstnímu λ číslu. Pomocí inverzní mocninné metody můžeme tedy určit vlstní číslo o největší bsolutní hodnotě mtice A 1, tím zároveň v bsolutní hodnotě nejmenší vlstní číslo mtice A. Dlší informce npříkld v [32] nebo [40]. λ 1 61
62 6.2.3 Ryleighův podíl Metod Ryleighov podílu je modifikcí mocninné metody, která se využívá pro výpočet dominntního vlstního čísl symetrické mtice příslušného vlstního vektoru. Z věty plyne, že vlstní čísl reálné symetrické mtice jsou reálná. Pro normovné vlstní vektory příslušné k různým vlstním číslům pltí Aproximci vlstního čísl určíme pomocí podílu v T i v j = 0, i j, v T i v i = 1. (6.36) λ 1 = (xk+1 ) T x k+1 (x k ) T x k. (6.37) Konvergence této metody k řešení bude tedy zhrub dvkrát rychlejší než v přípdě mocninné metody. Dlší informce jsou uvedeny npříkld v [32] nebo [40] Hottelingov redukce Čsto potřebujeme určit i dlší vlstní čísl příslušné vektory. Tto vlstní čísl vektory můžeme zjistit pomocí tzv. deflce. Ide deflce spočívá v tom, že pro zjištění dlšího vlstního čísl příslušného vlstního vektoru nhrdíme původní mtici redukovnou mticí, která má stejná vlstní čísl jko původní mtice, kromě již spočteného vlstního čísl. N tuto mtici poté opět plikujeme mocninnou metodu zjistíme dlší dominntní vlstní číslo příslušný vlstní vektor mtice. Vět (Mticová redukce) Necht je λ 1 vlstní číslo mtice A, x 1 jemu odpovídjící vlstní vektor v libovolný vektor, pro který pltí v T x 1 = 1. Pk redukovná mtice W = A λ 1 x 1 v T (6.38) má stejná vlstní čísl jko mtice A kromě vlstního čísl λ 1, které je nhrzeno nulou. Hotellingov redukce je vhodná pro reálné symetrické mtice. Položme v = y 1, kde y 1 je levý vlstní vektor příslušný vlstnímu číslu λ 1. Levý vlstní vektor normlizujeme tk, by pltilo y T 1 x 1 = 1. Z věty vyplývá, že levé prvé vlstní vektory příslušné stejným vlstním číslům symetrické mtice jsou si rovny, tj. y i = x i. (6.39) Ukážeme, že tto volb zjistí, že vlstní vektory W A budou totožné W = A λ 1 x 1 x T 1. (6.40) Vynásobme rovnici zprv vlstním vektorem x i Wx i = Ax i λ 1 x 1 x T 1 x i. (6.41) 62
63 Z věty plyne, že Položme i = 1. Potom x T i x j = { 1 i = j 0 i j. Wx 1 = Ax 1 λ 1 x 1 x T 1 x } {{ } 1 =1 = λ 1 x 1 λ 1 x 1 = 0. (6.42) (6.43) Z toho plyne, že λ 1 = 0 x 1 je vlstním vektorem mtice A zároveň mtice W. Uvžujme i 1, potom Wx i = Ax i λ 1 x 1 x T 1 x i = Ax i = λ i x i. (6.44) Z poslední rovnosti vyplývá, že λ i je vlstním číslem x i vlstním vektorem mtice A i mtice W. Pro reálnou symetrickou mtici pk konstruujeme redukovné mtice následovně W i = W i 1 λ i x i x T i, i = 1,..., n 1, W 0 = A. (6.45) Dlší informce lze nlézt v [15] nebo [22]. 6.3 Úplný problém vlstních čísel Metody, které se zbývjí úplným problémem vlstních čísel můžeme rozdělit do dvou ktegorií. První ktegorie je tvořen metodmi, která určují vlstní čísl mtice pomocí chrkteristického polynomu. Nicméně je známo, že nlyticky lze njít kořeny lgebrické rovnice nejvýše čtvrtého stupně. Metody ptřící do této skupiny (npř. Krylovov nebo Le Verrierov metod) určují kořeny chrkteristického polynomu iterčně. Velkou nevýhodou těchto metod je výpočetní náročnost, proto se v prxi příliš nevyužívjí [3]. Metody druhé ktegorie využívjí podobnostní trnsformci, která nemění vlstní čísl mtice. Algoritmy této skupiny konstruují posloupnost nvzájem podobných mtic, která konverguje k mtici (npř. trojúhelníkové), jejíž vlstní čísl lze jednoduchým způsobem určit. V této podkpitole se budeme soustředit n problém nlezení všech vlstní čísel příslušných vlstních vektorů reálné symetrické mtice QR lgoritmus QR lgoritmus je typickým předstvitelem metody zložené n podobnostní trnsformci. Tento lgoritmus využívá QR rozkldu, pomocí kterého rozložíme mtici n součin ortonormální mtice Q mtice R, která je horní trojúhelníková. 63
64 Vět (QR rozkld) Libovolnou mtici A typu (m, n), m n. lze rozložit n součin A = QR, kde mtice Q je ortonormální mtice typu (m, n) R je horní trojúhelníková mtice typu (n, n). Ukážeme konstrukci QR lgoritmu. N počátku lgoritmu položíme A = A 0 provedeme QR rozkld A 0 = Q 1 R 1. (6.46) Využijeme-li podobnostní trnsformci, definujeme A 1 = Q T 1 A 0 Q 1 (6.47) = Q T 1 Q 1 R 1 Q 1. Protože mtice Q 1 je ortonormální, pltí Q T 1 Q 1 = I Mtici A 1 rozložíme opět pomocí QR rozkldu postup opkujeme Pro mtici A k 1 tedy definujeme A 1 = R 1 Q 1. (6.48) A 1 = Q 2 R 2 (6.49) A 2 = Q T 2 A 1 Q 2 = Q T 2 Q 2 R 2 Q 2 = R 2 Q 2. (6.50) Mtici A k můžeme rozepst do následujícího vzthu A k 1 = Q k R k. (6.51) A k = R k Q k (6.52) = Q T k A k 1 Q k = Q T k Q T k 1A k 2 Q k 1 Q k =. = Q T k Q T k 1... Q T 1 A 0 Q 1....Q k 1 Q k = (Q k Q k 1... Q 1 ) T A 0 Q 1....Q k 1 Q k = (Q 1... Q k 1 Q k ) T A 0 Q 1....Q k 1 Q k, kde mtice součinu ortonormálních mtic Q 1... Q k 1 Q k je opět ortonormální mticí. Mtice A k konvergují k trojúhelníkové mtici (v přípdě symetrické dokonce k digonální). Zároveň můžeme pozorovt, že mtice A k je podobná mtici A. Ze vzthu (6.19) vyplývá, že sloupce mtice Q 1... Q k 1 Q k jsou ortonormálními vlstními vektory mtice A 0, více viz [15] nebo [32]. Nyní ukážeme dv způsoby, jk lze získt QR rozkld mtice. 64
65 6.3.2 QR rozkld pomocí Householderovy trnsformce Householderov trnsformce je postup pro získání horní trojúhelníkové mtice, skládjící se z n 1 trnsformčních kroků, kde n je počet sloupců mtice. Princip tohoto lgoritmu spočívá v postupném nulování prvků pod digonálou, přičemž v k-tém trnsformčním kroku eliminujeme poddigonální prvky v k-tém sloupci mtice. K tomu využíváme Householderovu mtici Householderův vektor. Odvození Householderovy mtice zrcdlení Cílem tohoto odvození je nlézt trnsformční mtici, pomocí které zobrzíme vektor v n vektor Hv, jenž je nenulovým násobkem vektoru e 1 = (1, 0,..., 0) T. Přičemž poždvkem bude, by délk vektoru Hv byl stejná jko délk vektoru v, tj. Hv = v. Pro Hv tedy pltí Hv = ± v e 1. (6.53) Obrázek 6.1: Odvození Householderovy mtice Z obrázku 6.1 můžeme vypozorovt, že pro vektor w pltí Z ilustrce zároveň vyplývá, že w = Hv v = ± v e 1 v. (6.54) Hv = v 2u, (6.55) kde w = 2u. Pomocí goniometrických funkcí vyjádříme u dostneme cos α = u v, (6.56) v cos α = 1. (6.57) u 65
66 Získný vzth vydělíme nejprve Euklidovskou normou u poté vynásobíme vektorem u. u u v cos α u 2 = u. (6.58) Definice (Sklární součin vektorů) Sklárním součinem dvou vektorů délky n budeme rozumět vzth u T v = u i v i = u v cos α, (6.59) i=1 kde úhel α je úhel sevřený vektory u v. Využijeme-li definice sklárního součinu, můžeme psát Protože pltí u 2 = u T u, dostáváme uu T v u 2 = u. (6.60) uu T v u T u = u. (6.61) Zpětným doszením z u do vzthu (6.55) jednoduchou úprvou dostneme výsledný tvr Householderovy mtice zrcdlení H. Připomeňme, že u = w 2. Hv = v 2u = v 2u ut v u 2 (6.62) = v 2 wwt v w 2 = v 2 wwt v (6.63) w T w ) = (I 2 wwt v. (6.64) w T w Aplikujeme-li Householderovu mtici n vektor v, získáme vektor Hv, který má pouze první složku nenulovou. Podle [41] je vhodné volit w = sign(v 1 ) v e 1 v. Touto volbou předejdeme zokrouhlovcím chybám. Definice (Householderov mtice) Householderovou mticí budeme rozumět mtici ve tvru H k = I 2 ωk (ω k ) T, k = 1,..., n 1, (6.65) (ω k ) T ωk kde (ω k ) T ω k = 1. Vektor ω k budeme nzývt Householderovým vektorem. 66
67 Householderův vektor určíme následujícím způsobem. Definujme nejprve vektor χ k = sign(v kk ) v e k v k, (6.66) kde v k je k-tý sloupec mtice A k s prvními k 1 prvky nulovými. Vektor e k je jednotkový vektor, pro který pltí, že jeho k-tý prvek e kk = 1. Vektor ω k určíme jko ω k = Vět Mtice H k je ortonormální symetrická. χk χ k 2. (6.67) Důkz. Jestliže je mtice H k symetrická, pk H k = H T k. Úprvou (6.65) dostneme H T k = ( I 2ω k (ω k ) T ) T = I T 2 [ ω k (ω k ) T ] T (6.68) = I 2 [ (ω k ) T ] T (ω k ) T = I 2ω k (ω k ) T = H k. Nyní ukážeme, že mtice H k je ortonormální, tj. H T k H k = 1. Pltí H T k H k = ( I 2ω k (ω k ) T ) T ( I 2ω k (ω k ) T ) (6.69) = ( I 2ω k (ω k ) T ) ( I 2ω k (ω k ) T ) Připomeňme, že (ω k ) T ω k = 1, proto = I 2ω k (ω k ) T 2ω k (ω k ) T + 4ω k (ω k ) T ω k (ω k ) T = I 4ω k (ω k ) T + 4ω k (ω k ) T ω k (ω k ) T. H T k H k = I 4ω k (ω k ) T + 4ω k (ω k ) T = I. (6.70) Díky větě 6.3.2, resp. ortogonálnosti Householderovy mtice, můžeme tuto ortogonální trnsformci využít pro konstrukci QR rozkldu. Budeme-li konstruovt posloupnost ve tvru A k = H k A k 1, (6.71) přičemž k = 1,...., n 1 A 0 = A, získáme po n 1 krocích horní trojúhelníkovou mtici. Pltí tedy A 1 = H 1 A 0, (6.72) A 2 = H 2 A 1 = H 2 H 1 A 0, A 3 = H 3 A 3 = H 3 H 2 H 1 A 0, =. A n 1 = H n 1 A n 2 = H n 1 H n 2... H 2 H 1 A 0, 67
68 kde A n 1 je horní trojúhelníková mtice. Položme R = A n 1 Q T = H n 1 H n 2... H 1. Mtice Q T je ortonormální, nebot je součinem ortonormálních mtic H i, i = 1,..., n 1. Můžeme tedy psát následující rovnost R = Q T A, (6.73) QR = A, (6.74) kde Q = H 1 H 2... H n 2 H n 1. Vice npříkld v [19], [44], [41], [42], [43], nebo [45] QR rozkld pomocí Givensovy trnsformce Givensov trnsformce je dlší možnou volbou pro získání horní trojúhelníkové mtice. N rozdíl od Householderovy trnsformce ovšem eliminuje v kždém trnsformčním kroku pouze jeden prvek pod digonálou. To znmená, že k převodu mtice n horní trojúhelníkovou mtici je zpotřebí nejvýše n(n 1) trnsformčních 2 kroků (trnsformci nebudeme plikovt n již nulový prvek), kde n je počet sloupců mtice. Givensovu trnsformci pro převod mtice do horního trojúhelníkového tvru je tedy vhodné použít tehdy, má-li mtice mnoho prvků pod digonálou nulových. Obecně je le tento postup výpočetně náročnější než předchozí metod ortogonální trnsformce. Givensov trnsformce využívá pro převod mtice n horní trojúhelníkovou mtici rovinné rotce. Odvození Givensovy mtice rovinné rotce Odvodíme trnsformční mtici pro nové souřdnice (x, y ) bodu P [x, y], který budeme rotovt o úhel α. Tento problém můžeme interpretovt podle [46] tk, že budeme hledt souřdnice bodu P s otočením soustvy souřdnic o stejný úhel. Obrázek 6.2: Odvození mtice rovinné rotce 68
69 Z trojúhelníku ACP n obrázku 6.2 můžeme vyjádřit Využitím trojúhelníku DQA pro x dostáváme x = (x 1 + x) cos α. (6.75) x 1 = y tg α. (6.76) Připomeňme vzth tg α = sin α. Doszením do (6.75) získáme cos α x = x cos α + y sin α. (6.77) Obdobným způsobem vyjádříme y. Z trojúhelníku T MP vyjádříme y Hodnotu y 1 získáme z trojúhelníku DRT y = (y y 1 ) cos α. (6.78) y 1 = x tn α = x sin α cos α. (6.79) Doszením do vzthu (6.78) získáme novou souřdnici y ( y = y x sin α ) cos α = x sin α + y cos α. (6.80) cos α Získli jsme tk soustvu ( ) ( ) ( ) cos α sin α x x = sin α cos α y y, (6.81) kde mtici ( ) cos α sin α G = sin α cos α (6.82) oznčujeme mticí rovinné rotce v R 2. Využitím Givensovy mtice můžeme eliminovt prvky ve vektoru. Chceme-li npříkld eliminovt druhou složku vektoru x = (x 1, x 2 ) pro x 1 > 0 x 2 > 0, budeme postupovt tímto způsobem. ( ) ( ) ( ) cos α sin α x1 x1 cos α + x Gx = = 2 sin α, (6.83) sin α cos α x 1 sin α + x 2 cos α přičemž poždujeme, by x 2 x 1 sin α + x 2 cos α = 0. (6.84) Využijeme-li vzthu cos 2 α+sin 2 α = 1, dostáváme rovnost cos α = 1 sin 2 α. Doszením do vzthu (6.84) následným umocněním dostneme x 1 sin α + x 2 1 sin 2 α = 0 (6.85) x 2 2(1 sin 2 α) = x 2 1 sin 2 α x 2 2 (x x 2 2) x 2 2 = (x x 2 2) sin 2 α sin α = = sin 2 α x 2. x x
70 Protože jsme předpokládli že x 1 > 0 x 2 > 0, tk pltí sin α = x 2. (6.86) x x 2 2 Hodnotu cos α určíme doszením do vzthu cos 2 α = 1 sin 2 α cos α = x 1 x x 2 2 = x 1. (6.87) x x 2 2 Dosdíme-li do vzthu z cos α sin α, získáme pro vektor Gx tuto rovnost ( ) x1 cos α + x Gx = 2 sin α x2 1 + x2 2 = x 2 1 +x2 2 x 2 1 +x2 2 = x 1 sin α + x 2 cos α x 1 x 2 x 2 1 +x2 2 + x 2x 1 x 2 1 +x2 2 ( ) x. (6.88) 0 Nyní uvžujme prostor R n. Zvedeme-li mtici rotce v rovině ij, můžeme posloupností vhodně zvolených Givensových trnsformcí eliminovt poddigonální prvky vstupní mtice trnsformovt ji tk n horní trojúhelníkový tvr. Definice Mtice G i,j,α R n,n, i < j, tvru cos α 1 G i,j,α =... 1 sin α sin α cos α... 1 (6.89) se nzývá Givensov mtice rovinné rotce v rovině ij. Prvek g ii = g jj = cos α, prvek g ij = sin α prvek g ji = sin α. Podobně jkou u (6.86) (6.87) položíme cos α = jj ( jj ) 2 + ( ij ) 2, sin α = ij ( jj ) 2 + ( ij ) 2, (6.90) j = 1,..., n 1, i = j + 1,..., n, ij i jj jsou prvky mtice A. Pokud tkto sestrojenou mtici vynásobíme zlev mticí A, vynulujeme prvek n pozici i, j, přičemž se změní pouze i-tý j-tý řádek mtice A. Vět Givensov mtice rovinné rotce je ortonormální, tj. G T i,j,αg i,j,α = I. 70
71 Důkz. Vynásobíme-li mtici G T i,j,α mticí G i,j,α, zjistíme, že g ii = g jj = sin 2 α + cos 2 α = 1 (zbylé digonální prvky jsou tké rovny 1) g ij = g ij = sin α cos α + sin α cos α = 0. Osttní nedigonální prvky jsou tké rovny nule. Této věty využijeme pro konstrukci QR rozkldu. Při trnsformování mtice A n horní trojúhelníkový tvr budeme postupovt tk, že nejprve eliminujeme prvky pod digonálou prvního sloupce. Poté poddigonální prvky druhého sloupce, ž nkonec eliminujeme poddigonální prvek (n 1)- ho sloupce. Touto volbou zjistíme, že se již eliminovné prvky nestnou opět nenulovými. Budeme tedy konstruovt posloupnost v tomto tvru A k = G k A k 1, A 0 = A, k = 1,..., m, (6.91) kde G k 1 = G i,j,α, přičemž nejvýše po m = n(n 1) 2 krocích získáme mtici v horním trojúhelníkovou tvru. Položme R = G m G m 1... G 1 A Q T = G m G m 1... G 1. Mtice Q T je ortonormální, nebot je součinem ortonormálních mtic G i, i = 1,..., m. Můžeme tedy psát následující rovnost R = Q T A (6.92) QR = A, (6.93) kde Q = G 1 G 2... G m 1 G m. Podrobnější informce můžeme nlézt ve [41], [45], [47], nebo [48]. 71
72 7 Implementce plikce V této části diplomové práce budeme popisovt smotnou nprogrmovnou plikci, kde se nejprve seznámíme s jednotlivými vrstvmi progrmu. Poté popíšeme jejich vzájemnou kooperci při užívání plikce. N obrázku 7.1 můžeme vidět zjednodušený digrm znázorňující hierrchii jednotlivých vrstev plikce stěžejní třídy obsžené v těchto vrstvách, n nichž je zložen celková funkcionlit plikce. Dále digrm znázorňuje jednotlivé vzthy mezi třídmi n úrovni vrstev tké popisuje jejich vzájemnou komunikci. 7.1 Implementční vrstv plikce Implementční vrstv je nejnižší vrstvou plikce, která obshuje implementci všech numerických metod popsných v první části diplomové práce. Tyto lgoritmy jsou rozděleny do tříd, přičemž kždá tříd obshuje metody z jedné numerické oblsti. Vzhledem k tomu, že hlvním cílem této práce bylo vytvoření didktické plikce, nebylo čsově výhodné využít nějkou již existující numerickou knihovnu, protože tyto knihovny mjí primárně z úkol předt uživteli pouze výsledek dné mtemtické úlohy. Vyvíjená plikce bude nbízet uživteli i smotný postup výpočtu včetně mezivýsledků úlohy. Všechny implementovné metody předávjí n svém výstupu struktury dt, které jsou ve vyšších vrstvách z tímto účelem dále zprcovávány. V této podkpitole si nebudeme klást z cíl popst smotnou lgoritmizci příslušných numerických metod, le uvedeme zde seznm všech implementovných numerických metod obsžených v plikci změříme se n množiny dt, které metody přijímjí n dtové struktury, které metody předávjí vyšším vrstvám, kde jsou nkonec uživteli interpretovány ve formě HTML stránky. Nejnižší vrstv plikce je nvržen tk, by došlo ke striktnímu oddělení vlstního výpočtu od jeho prezentce. Tto vrstv nespoluprcuje pouze s nejvyšší vrstvou le i s výpočetní mezivrstvou. Pokud je třeb zjistit hodnotu jkéhokoli výrzu nebo funkce, dochází k odeslání výrzu do mezivrstvy, kde dojde k vyčíslení dného výrzu. Více v podkpitole 7.2. Implementci metod zbývjící se numerickým výpočtem určitého integrálu nlezneme ve třídě Integrtion lg. Tto tříd obshuje: 1. Newton - Cotesovy vzorce 72
73 ) Jednoduché i. Obdélníkové prvidlo ii. Lichoběžníkové prvidlo iii. Simpsonovo prvidlo iv. Tříosminové prvidlo v. Booleovo prvidlo b) Složené i. Obdélníkové prvidlo ii. Lichoběžníkové prvidlo iii. Simpsonovo prvidlo iv. Tříosminové prvidlo v. Booleovo prvidlo 2. Rombegov kvdrtur 3. Guss-Legendrov kvdrtur Metody numerické integrce přijímjí jko rgument řetězec obshující funkci integrční meze. Složené vrinty Newton - Cotesových vzorců přijímjí dále celočíselnou hodnotu, která určuje počet podintervlů, n který bude intervl rozdělen poždovnou přesnost. Struktur reprezentující výsledek získný pomocí Newton - Cotesových vzorců Guss - Legendrovy kvdrtury je jednotná. Metody předávjí do nejvyšší vrstvy objekt třídy Integrtion ret, který obshuje informce o šířce uvžovného integrálu, uzlových bodech, funkčních hodnotách vypočtenou hodnotu integrálu. Jestliže uživtel zvolí v úvodní obrzovce plikce složenou vrintu Newton - Cotesových vzorců, pk je výpočet opkován metodou polovičního kroku do té doby, než je splněn poždovná přesnost. Výsledkem úlohy spočtené pomocí Rombergovy kvdrtury je dvourozměrné pole hodnot obshující hodnotu integrálu vypočteného pomocí složeného lichoběžníkového prvidl pro zjemňující se krok integrce. Výsledná dt jsou předáván prezentční vrstvě, to konkrétně formuláři Integrtion win. Druhá skupin lgoritmů se zbývá metodmi numerické derivce nlezneme ji ve třídě Derivtion lg. Tto skupin metod je v zásdě pouze podpůrného chrkteru pro dlší kolekci metod týkjících se řešení nelineárních rovnic. Nchází se zde proto zákldní metody, z nichž tři jsou určeny pro výpočet první derivce zbylá pro výpočet druhé derivce funkce v bodě. 1. První derivce ) Centrální diference b) Přímá diference c) Richrdsonov extrpolce 2. Druhá derivce 73
74 Numerické lgoritmy přijímjí z GUI vrstvy řetězec obshující uživtelem zdnou funkci dvě číselné hodnoty. První hodnot předává metodě informci o poždovném bodu druhá hodnotu kroku. Metod Richrdsonovy extrpolce přebírá nvíc údj s poždovnou přesností. Metody zložené n diferencích odesíljí formuláři Derivtion win objekt Derivtion ret, který s sebou nese číselnou informci o příslušných uzlových bodech, jejich funkčních hodnotách, šíři kroku výsledku nesoucí hodnotu první či druhé derivce funkce v bodě. Výjimku předstvuje metod Richrdsonovy extrpolce, která posílá dvourozměrné pole obshující hodnoty proximce derivce funkce v bodě. Dlší skupinou jsou metody pro výpočet kořene nelineárních rovnic, které nlezneme v Neliner solutions lg. Implementovné lgoritmy jsou uvedeny ve výčtu: 1. Metod půlení intervlu 2. Metod sečen 3. Regul flsi 4. Newtonov metod 5. Steffensenov metod 6. Hlleyov metod 7. Sturmov posloupnost Všechny metody vyždují n vstupu informce o funkci, přesnosti počtu itercí. První tři metody z uvedeného seznmu dále poždují dt týkjící se dolní horní meze uvžovného intervlu. Zbylé tři n místo toho očekávjí předání informce s počáteční proximcí. Metody jsou schopny přijmout předpis funkce první (v přípdě Hlleyovy metody i druhé) derivce. Tto pole le nejsou bezpodmínečně vyždován. Pokud je ovšem uživtel vyplní, nedochází k numerické proximci derivce funkce v bodě pomocí metody centrální diference resp. druhé derivce z předchozí numerické ktegorie, le je vyčíslen předná funkce v dném bodě. V přípdě Sturmovy posloupnosti jsou nepovinnými prmetry informce o uvžovném intervlu. Pokud je uživtel zdá, dochází k hledání všech reálných kořenů n tomto intervlu. V opčném přípdě jsou reálné kořeny hledány n intervlu 10 10, 10 10, který simuluje množinu reálných čísel. I při implementci metod z této numerické oblsti byl ve výstupní části klden důrz n jednotnost, proto metody posíljí formuláři Neliner solutions win instnci třídy Neliner ret, která přenáší do vyšší vrstvy dv seznmy obshující uzlové body jejich funkční hodnoty. V přípdě Newtonovy metody Steffensenovy metody je využit dlší číselný seznm pro předání hodnot první derivce funkce v bodě. Hlleyov metod využívá nvíc i seznm pro přenos hodnot druhé derivce funkce v bodě. Odlišná situce nstává v přípdě Sturmovy posloupnosti, která předává své výsledky formuláři ve formě instnce třídy SeprtionOfRoots ret. Tto tříd 74
75 udržuje informce o vygenerovné posloupnosti polynomů, počtu znménkových změn n dných intervlech. Dále udržuje informce o tvru polynomu, který je největším společným dělitelem polynomu jeho první derivce. Jestliže tento polynom není nulový, pk je nejvyšší vrstvě předán dlší Sturmov posloupnost nového polynomu, který má le již jednoduché kořeny. Čtvrtá kolekce metod slouží pro výpočet proximce funkce. Jejich zdrojový kód je v Aproximtion lg. Všechny metody přebírjí n svém vstupu dv číselné seznmy, které obshují uzlové body jejich funkční hodnoty. Metod nejmenších čtverců dále přijímá informci o poždovném stupni proximčního polynomu. N svém výstupu jednotlivé metody již formuláři Aproximtion win nepředávjí stejnou kolekci dt, což je dáno zejmén odlišností způsobu nlezení proximující funkce. Z toho důvodu předává kždá metod nejvyšší vrstvě různou dtovou strukturu ve formě Tuple, který obshuje dt nutná pro popis postupu výpočtu. V plikci jsou implementovány tyto metody: 1. Interpolce funkce ) Lgrngeův interpolční polynom b) Newtonův interpolční polynom c) Lineární spline d) Interpolce přirozeným kvdrtickým spline e) Interpolce přirozeným kubickým spline 2. Aproximce funkce ) Metod nejmenších čtverců Všechny metody numerické proximce funkce využívjí při řešení zdné úlohy lgoritmy pro práci s polynomy, které nlezneme ve třídě Polynoms. Jestliže uživtel požduje výpočet úlohy metodou nejmenších čtverců nebo využitím metody implementující interpolci přirozeným kubickým splinem, dochází při výpočtu k zvolání metody Gussovy elimince pro výpočet vzniklé soustvy lineárních rovnic. Předposlední skupinu metod tvoří lgoritmy týkjící se řešení soustv lineárních rovnic, které můžeme rozdělit do dvou hlvních podktegorií. 1. Přímé ) Gussov elimince s částečnou pivotcí b) LU rozkld c) Choleského dekompozice 2. Iterční ) Mticový tvr i. Jcobiho metod 75
76 ii. Guss-Seidelov metod iii. Superrelxční metod b) Složkový tvr i. Jcobiho metod ii. Guss-Seidelov metod iii. Superrelxční metod 3. Řešení soustv s obdélníkovými mticemi ) Singulární rozkld Metody nlezneme ve třídě Liner solutions lg. Všechny lgoritmy přijímjí vstupní mtici vektor prvé strny. Iterční lgoritmy dále vyždují informce týkjící se vektoru počáteční proximce, mximálního počtu itercí v přípdě pomlé konvergence, resp. divergence metody poždovné přesnosti. Metod určená pro výpočet LU rozkldu metod Choleského dekompozice poskytuje formuláři objekt LinerEq ret. Tto instnce obshuje několik dvourozměrných polí - vstupní mtici, mtici L U, permutční mtici P (v přípdě Choleského rozkldu není tto mtice užit), vektor prvé strny b, vektor x y. Metod pro výpočet soustvy lineárních rovnic pomocí Gussovy elimince vrcí dtovou strukturu Tuple, přičemž pro zvýšení numerické stbility této metody je v plikci implementován částečná pivotce. V přípdech, kdy vstupní mtice má stejnou hodnost jko rozšířená mtice soustvy, le menší než je řád mtice, dochází u Gussovy elimince k výpočtu prmetrického řešení. Druhá podktegorie počítá řešení soustvy lineárních rovnic iterčně. Tyto lgoritmy byly implementovány dvěm způsoby. První způsob počítá řešení soustvy lineárních rovnic pomocí mticového zápisu druhý pomocí složkového zápisu. Iterční metody implementovné pomocí složkového zápisu odesíljí formuláři Liner solutions win jednoduchý objekt LinerniEqFolder ret, který obshuje dvourozměrná pole (vstupní mtici, vektor b vektor x), seznm vektorů, kde kždý vektor je výsledkem jedné iterce, hodnot, které nesou informci o konvergenci metody pro dnou úlohu (Euklidovská norm rozdílu dvou po sobě jdoucích vektorů). Iterční metody hledjící řešení soustvy lineárních rovnic mticovým zápisem posíljí do nejvyšší vrstvy dtovou strukturu Tuple, která obshuje seznm mtic nutných pro zobrzení mezivýsledků, seznm vektorů získných kždou itercí seznm hodnot, které budou uživtele informovt o konvergenci, respektive divergenci metody pro dnou úlohu. Pro výpočet soustv rovnic s obdélníkovou mticí je v plikci implementován singulární rozkld. Metod implementující postup singulárního rozkldu přijímá n svém vstupu vstupní mtici vektor prvé strny. Cílem singulárního rozkldu je rozložit mtici n součin tří mtic U, Σ, V T. Během smotného výpočtu singulárního rozkldu je využíván QR lgoritmus s tisíci itercemi, kde QR rozkldu mtice je dosženo pomocí Housholderovy trnsformce s jehož pomocí získáme potřebné mtice U V. Digonální mtice Σ bude obshovt odmocniny ze zjištěných 76
77 nenulových vlstních čísel. Po nlezení singulárního rozkldu dojde nejprve k výpočtu pseudoinverzní mtice poté k nlezení příslušného řešení. Tento lgoritmus předává prezentční vrstvě objekt třídy SVD ret, který obshuje všechny mtice vektory získné během výpočtu (mtice A, AA T, A T A, U, V, Σ, Σ +, A +, vektor x vektor prvé strny) které jsou uživteli interpretovány v prezentční vrstvě ve formě HTML stránky. Poslední skupin metod se věnuje výpočtu vlstních čísel vlstních vektorů reálné symetrické mtice. Implementovné lgoritmy můžeme rozdělit následujícím způsobem: 1. Částečný problém vlstních čísel ) Mocninná metod b) Ryleighův podíl c) Inverzní metod d) Hottelingov redukce (Mocninná metod) e) Hottelingov redukce (Ryleighův podíl) 2. Úplný problém vlstních čísel ) QR lgoritmus i. Householderov trnsformce ii. Givensov trnsformce Metody věnující se částečnému problému vlstních čísel vlstních vektorů mtice přebírjí n vstupu dvourozměrné pole obshující vstupní mtici, počáteční vektor, mximální počet itercí poždovnou přesnost. První tři metody předávjí posloupnost vypočtených vlstních čísel, vlstních vektorů normovných vlstních vektorů. Hottelingov redukce odesílá k zobrzení do prezentční vrstvy (formuláři Eigen vlues vectors win) posloupnost redukovných mtic kolekci dt z mocninné metody, respektive Ryleighov podílu. Ač řdíme Hottelingovu redukci mezi první skupinu metod, které nleznou největší či nejmenší dominntní vlstní číslo mtice, je tto metod v plikci nprogrmován tk, že opkováním lgoritmu redukce mtice nlezneme všechn vlstní čísl vlstní vektory původní mtice. Metody druhé ktegorie jsou zloženy n podobnosti mtic. K nlezení podobné mtice je v plikci nprogrmován QR lgoritmus. Příslušný QR rozkld mtice je nlezen Householderovou nebo Givensovou trnsformcí, který je odeslán metodě QRAlgorithmHouseHolder resp. QRAlgorithmGivens. Pokud budeme celý tento postup opkovt v rámci QR lgoritmu, bude celý proces konvergovt k mtici podobné původní mtici s vlstními čísly n digonále. Metody QRAlgorithmHouseHolder resp. QRAlgorithmGivens předávjí nejvyšší vrstvě instnci třídy QRRozkld RetHouseHolder respektive QRRozkld RetGiven, které obshují seznmy mtic Q k, R k A k, dále posloupnost trnsformčních mtic využitých v kždé iterci nkonec seznm vlstních čísel vlstních vektorů. 77
78 Během výpočtu může dojít k různým chybám, npříkld z důvodu dělení nulou, k porušení Bolznov kritéri v přípdě metod, které se zbývjí řešením nelineárních rovnic,nebo npříkld ke zjištění, že uživtelem zdná vstupní mtice je singulární (při výpočtu inverzní mtice). Z toho důvodu jsou v kždé třídě nejnižší vrstvy plikce implementovány delegáty, které při zjištění tohoto stvu, okmžitě informují prezentční vrstvu. GUI vrstv přeruší výpočet běžící n smosttném vlákně pomocí dilogového okn informuje o tomto stvu uživtele. Zbylé třídy implementční vrstvy (Polynoms Opertion of Mtrices) obshují metody pro počítání s polynomy (násobení, sčítání, odčítání, derivce polynomu, Hornerovo schém pro vyčíslení hodnoty polynomu v bodě nebo npříkld Euklidův lgoritmus pro zjištění největšího společného dělitele polynomů) resp. metody pro operce s mticemi (kupříkldu násobení, sčítání, odčítání mtic, hodnost defekt mtice, lgoritmus pro výpočet inverzní mtice či lgoritmus pro zjištění Euklidovské normy vektorů mtic nebo hodnoty determinntu mtice). 78
79 Obrázek 7.1: Zjednodušený digrm návrhu plikce 79
80 7.2 Kontrolní výpočetní vrstv Kontrolní výpočetní vrstv je zveden do modelu plikce z několik důvodů. Prvním důvodem je, že kromě zákldní kontroly uživtelem zdných dt n úrovni GUI vrstvy dochází pomocí metod prostřední vrstvy ke kontrole vstupních dt ze sémntického hledisk (je-li npříkld vstupní funkce zdán korektně nebo zd uživtel do vstupního pole umístil správně závorky) nvíc je zde tké implementován Shunting-Yrd lgoritmus pro převedení výrzu z infixové notce (klsický způsob mtemtického zápisu výrzu, ve kterém jsou operátory npsány mezi operndy) do reverzní polské notce (RPN). Reverzní polská notce je způsob zápisu mtemtického výrzu, ve kterém jsou operátory umístěny z operndy (postfixový zápis). Výhod tohoto zápisu spočívá v odstrnění nutnosti využití závorek při zápisu výrzu. Dále je zde implementován metod pro vyčíslení tkového postfixového výrzu. Tyto dvě metody jsou využívány vždy, pokud je pro výpočet vyždován funkční hodnot funkce v určitém bodě nebo npříkld hodnot určitého lgebrického výrzu. Ke kooperci s touto vrstvou dochází i směrem od prezentční vrstvy, protože tyto metody jsou využity kupříkldu pro převod uživtelského vstupu (zdání funkcí, mezí intervlu, přesností, počátečních hodnot, nlyticky zdných prvních nebo druhých derivcí, prvků mtic vektorů, uzlových bodů dlších vstupních dt) do formátu, se kterým jsou metody implementční vrstvy schopny prcovt. Prováznost vrstev se dále využívá pro převod vstupních dt zdných ve formě neformátovného textu do MthML kódu nebo pro vykreslování grfů. Metody RPN ComputeRPN jsou nejčstěji vykonávnými metodmi v celé plikci Prser Kontrolní výpočetní vrstv ncházející se uprostřed modelu plikce obshuje metody sloužící mimo jiné i pro kontrolu správnosti zdných dt uživtelem. Tyto metod jsou implementovány pomocí regulárních výrzů ve třídě Reg. Prser pro ověření správnosti uživtelského vstupu prcuje ve čtyřech krocích. Prvním z nich je příprv pro ověřování, která spočívá v nplnění dvou seznmů regulárními výrzy. První seznm ověřuje správnou posloupnost znků (npříkld, že z znménkem pro násobení následuje závork, číslo, funkce nebo neznámá). Do druhého seznmu se postupně přidávjí regulární výrzy, které tké ověřují, zd je vstup korektní či nikoliv. Rozdíl těchto seznmů spočívá v tom, že první seznm pouze ověřuje, zdli nějká část vstupního řetězce odpovídá regulárnímu výrzu, nproti tomu druhý seznm ze vstupního řetězce vyjímá řetězce odpovídjící dnému regulárnímu výrzu. Po nplnění obou seznmů se vstupní řetězec nejprve porovná s výrzy prvního seznmu. Jestliže je nlezen shod, tk lgoritmus ověřování končí, protože uživtelský vstup není vlidní. Dále následuje ověření uživtelského vstupu pomocí regulárních výrzů druhého seznmu. Jestliže je nlezen shod, tk je nlezený řetězec odstrněn ze vstupního řetězce. V dlších krocích se tedy prcuje s novým zkráceným řetězcem. Ve všech regulárních výrzech druhého seznmu se 80
81 nevyskytují závorky, protože jejich správný počet umístění se testují ž v závěrečné fázi. Po odstrnění řetězců pomocí regulárních výrzů druhého seznmu vznikne nový řetězec, který by měl obshovt pouze závorky, jestliže obshuje i nějké znky nvíc, pk je uživtelský vstup nesprávný. V přípdě, že obshuje pouze závorky, tk se musí ověřit jejich správnost ve smyslu počtu umístění těchto závorek. Při kontrole závorek se nbízely dvě možnosti. První z nich bylo ověření počtu levých prvých závorek. Tto možnost ovšem neověřovl jejich správné umístění, proto bylo nutné vymyslet jiné řešení. Toto řešení spočívá v použití cyklu, který končí pouze v přípdě, že vstupní řetězec je po úprvě stejný jko v minulém cyklu nebo že vstupní řetězec má nulovou délku. Jádrem tohoto cyklu je regulární výrz, který z dného vstupního řetězce vymže levou prvou závorku, které následují v řetězci z sebou, čímž se tyto závorky postupně zevnitř odstrňují. Jestliže byl uživtelský vstup v pořádku, zůstne n konci lgoritmu řetězec nulové délky. Pokud je zdný řetězec prohlášen prserem z chybný, je uživtel informován o tom, že musí vstupní dt oprvit. Touto kontrolou předejdeme problémům, které by byly způsobeny vyšetřováním nepltného výrzu pomocí Reverzní polské notce, či jejího vyčíslení, kdy by došlo k selhání progrmu. V opčném přípdě by byl výrz vyhodnocen šptně. Použití regulárních výrzů je pro tento způsob ověřování vstupů výhodné, protože je jednoduše modifikovtelný nevyžduje zásh do logiky progrmu Reverzní polská notce Reverzní polská notce je způsob zápisu ritmetických, lgebrických, či nlytických výrzů. Tto postfixová notce snižuje nároky n pmět počítče zejmén v minulosti byl čsto využíván v klkulátorech. Dále je využíván npříkld při tvorbě překldče nebo interpretů pro progrmovcí jzyky. Její princip spočívá v umístění operndů před operátor. Mluvíme tedy o postfixové notci, kdy pro jednoznčnost zápisu nepotřebujeme využívt závorky, jko v klsické notci infixové [49]. Jedním ze způsobů, jk převést mtemtické zápisy z infixové do postfixové notce je Shunting - Yrd lgoritmus vyvinutý Edgrem Dijsktrou. Tento lgoritmus je implementován v metodě RPN. V plikci je zákldní postfixová notce rozšířen o možnost zdávání goniometrických funkcí, dekdického přirozeného logritmu, Eulerov čísl, Ludolfov čísl, nebo o prmetr funkcí. Před vlstním lgoritmem jsou volány metody sloužící k úprvě vstupního výrzu. Nejdříve je volán metod EditSigned, kde pomocí regulárních výrzů dochází k nhrzení vedle sebe stojících znmének plus nebo minus ( jejich kombince) jedním znménkem. V metodě ConvertDecNumToFrction dochází k převedení desetinného čísl n zlomek. Dále je zde zlomek blíže nlyzován přípdně zkrácen do zákldního tvru. Touto metodu nvíc odstrníme z výrzu desetinnou tečku, kterou pro převod do postfixové notce nepotřebujeme. Následně pomocí metody AddMultiplyOpertor doplníme znky násobení mezi dvě vedle sebe stojící závorky, číslo závorku nebo číslo proměnnou. Tím umožníme uživteli zdávt výrzy bez toho, niž by musel explicitně zdávt znk násobení. Pro zjištění větší stbility převodu výrzu do postfixové notce bylo třeb 81
82 ošetřit přípdy, kdy vstupní výrz obshuje binární operátor s pouze jedním operndem (npříkld výrz 2). V tomto přípdě by převod selhl, protože by nebyl nlezen druhý opernd, respektive vstupní výrz by obshovl znménko nvíc. Z toho důvodu jsou v metodě DetectUnryOpertor ve vstupním výrzu vyhledány všechny tyto přípdy, přičemž po jejich nlezení dochází k následnému zblení operátoru do výrzu (0 + operátor + 1).opernd. Tím dojde ke změně unárního operátoru n binární. Po vykonání metod, které slouží k úprvě výrzu, je plikován vlstní RPN lgoritmus. V rámci tohoto lgoritmu nejdříve vytvoříme instnci třídy Stck. Poté pomocí cyklu procházíme vstupní výrz. V tomto cyklu nejdříve zjistíme, jestli je i-tý znk vstupního řetězce číslem, proměnnou, Eulerovým číslem nebo číslem π. Pokud no, přidáme jej do proměnné output. Jestliže je i-tý znk písmenem, přidáme jej do proměnné function. Pokud tento znk nevyhovuje těmto dvěm podmínkám, jedná se s největší prvděpodobností o znk mezery, závorky nebo operátoru. Detekujeme-li levou závorku, je vložen n vrchol zásobníku s nulovou prioritou. Je-li nopk detekován prvá závork, přidáme do proměnné output znk z vrcholu zásobníku, který z něj následně odstrníme. Tento postup je třeb opkovt do té doby, než nrzíme n levou závorku. V přípdě detekce operátoru dochází k rozpoznání konkrétního operátoru, nčež je nstven proměnná priority. Tto priorit je porovnáván s prioritou prvku n vrcholu zásobníku. V přípdě, že je priorit větší, je uzel n vrcholu předán do proměnné output odstrněn ze zásobníku. Priorit operátoru je porovnáván s novým vrcholem. Toto je opkováno, dokud není priorit operátoru větší než priorit vrcholu zásobníku. Následně je operátor přidán n vrchol. Stejný postup je plikován v přípdě detekce funkce. N konci celého procesu je infixový zápis převeden n postfixový. Operátor Priorit levá závork 0 sčítání, odčítání 1 násobení, dělení 2 umocnění, funkce 3 Tbulk 7.1: Priorit operátorů v metodě RPN Princip lgoritmu osvětlíme n příkldu. Mějme dán výrz sin(2 + pi) 6/10. Před vlstním vlstním zhájením Shunting - Yrd lgoritmu dojde k úprvě výrzu n výrz sin(2 + pi) 3/5. (7.1) Do proměnné function procházením vstupního řetězce přidáme výrz sin. Následně je uložen funkce sinus n vrchol prázdného zásobníku s prioritou tři. Během příštího průchodu vstupního řetězce detekujeme levou závorku, kterou přidáme n vrchol 82
83 zásobníku s nulovou prioritou. Do proměnné output přidáme číslo dvě detekujeme operátor plus. Nstvíme prioritu jedn, kterou porovnáme s vrcholem zásobníku. N vrcholu zásobníku je levá závork s nulovou prioritou, proto nic nebrání ve vložení operátoru plus n vrchol zásobníku. Do output uložíme číslo pi detekujeme prvou závorku. Následně přeřdíme všechny prvky ze zásobníku do proměnné output, dokud nenrzíme n levou závorku v zásobníku. V nšem přípdě odstrníme ze zásobníku pouze operátor plus (přidán do output) poté levou závorku. V dlším kroku detekuje lgoritmus operátor minus. Tento operátor přidáme n vrchol zásobníku, ovšem před tímto vlstním přidáním musíme z vrcholu zásobníku odstrnit funkci sinus předt ji do output (má prioritu tři). Do output dále přidáme číslo tři opět detekujeme operátor dělení. Jelikož mu přiřdíme prioritu dvě, může být okmžitě vložen do zásobníku před operátor minus. Nyní přidáme do výstupu číslo pět. V zásobníku zbyly dv operátory. Jeden pro dělení druhý pro odečítání. Tyto operátory tedy přidáme do output vyprázdníme zásobník. Výstup RPN metody nšeho příkldu vypdá tedy tkto: 2 pi + sin 3 5 /. (7.2) Posledním krokem je vyčíslení výrzu. Vyčíslení dného výrzu v plikci zjišt uje metod ComputeRPN. V ComputeRPN nejdříve vytvoříme instnci třídy Stck. Poté rozdělíme podle mezer příchozí postfixový výrz do pole expressions. V cyklu testujeme nejprve s jkým prvkem pole expressions v dné iterci prcujeme. Jestliže detekujeme číslo, přiřdíme tuto hodnotu do zásobníku. Dále můžeme detekovt textový řetězec. Pokud tento řetězec odpovídá některé z povolených funkcí, je z vrcholu zásobníku vyjmut opernd, který se předá k vypočtení dné mtemtické funkce v tomto bodě. Pokud by nedošlo k zchycení chybného uživtelského vstupu ve třídě Reg řetězec by neodpovídl žádné funkci z uvžovného seznmu funkcí, dojde k vyslání řídícího signálu přes objekt delegátu, nčež GUI vrstv v obslužné metodě delegát kontktuje uživtele o chybném vstupu. V přípdě detekování operátoru je situce obdobná. Ze zásobníku ovšem vybíráme operndy dv, přičemž je n ně nutné plikovt mtemtickou operci s obráceným pořdím operndů, což je dáno LIFO chrkteristikou zásobníku. Po dokončení této operce testujeme počet zbylých položek v zásobníku. Jestliže je počet zbylých položek větší než jedn, můžeme předpokládt chybu v zdání opět dochází k upozornění uživtele skrze GUI vrstvu. V opčném přípdě vrcíme položku z vrcholu zásobníku, kde je uložen výsledek. Pokusíme se nyní vyčíslit výrz 2 pi + sin 3 5 /. Nejprve dochází k detekci čísl dvě, které se uloží do prázdného zásobníku. V dlší iterci je detekován konstnt pi. kterou vložíme n vrchol zásobníku. Nyní rozpoznáme operátor plus. Z vrcholu zásobníku vezmeme dv po sobě jdoucí operndy provedeme jejich součet. Tento součet opět vložíme do zásobníku. V dlší iterci budeme prcovt s řetězcem sin. Vyjmeme hodnotu z vrcholu zásobníku zvoláme mtemtickou operci pro výpočet hodnoty funkce sinus v bodě 2 + pi. Výsledek opět vložíme n vrchol zásobníku. Číslo tři přidáme n vrchol zásobníku, stejnou opercí provedeme i s číslem pět. V dlším kroku rozpoznáme operátor dělení. Nyní, stejně jko v přípdě operátoru plus, vyjmeme ze zásobníku dv nejvýše 83
84 umístěné operndy provede jejich podíl, který vložíme zpět do zásobníku. V instnci zásobníku se nyní nchází dvě hodnoty, to 3/5 sin(2+pi), které v poslední iterci odečteme tento výsledek uložíme do zásobníku. V zásobníku zbyl pouze jeden prvek, přičemž tento prvek je výsledek výrzu sin(2 + pi) 3/ Prezentční vrstv plikce V dlší části chrkterizujeme nejvyšší vrstvu plikce popíšeme vlstnosti společné pro všechny její části. Prezentční vrstv plikce je tvořen úvodním formulářem dlšími formuláři, které slouží pro zdávání dt zobrzování výsledků uživteli. Kždý formulář je propojen jednk s kontrolní výpočetní vrstvou, jednk s vrstvou implementční Úvodní formulář Implementci úvodního formuláře nlezneme ve třídě MinMenu. Pomocí tohoto formuláře si uživtel z top-level menu vybere příslušnou numerickou metodu. Jkmile tuto metodu zvolí, dojde v této třídě k vytvoření příslušného objektu formuláře dné numerické ktegorie k jeho zobrzení. Pokud si uživtel vybere cvičnou úlohu, vytvoří se objekt třídy SelectMethod obshující seznm implementovných metod dné numerické ktegorie. Po vybrání příslušné metody, dojde k vytvoření formuláře SelectTsk, jež obshuje seznm připrvených cvičných úloh pro dnou metodu. Kždá cvičná úloh je uložen ve formě XML souboru. Při vytváření tohoto seznmu dojde k vytvoření instnce třídy XMLPrser, která zkontroluje pomocí metody CheckByXSD strukturu XML souboru pomocí předpřiprveného XSD souboru. Cvičné úlohy, které nejsou vlidní vzhledem k dnému XSD, jsou v seznmu úloh podbrveny červeně obshují chybovou zprávu z XMLPrser. Tkto oznčené úlohy není možné zvolit, protože nejsou vzhledem k plikci v pořádku. Jkmile si uživtel vybere cvičnou úlohu, dojde k vyextrhování zdání z XML dokumentu cvičné úlohy vytvoří se formulář příslušné numerické metody, kterému předáme všechn dt nutná pro výpočet dné úlohy včetně přípdné poznámky k úloze. Tyto údje jsou utomticky předvyplněny ve vstupní části formulářů numerických metod. Sdu cvičných úloh lze editovt. Kždý formulář pro výpočet mtemtické úlohy obshuje tlčítko pro přidání úlohy tlčítko pro npsání poznámky k dné úloze. Smzání úlohy je možné zvolením Smzt úlohu v kontextovém menu kždé úlohy. Progrmového návrhu úvodní obrzovky plikce je využito i v tom přípdě, kdy uživtel chce stejnou úlohu vypočítt pomocí jiné metody bez toho, niž by musel stejné zdání přepisovt do nového formuláře. V tomto přípdě si může vybrt zvolenou metodu ze seznmu umístěného ve formuláři dné numerické metody Formuláře numerických metod Formuláře numerických metod jsou rozděleny do dvou částí. První část slouží pro zdávání vstupních dt uživtelem. Druhá část je určen hlvně pro zobrzení informcí s řešením dné úlohy ve formě HTML stránky. V plikci je implementováno sedm těchto formulářů. Kždý formulář se přizpůsobuje konkrétní numerické 84
85 metodě pomocí funkcí DisbleComponents AlignComponents. Jejich provedením dojde k vypnutí všech v dnou chvíli nepotřebných prvků formuláře zrovnání zbylých komponent. V kždém formuláři je kromě povinných vstupních polí vytvořen ListBox obshující seznm všech metod implementovných v dné ktegorii. Vybráním jedné z nbízených metod dojde interně k přenesení vstupních dt do třídy MinMenu, kde se vytvoří nový formulář úplně stejným způsobem jko v přípdě cvičných úloh, tj. do konstruktoru nového formuláře vložíme přenesená vstupní dt původní metody vyplníme jimi vstupní pole tohoto nového formuláře, čímž uživteli význmně usndníme urychlíme práci s progrmem, jelikož je osvobozen od zdávání stejných vstupních dt v situcích, kdy potřebuje stejný příkld vyřešit pomocí více metod. Dlším společným prvkem všech formulářů je Trckbr s jehož pomocí může uživtel měnit velikost písm bez toho, niž by muselo dojít k novému překreslení výstupní části formuláře. Absence nutnosti překreslení je dán použitou knihovnou pro zobrzování mtemtických výrzů, která využívá technologii AJAX. Pomocí této technologie můžeme měnit obsh webové stránky právě bez nutnosti jejího plného znovunčtení. V plikci je myšleno i n situci, kdy by uživtel mohl mít zájem pouze o výsledek dné úlohy. K tomuto nstvení stčí odškrtnout Checkbox týkjící se zobrzení mezivýsledku. Po této změně dojde utomticky k vygenerování zobrzení nové HTML stránky, která již neobshuje postup výpočtu, le pouze řešení dné úlohy. Kždým formulář je dále vybven numericupdown komponentou, pomocí které lze nstvit mximální počet desetinných míst zobrzených u všech čísel obsžených ve výsledné webové stránce. Pro cvičné úlohy jsou určeny dvě tlčítk Přidt úlohu Přidt poznámku. Stisknutím tlčítk Přidt úlohu dochází v pozdí plikce k vytvoření XML souboru dné úlohy, který obshuje zdání úloh přípdnou poznámku k tomuto příkldu. Tento soubor je dále porovnáván s již existujícími XML soubory dné metody. Jestliže jsou dné dokumenty shodné, je uživtel informován o tom, že dný příkld se mezi cvičnými úlohmi vyskytuje není přidán k osttním cvičným úlohám. Jink je vytvořený XML soubor uložen mezi osttní. V přípdě, že uživtel nčte do plikce cvičnou úlohu s poznámkou, je její obsh utomticky vložen do formuláře Note, kde je připrven k přípdné editci. Posledním tlčítkem ve vstupní části formuláře je tlčítko Vypočítej, které je ktivní jen tehdy, když jsou vyplněn všechn povinná vstupní pole. Po stisknutí tohoto tlčítk dojde k zvolání metody CheckInput, pomocí které bude proveden kontrol vlidnosti uživtelem zdných vstupních dt (dochází k interkci s kontrolní výpočetní mezivrstvou). Pokud uživtelský vstup není vlidní, dojde k informování uživtele pomocí dilogového okn s příslušnou chybou. V opčné situci dojde k předání poždvku výpočtu BckGroundWorkeru, který získá řešení dné úlohy n dlším vlákně plikce. Po skončení výpočtu si v nejvyšší vrstvě převezmeme předávnou strukturu dt z implementční vrstvy zvoláme obslužnou metodu, která zjistí vytvoření webové stránky, jež obshuje kromě jiného i MthML kód. MthML je mtemtický znčkovcí jzyk zložený n bázi XML dokumentů 85
86 určený pro zápis mtemtických výrzů. Pro usndnění tvorby MthML kódu byl vytvořen sttická tříd MthmlGen, která obshuje struktury pro tvorbu MthML tgů. Npříkld výrz zpsný ve formě MthML kódu vypdá tkto: cos(x 3 )/(x 2) (7.3) <mth xmlns= http : / /www. w3. org /1998/Mth/MthML > <mfrc> <mrow> <mi>cos </mi> <mo>(</mo> <msup> <mi>x</mi> <mn>3</mn> </msup> <mo>)</mo> </mrow> <mrow> <mi>x</mi> <mo> </mo> <mn>2</mn> </mrow> </mfrc> </mth> Pomocí plikce vytvoříme ručně tento výrz tímto způsobem: Mthml. HederMth (Mthml. Disply. i n l i n e ) + Mthml. Frc (Mthml. L i t e r l ( cos ) + Mthml. LZ + Mthml. Sup ( Mthml. L i t e r l ( x ), Mthml. Constnt ( 3 ) ) + Mthml. PZ, Mthml. LZ + Mthml. L i t e r l ( x ) + Mthml. Minus + Mthml. Constnt ( 2 ) + Mthml. PZ) + Mthml. EndMth ; Nznčený způsob generování mtemtických výrzů je využít jednk pro všechny předpisy vzorce numerických metod v plikci, jednk při kždém generování postupu výpočtů výsledků spočtené mtemtické úlohy. Pro výstupy metod bylo třeb nvíc vymyslet lgoritmus, který by utomticky převedl v podsttě libovolná uživtelská veškerá proměnná dt ve výpisech do MthML podoby. Tento lgoritmus nlezneme ve třídě TextToMthml v metodě GenTextToMthml. Zákldní myšlenk lgoritmu je zložen n následující úvze. Nejprve převedeme příchozí mtemtický výrz do postfixové notce pomocí metody RPN rozdělíme 86
87 podle mezer do seznmu. Nyní budeme pomocí smyčky procházet tento seznm vždy, když nrzíme n binární operátor, převedeme dv předchozí prvky do kódu MthML (v přípdě, že nrzíme n funkci, je situce obdobná pouze s tím rozdílem, že nebereme v úvhu dv předchozí prvky, le pouze jeden). Nlezené položky spojíme v jeden výsledný prvek, přičemž mezi ně vložíme MthML kód příslušného operátoru (plus, minus, násobení nebo mocnění). V osttních přípdech (funkce, odmocnin či dělení) jsou operndy umístěny do připrvených MthML konstrukcí. Operndy včetně operátoru vymžeme ze seznmu n jejich místo vložíme získnou položku v MthML podobě. Tento postup budeme opkovt do doby, než získáme jeden výsledný prvek. Obrázek 7.2 ilustruje postup převodu výrzu cos(x 3 )/(x 2) do MthML. Obrázek 7.2: Ukázk převodu výrzu do MthML Nejprve detekujeme operátor mocnění, který spojíme s operndy x 3 v jednu MthML konstrukci. Operátor včetně operndů vymžeme ze seznmu n jejich místo vložíme získnou položku. V dlším průchodu nlezneme goniometrickou funkci cosinus, jejíž konstrukci předáme jko prmetr předchozí prvek. Opět zmenšíme seznm. Dlším detekovným operátorem je operátor minus vytvoříme MthML prvek spojením se dvěm předchozími operndy. V tuto chvíli se v seznmu nchází dvě dílčí MthML kódy operátor dělení. Pro tento operátor je 87
88 připrven příslušná struktur, které jko prmetr předáme poslední dv prvky. Touto stromovou konstrukcí získáme výsledný MthML kód uvžovného výrzu. Vzhledem k tomu, že výrzy zpsné pomocí RPN notce nevyždují závorky, bylo nutné implementovt metodu, pomocí které rozpoznáme jejich původní umístění, bychom je byly schopni zpětně vykreslit ve výstupní části formuláře. Řešením bylo porovnání počtu vnořených výrzů (které jsou obleny závorkmi) operátorů v dném výrzu. Pokud je operátorů více než vnořených výrzů, bude výrz umístěn mezi závorky. Pro vyrenderování MthML je v plikci využit jvscriptová knihovn MthJx, která je určen pro zobrzování mtemtických výrzů ve webových prohlížečích sázených z pomoci L A TEX nebo MthML. Pro snzší vygenerování webové stránky byl vytvořen sttická tříd HTMLGen. Tto tříd je svým návrhem velice podobná třídě MthMLGen, protože obshuje metody, které usndňují zápis HTML tgů. Vygenerovná HTML stránk bude následně zobrzen uživteli ve výstupní části formuláře. Výstupní část kždého formuláře obshuje TbControl s dvěm stránkmi. První stránk obshuje komponentu Awesomium, což je webový prohlížeč určený pro.net plikce nebo progrmy psné v jzyce C++. Tto komponent byl upřednostněn před osttními možnostmi z několik důvodů. Nejdůležitějším spektem byl úroveň zprcování MthML jzyk. Awesomium je npříkld schopno si pordit mnohem lépe s odřádkováním použitým v Mthml než dlší komponent podobného změření, kterou je Gecko. Tto komponent nepodporuje odřádkování vůbec. Dlší výrznou výhodou této komponenty v porovnání s MSIE prohlížečem či již zmíněným Geckem je možnost využití metod pro export do obrázkového formátu PNG či PDF. Smotní vývojáři Awesomi si nvíc položili z jko jeden z hlvních cílů přidání podpory tzv. thred-sfe, která by přinesl možnost multithredingu při mnipulci s touto komponentou. První stránk TbControl obshuje tké nbídku, jejíž první položk je určen pro konverzi HTML výstupů metod do dlších formátů. V plikci jsou podporovány převody do XML, HTML, PDF, JPG, GIF, PNG, BMP TIFF. Druhá položk nbídky slouží k výběru cvičné úlohy pro dnou numerickou metodu. Druhá stránk TbControl obshuje komponentu AcroPDF, ve které jsou zobrzovány PDF soubory obshující chrkteristiku implementovných numerických metod. Kromě smotného výpočtu jsou HTML stránky generovné metodmi z oblsti proximce funkce, Newton - Cotesovy vzorce řešení nelineárních rovnic doplněny o obrázky grfů. Jejich implementci nlezneme ve třídě Grph. Příslušné grfy vykreslíme v prezentční vrstvě tk, že využijeme získné struktury přijté z nejnižší vrstvy. Z těchto struktur zjistíme předpisy funkcí, které budeme v soustvě souřdnic zobrzovt. Zjištěné předpisy odešleme do kontrolní výpočetní vrstvy plikce, kde vypočteme funkční hodnotu n poždovném intervlu v celkem čtyř stech bodech. Body následně proložíme Beziérovou křivkou. Získný grf je vložen do bitmpy uložen jko obrázek ve formátu PNG. V přípdě metod pro řešení nelineárních rovnic metod pro proximci interpolci funkce (vyjm interpolčních splinů) je v soustvě souřdnic zobrzen 88
89 grf funkce. Metody interpolčních spline funkcí zobrzují v soustvě souřdnic n kždém podintervlu grf interpolčního polynomu. U Newton - Cotesových vzorců je kromě grfu funkce brevně ilustrován spočtená ploch integrálu. Jestliže uživtel zvolí složenou vrintu Newton - Cotesových vzorců je zobrzen grf funkce s brevně vyznčenou plochou, jejíž obsh vyhovuje poždvku zdné přesnosti. Vybrvená ploch se skládá z dílčích částí odpovídjících spočtenému integrálu funkce n kždém z uvžovných podintervlů. V dlší části popíšeme postup převodu HTML stránky do dlších formátů. Tyto lgoritmy jsou k nlezení ve třídě Exports. Princip exportu do XML spočívá v odstrnění všech HTML tgů tributů z vygenerovné webové stránky pomocí připrveného regulárního výrzu. Výjímku tvoří HTML tg spn obshující text, který je nhrzen MthML tgem mtext, čímž neztrtíme při této konverzi žádný text z dné webové stránky. Po tomto převodu je n zčátek vzniklého souboru umístěn XML hlvičk soubor je uložen. Uživtel může z plikce extrhovt přímo vygenerovnou webovou stránku. Při tomto exportu dochází k vytvoření nového HTML souboru, který obshuje zdrojový kód vygenerovné webové stránky. Je-li součástí webové stránky i grf, pk je obrázek grfu zkopírován do stejné složky jko příslušný HTML dokument. Při tvorbě exportu do některého grfického formátu nebo do formátu PDF byl situce složitější než v předchozích přípdech. Největším problémem bylo získt celý obrázek v přípdě výpočtu úloh, pro které byl vygenerován HTML stránk, k jejímuž plnému zobrzení v plikci bylo nutné využít posuvníku. Pokud bychom v tomto okmžiku chtěli vytvořit příslušný export, tk by obrázek obshovl pouze viditelnou část výpočtu. Z tohoto důvodu bylo využito potenciálu Awesomi, kdy bylo nutné nejprve zjistit šířku výšku vygenerovné HTML stránky. Toho bylo dosženo pomocí Jvscriptu, kdy kždá vygenerovná HTML stránk v plikci obshuje jvscriptové funkce pro získání těchto informcí. Dále jsme vytvořili instnci třídy WebView, které bylo zpotřebí předt zjištěné rozměry cestu k HTML dokumentu. Výhodou této třídy je schopnost nčtení vykreslení HTML stránky bez toho, niž by dná ploch musel být zobrzen. Po vykreslení celé stránky dojde ke zjištění rozměrů webové stránky podle nich k úprvě velikosti WebView. Tímto postupem dosáhneme stvu, kdy WebView pojme celou HTML stránku bez nutnosti použití posuvníku, tudíž při uložení plochy WebView jko obrázku bude viditelná celá úloh. Během exportu se zároveň snžíme o to, by ni jeden z rozměrů nebyl o mnoho větší než druhý. Pokud se tk stne, zmenšíme velikost písm v HTML stránce (včetně velikosti písm použitého v rámci MthML kódu) opětovně nčteme stránku, čímž dojde ke zmenšení rozdílu mezi šířkou výškou stránky. Toto opkujeme všk nejvýše třikrát, přičemž minimální velikost písm je šestnáct. Je-li v přípdě konverze do formátu PDF šířk větší než mximální povolená šířk, dochází k vytvoření PDF souboru orientovného n šířku. Během exportu je uživteli zobrzeno dilogové okno nesoucí informci o právě probíhjící konverzi. Jkmile je export dokončen, dilogové okno zmizí ve stvové liště v levém dolním rohu formuláře se objeví zpráv s informcí o dokončeném exportu. Uživtel může vytvořený soubor otevřít z plikce kliknutím n ikonu složky vedle této stvové informce. Soubor je otevřen ve stejném progrmu, s jkým má 89
90 uživtel nstvenou socici v rámci jeho operčního systému. Slbinou tohoto řešení je, že Awesomium v součsné době nepodporuje možnost provedení vykreslení n seprovném vlákně, což u úloh s rozsáhlým postupem přináší nemožnost práce s formulářem po dobu provádění exportu. Dlší nevýhodou zejmén v přípdě exportu do formátu PDF je dob konverze, která je dán především rychlostí metody PrintToFile. Tto metod je součástí Awesomi slouží pro smotné vytvoření následné uložení PDF souboru z přiložené HTML stránky. 7.4 Ilustrce interkce vrstev plikce V poslední části diplomové práce nstíníme interkci vrstev při výpočtech mtemtických úloh pomocí vybrných numerických metod z různých pohledů přiblížíme dění v pozdí plikce Numerická integrce První ktegorií, kterou budeme blíže chrkterizovt, je numerická integrce. V okmžiku kdy uživtel zvolí v hlvním menu progrmu metodu numerické integrce, je ve třídě MinMenu vyvolán událost SelectIntegrtionMethod Click, která získá celočíselný identifikátor (ID) metody zvolá metodu SelectIntegrtionMethod. Tto metod n zákldě identifikátoru vytvoří instnci třídy Integrtion win, které předá získné ID metody. V prezentční vrstvě dochází k loklizci vypnutí ktuálně nepotřebných komponent formuláře připojení obslužných metod pro delegáty inicilizci třídy BckGroundWorker, která slouží pro obsluhu plikce n úrovni vláken. Uživtel nyní vyplní všechn vstupní pole v horní části zobrzeného formuláře, provede nstvení týkjící se počtu poždovných desetinných míst či poždvku o zobrzení mezivýsledku stiskne tlčítko Vypočítej. V tuto chvíli dochází v prezentční kontrolní vrstvě k vlidci vstupních údjů testu jejich smysluplnosti. Díky prováznosti vrstev mohou všechny vstupní položky v celé plikci obshovt funkce lgebrické výrzy. V přípdě, že vstupní dt nejsou vlidní, je uživteli zobrzeno dilogové okno sdělující konkrétní příčinu. Pokud žádný z vlidátorů vstupních dt nezství proces vyvoláním chyby, je nd dty zvolán nonymní metod fungující n seprovném vlákně, která n zákldě číselného identifikátoru spustí konkrétní metodu implementční vrstvy, jež předá poždovné prmetry v souldu s kpitolou 7.1. V implementční vrstvě nyní dochází k výpočtu zdné úlohy, k čemuž využívá kontrolní výpočetní vrstvu (konkrétně metodu RPN ComputeRPN třídy Expression) pro vyčíslení funkční hodnoty funkce v dném bodě. Po ukončení výpočtu je zpět nejvyšší vrstvě odeslán příslušná dtová struktur nesoucí informce o průběhu výpočtu společně s výsledkem zdné úlohy. V rámci metody DoWork dojde k předání získné dtové množiny obslužné rutině, jejímž úkolem je n zákldě přijtých dt vygenerovt webovou stránku se zdáním předpisem metody (tyto předpisy nlezneme ve třídě Formuls). Pokud uživtel vyžduje postup výpočtu, dojde nejprve k doszení do obecných vzthů metod. 90
91 Až poté je zobrzen konkrétní postup při řešení dné úlohy. N konec webové stránky umístíme do rámečku brevně odlišený výsledek zdné úlohy. Ptří-li zvolená metod mezi Newton - Cotesovy vzorce, je součástí HTML stránky i obrázek s grfem funkce s brevně vyznčenou plochou vypočteného integrálu. Výsledná HTML stránk je nkonec uživteli zobrzen v komponentě Awesomium. V přípdě, že během výpočtu dojde k chybě, výpočet se přeruší uživtel je o tomto stvu příčině informován pomocí obslužných metod delegátů. Obrázek 7.3: Zjednodušený postup výpočtu úlohy obdélníkovým prvidlem s následným zobrzení pomocí Awesomi Numerická derivce Postup výpočtu úloh týkjící se určení derivce funkce v bodě je velice podobný jko v přípdě numerické integrce. Proto se nyní podíváme n interkci vrstev dění v pozdí plikce z pohledu cvičných úloh. V hlvním okně progrmu vyberme cvičné úlohy. V rámci třídy MinMenu se skrze metodu numerickáderivcecvicneulohy Click vytvoří formulář SelectMethod obshující příslušné numerické metody z vybrné numerické oblsti. Po výběru některé z metod se vytvoří nový formulář SelectTsk, který obshuje seznm cvičných úloh. Při plnění tohoto seznmu je v rámci metody SelectedDerCtegory proveden 91
92 kontrol XML souboru s cvičnou úlohou vůči XSD dokumentu (pomocí metody CheckByXSD třídy XMLPrser). Vybereme-li konkrétní úlohu dojde dále v metodě SelectedDerCtegory třídy MinMenu nejprve k extrhování obshu elementů XML dokumentu poté k vytvoření příslušného formuláře, kterému ovšem nepředáme pouze číselný identifikátor metody, le i všechn extrhovná dt. Těmito dty jsou ve formuláři Derivtion win předvyplněn všechn vstupní pole. Dlší postup je již nlogický numerické integrci. Po nstvení poždovného počtu desetinných míst zobrzení mezivýsledků stiskneme tlčítko Vypočítej. Ve spolupráci s kontrolní výpočetní vrstvou proběhne kontrol vstupních dt v přípdě, že není zjištěn žádný problém, je spuštěn BckGroundWorker, v jehož režii proběhne kooperce s implementční vrstvou. V rámci implementční vrstvy je získáno řešení, které je odesláno GUI vrstvě. Zde dojde k vygenerování webové stránky jejímu zobrzení pomocí Awesomi. Obrázek 7.4: Digrm znázorňující nčtení cvičné úlohy Řešení nelineárních rovnic Jkmile vybereme konkrétní metodu z této numerické ktegorie je vytvořen instnce třídy Neliner solutions win (respektive SeprtionOfRoots win v přípdě Sturmovy posloupnosti). Po inicilizci podpůrných metod nstvení nezbytných proměných je uživteli zobrzen formulář, ve kterém nejprve vyplní poždovné údje. V přípdě Newtonovy či Hlleyovy metody může uživtel vyplnit nvíc vstupní pole týkjící se nlytického tvru první druhé derivce. Pokud jsou tto pole vyplněn, jsou použit přednostně. V opčném přípdě je první i druhá derivce počítán numericky (první derivce funkce v bodě je určen pomocí centrální diference). N úrovni implementční vrstvy tedy dochází ke spolupráci mezi třídou Neliner Solutions lg Derivtion lg. V okmžiku vyplnění poždovných informcí, dochází k jejich ověření kontrolní prezentční vrstvou. V přípdě vlidního vstupu spustíme BckGroundWorker, který předá řízení příslušné metodě 92
93 implementční vrstvy. Tím vyhrdíme smotnému výpočtu vlstní vlákno. Výstupem těchto metod je objekt Nelin ret, který je předán GUI vrstvě. N zákldě informcí, které nese, je vytvořen webová stránk, kde je postup výpočtu uspořádán ve formě tbulky. N konec tohoto HTML výpisu je připojen grf zdné funkce získný jejím vyhodnocením ve čtyř stech bodech Aproximce funkce Čtvrtou oblstí, kterou budeme blíže popisovt je proximce interpolce funkce. Tyto metody blíže popíšeme z hledisk jejich progrmové implementce. Metody této skupiny lze rozdělit do tří podmnožin. První podskupin je tvořen interpolčními polynomy, ve které jsou implementovány dvě metody relizující Newtonův respektive Lgrngeův interpolční polynom. Po vyplnění uzlových bodů jejich funkční hodnot proběhne kontrol vlidity vstupních dt. Kromě správnosti zdání z pohledu správného zápisu bodů funkčních hodnot je npříkld kontrolováno, zd nemá určitý uzlový bod přiřzeny dvě funkční hodnoty ( tudíž by se nejednlo o funkci). BckGroundWorker po kontrole předá řízení poždovné metodě implementční vrstvy. Metod LgrngePolynomil nejprve vytvoří jmenovtele čittele všech fundmentálních polynomů. Tito čittelé jsou v rámci konkrétního polynomu roznásobeni. Součsně je vypočten hodnot jeho jmenovtele. Poté dochází k vytvoření polynomu vynásobením čittele převrácené hodnoty jmenovtele. Získný polynom je vynásoben funkční hodnotou uzlu x i. Nznčeným způsobem vypočteme všechny polynomy, které mezi sebou sečteme, čímž získáme výsledný Lgrngeův interpolční polynom. V přípdě výpočtu Newtonov interpolčního polynomu dochází nejdříve k určení poměrných diferencí pomocí dvou vnořených cyklů, které jsou následně vynásobeny polynomy ve tvru x x i. Zde využíváme myšlenky, kterou můžeme vyčíst z předpisu Newtonov interpolčního polynomu (1.12), kdy v i-té iterci cyklu stčí ktuální součin polynomů vynásobit polynomem x x i, čímž ušetříme mnoho početních opercí. Tímto způsobem získáme soubor polynomů, ze kterých jejich sečtením získáme výsledný Newtonův interpolční polynom. Druhá skupin je tvořen metodmi, které jsou zloženy n interpolci funkce pomocí interpolčních splinů. Princip interpolčních spline funkcí spočívá ve vytvoření polynomů n dílčích intervlech, které jsou vytvořeny mezi všemi uzlovými body. V přípdě interpolce přirozeným kubickým splinem sestvíme nejprve v souldu se vzthem (1.44) soustvu rovnic. N úrovni implementční vrstvy následně dojde ke spolupráci se třídou Liner solutions lg, kdy n vzniklou soustvu s třídigonální mticí plikujeme přímý zpětný chod Gussovy elimince, čímž vypočteme tzv. momenty spline (pro zchování univerzálnosti předpokládáme neekvidistntní dělení intervlu). V dlší fázi výpočtu zjistíme podle vzthů (1.26) (1.30) hodnoty integrčních konstnt A i B i. Poté využijeme operce s polynomy vypočteme kubické polynomy n intervlech podle vzthu (1.23). K vypočtení interpolčních polynomů bylo nutné v plikci implementovt metody umožňující npříkld sčítt, odečítt nebo násobit polynomy. Tyto lgoritmy 93
94 nlezneme ve třídě Polynoms, jejíž metody přijímjí seznmy číselných hodnot, obshující hodnoty koeficientů dného polynomu. Do poslední skupiny byl zřzen lgoritmus metody nejmenších čtverců, který relizuje proximci funkce pro obecný stupeň polynomu. Tto metod skládjící se z několik cyklů je implementován pomocí funkce LestSqurePolynom. Využitím smyček jsou vypočteny součty uvedené ve vzthu (1.49) které využijeme pro získání řešení výsledné soustvy lineárních rovnic. Pro získání koeficientů hledného polynomu plikujeme n vzniklou soustvu lineárních rovnic přímý zpětný chod Gussovy elimince. Po skončení výpočtu úlohy jkoukoli z uvedených metod jsou veškeré mezivýpočty společně s výsledkem odeslány prezentční vrstvě, kde její metody tuto dtovou strukturu použijí pro vygenerování interpretci výsledné webové stránky uživteli. Ve výpisu je klden důrz n didktičnost, proto u kždé z metod nlezneme doszení do obecného vzthu ž poté postup výpočtu konkrétní úlohy s výsledkem. Všechny vygenerovné webové stránky obshují n svém konci grf vypočteného polynomu se znázorněnými uzlovými body Řešení soustv lineárních rovnic Předposlední skupinu týkjící se řešení soustv lineárních rovnic metod budeme blíže chrkterizovt zejmén z pohledu interpretce výsledků směrem k uživteli. Po vytvoření formuláře, jeho následné příprvě konkrétní numerické metodě, kontrole korektnosti vstupních dt vypočtení příslušné úlohy metodou, kterou nlezneme ve třídě Liner solutions lg, nstává fáze vygenerování výsledného HTML dokumentu. Ke kždé numerické metodě určené pro řešení soustv lineárních rovnic byl nprogrmován obslužná metod, pomocí níž vytvoříme MthML kód obshující obecný postup výpočtu, z nímž následuje konkrétní výpočet brevně odlišený výsledek úlohy. K tomu využíváme připrvených struktur sttické třídy MthmlGen. Získný MthML kód je opět odeslán BckGroundWorkeru (konkrétně metodě DoWork), který poté zvolá metodu GenerteHtml. Tto metod je již společná pro všechny metody z dné numerické ktegorie. Pro snzší zápis HTML tgů dokumentu využíváme připrvené konstrukce sttické třídy HTMLGen. Kždý vygenerovný soubor zčíná HTML hlvičkou. V této hlvičce je uveden cest ke knihovně MthJx. Z touto cestou nlezneme konfigurci této knihovny jvscriptové funkce využívné při provádění exportu do některého z obrázkových formátů či PDF. Po hlvičce následuje shrnutí zdání úlohy formule zvolené metody. Pro možnost vykreslení předpisů numerických lgoritmů byl vytvořen sttická tříd Formuls, která obshuje MthML kódy těchto předpisů. Z předpisem metody následuje HTML tg div, do něhož umístíme vygenerovný MthML kód úlohy. Jkmile tento dočsný dokument vytvoříme pošleme cestu k němu komponentě Awesomium, která ve spolupráci s knihovnou MthJx zjistí interpretci výsledků uživteli včetně vykreslení mtemtických výrzů. 94
95 Obrázek 7.5: Ukázk postupu generování HTML pro Gussovu eliminci jeho zobrzení pomocí Awesomi Vlstní čísl vlstní vektory V této podkpitole se budeme soustředit nikoli n interkci mezi vrstvmi modelu plikce, le n spolupráci mezi třídmi nejvyšší vrstvy při poždvku exportu úlohy. Jko ilustrční metodu zvolme QR lgoritmus s QR rozkldem získným pomocí Householderovy trnsformce demonstrujme situci, kdy uživtel chce provést export postupu výsledku konkrétní cvičné úlohy zvolené metody. Z hlvního okn plikce zvolíme Cvičné úlohy pomocí formulářů SelectMethod SelectTsk si vybereme jednu úlohu ze seznmu připrvených zdání. Po extrhování XML dokumentu kontrole vůči XSD dokumentu, který v tomto přípdě vyžduje, by XML soubor povinně obshovl vstupní vstupní mtici, vstupní vektor počet itercí nepovinně poznámku k úloze, je zdání příkldu přeneseno do formuláře EigenVlues EigenVectors win připrveného pro metodu QR lgoritmu. Uživtel nyní může provést nstvení týkjící se zobrzení postupu výpočtu či počtu zobrzovných desetinných míst stiskne tlčítko Vypočítej. Jkmile dojde k ověření vstupních dt, je zhájen proces výpočtu úlohy (kooperce BckGroundWorkeru s konkrétní metodou implementční vrstvy). Po skončení výpočtu dojde k přenosu získné množiny dt do funkce ShowHouseHolder určené 95
96 k vygenerování MthML kódu pro QR lgoritmus. Vykonáním metody GenerteHTML vytvoříme soubor, který je zobrzen uživteli. Nyní si uživtel ve výstupní části formuláře zvolí z hlvní nbídky záložku Exporty vybere formát souboru, do kterého chce provést konverzi. V ilustrčním příkldě zvolíme konverzi do formátu PDF. Uživteli je zobrzen SveDilog, ve kterém zvolí poždovné umístění PDF dokumentu. Metodou ExecuteJvsctiptWithResult zvoláme funkce umístěné v HTML dokumentu vypočtené úlohy zjistíme rozměry HTML stránky. Tyto údje společně s velikostí písm cestou k dokumentu přepošleme metodě ToPDF třídy Export. V rámci této metody zvoláme metodu WebViewLod vytvoříme instnci třídy WebView, které předáme rozměry stránky s vypočtenou úlohou QR lgoritmu. Následně nčteme webovou stránku zkontrolujeme jestli se výstup vejde n šířku stránky o rozměrech A4. Jestliže nikoli, zmenšíme písmo stránku opětovně nčteme. Toto opkujeme do doby, dokud je písmo větší než šestnáct. Avšk nejvýše třikrát. Pokud je i poté šířk HTML dokumentu větší, než šířk strny A4, je uložen dný PDF soubor n šířku pomocí dodtečného nstvení v metodě PrintToFile. Během těchto opercí je uživteli zobrzeno dilogové okno informující o právě probíhjícím exportu. Po dokončení exportu je dilogové okno uzvřeno pomocí stvové lišty umístěné v levé dolní části formuláře je uživtel informován o dokončeném exportu, přičemž kliknutím n ikonu složky může získný PDF soubor otevřít k nhlédnutí. Obrázek 7.6: Ukázk postupu při exportu do PDF 7.5 Distribuce instlce plikce Pro distribuci plikce byly vytvořeny webové stránky zkoupen domén N těchto stránkách uživtel nlezne pokyny k instlci plikce, zároveň si zde může stáhnout do svého počítče text diplomové práce ve formátu PDF rchiv obshující vytvořenou plikci. Archiv obshuje složku soubory, v níž jsou umístěny cvičné úlohy, PDF soubory popisující kždou 96
97 numerickou ktegorii, složku mthjx2.3, která obshuje potřebné skripty pro vykreslování mtemtických výrzů, dresář font z něhož jsou instlovány potřebná mtemtická písm, cvičné úlohy instlční soubory Adobe Rederu Awesomi. Smotnou plikci ninstlujeme poměrně jednoduchým způsobem: 1. Stáhneme plikci ve formátu.zip. 2. Archiv extrhujeme do libovolné složky počítče. 3. Otevřeme složku s plikcí. 4. Spustíme soubor Diplomov prce.exe s oprávněním správce. Při prvním spuštění, respektive vždy, když není detekován přítomnost potřebných součástí v počítči uživtele, plikce ninstluje do počítče (z důvodu instlce potřebných součástí je vyždováno oprávnění správce) Awesomium SDK, Adobe Reder mtemtická písm. Po této instlci je plikce připrven k užívání. 97
98 Závěr Cílem této diplomové práce bylo vytvoření rešerše věnující se vybrným metodám z šesti odvětví numerické mtemtiky n jejím zákldě vytvořit plikci, jež kromě výsledku řešené úlohy prezentuje uživteli podrobný postup výpočtu úlohy. V první části této práce byl pozornost věnován vytvoření teoretické stti, ve které byly chrkterizovány principy shrnuty vlstnosti metod z oblsti proximce funkce, numerické derivce integrce, řešení nelineárních rovnic, řešení soustv lineárních rovnic oblsti pro numerický výpočet vlstních čísel vlstních vektorů reálných symetrických mtic. Prktická část se zbývá progrmovou implementcí plikce v jzyce C#. Model plikce je rozdělen do tří vrstev. Nejnižší vrstv obshuje progrmovou relizci všech numerických metod chrkterizovných v první části diplomové práce. V součsné době plikce obshuje čtyřicet šest numerických metod. Tyto metody jsou vykonávány vždy pomocí vyhrzeného vlákn. Dále tto vrstv obshuje pomocné třídy, jež jsou využity npříkld při počítání s polynomy či mticemi. Dlší vrstvou je kontrolní výpočetní vrstv, která implementuje Shunting-Yrd lgoritmus pro převod mtemtických výrzů do postfixové notce obshuje metodu pro výpočet hodnoty výrzů v této notci. Dlším důležitým úkolem této vrstvy je provedení kontroly uživtelem zdných vstupních dt. Díky tomu mohou všechny vstupní položky v plikci obshovt mtemtické výrzy. V rámci celé plikce byl klden důrz n didktickou stránku plikce, kdy je kždá řešená úloh doplněn o výstup obshující informce o postupu výpočtu. Prezentční vrstv proto vytváří n zákldě přijtých dt z nejnižší vrstvy HTML soubor s utomticky generovným MthML kódem, který kromě smotného výsledku obshuje i postup výpočtu. V přípdě proximce funkcí, numerické integrce metod pro řešení nelineárních rovnic je k HTML souboru připojen obrázek s grfickým řešením dné úlohy. Vzhledem ke skutečnosti, že uživtel může do vstupních polí zdt libovolné výrzy, musel být npsán lgoritmus pro utomtický převod těchto výrzů do MthML podoby. Výsledná webová stránk je v plikci zobrzen pomocí Awesomi. Pro vykreslení všech mtemtických výrzů zpsných pomocí MthML kódu je využit jvscriptová knihovn MthJx. Aplikce dále umožňuje exportovt webovou stránku do formátu XML, HTML, JPG, BMP, PNG, TIFF, GIF nebo PDF. Při exportu do obrázkového formátu nebo formátu PDF je využito možností Awesomi, které ovšem v poslední verzi nepodporovlo multithreding. Nicméně tento nedosttek by měl být vývojáři Awesomi v nejbližší době odstrněn. Součástí progrmu je dále sd cvičných úloh, k nimž může uživtel jednoduchým způsobem přidávt (respektive mzt) své úlohy včetně přípdné poznámky k dné 98
99 úloze. Jednotlivé úlohy kždé metody jsou uloženy jko XML dokumenty. Pro distribuci plikce byl nprogrmován webová stránk zkoupen domén N této drese je přístupný text diplomové práce smotná plikce. Během testování plikce po vydání její prvotní verze jsem se setkl ve většině přípdů s pozitivními rekcemi. Přičemž byl oceňován způsob zdání vlstních příkldů výstupy metod s vykreslováním mtemtických výrzů včetně podpory exportu. Největšího ohlsu se ovšem dočkl možnost zobrzování mezivýsledků. Z těchto důvodů je plikce studenty využíván nejen pro kontrolu při ručním počítání mtemtických úloh, le i při ldění jejich progrmů. Osobně jsem si výběrem této diplomové práce rozšířil znlosti studiem numerických lgoritmů, zároveň prohloubil své progrmátorské dovednosti z hledisk návrhu plikce, kooperce většího počtu použitých technologií (v rámci plikce jsou využity jzyky C#, HTML, MthML, XML, Jvscript) lgoritmizce vyčíslování výrzů pomocí počítče či práce s regulárními výrzy. Nvíc jsem si psním této diplomové práce osvojil zákldy L A TEX. V budoucnu bych chtěl tuto plikci ndále rozvíjet přidt metody npříkld z oblsti numerické optimlizce či obyčejných prciálních diferenciálních rovnic. 99
100 Litertur [1] FAJMON, Břetislv RŮŽIČKOVÁ Iren. Mtemtik 3: Numerické metody [online]. Brno, 2013 [cit ]. Dostupné z: vutbr.cz/~novkm/mtemtik3.pdf. Vysokoškolská skript. Vysoké učení technické v Brně. [2] FELCMAN, Jiří. Numerická mtemtik [online].prh, 2013 [cit ]. Dostupné z: Vysokoškolská skript. Univerzit Krlov v Prze. [3] [4] PŘIKRYL, Petr. Numerické metody mtemtické nlýzy. 2. vyd. Prh: SNTL, 1988, 192 s. KUČERA, Rdek. Numerické metody [online] [cit ]. Dostupné z: Vysokoškolská skript. Vysoká škol báňská - Technická univerzit Ostrv. [5] SALAMON, Nichols. Chpter 4. Common Splines. [online]. [cit ]. Dostupné z: 3.doc. PennStte University. [6] [7] MOŠOVÁ, Vrtislv. Numerické metody [online]. Ústí nd Lbem, 2009 [cit ]. Dostupné z: DlsiSkript/numerickemetody.pdf. Vysokoškolská skript. Univerzit Jn Evngelisty Purkyně v Ústí nd Lbem. MAŘÍK, Robert. Metod nejmenších čtverců. [online]. [cit ]. Dostupné z: Mendelov univerzit v Brně. [8] Definice derivce [online]. Prh, 2013 [cit ]. Dostupné z: http: //mth.feld.cvut.cz/others/pvlu/teorie2.htm. České vysoké učení technické v Prze. [9] LEVY, Doron. Numericl Differentition. [online] [cit ]. Dostupné z: lecture-notes/differentition-chp.pdf.university of Mrylnd. [10] VITÁSEK, Emil. Numerické metody. 1. vyd. Prh: SNTL, 1987, 516 s. [11] SHAPIRO, Bruece. Richrdson Extrpoltion [online]. Cliforni, 2008 [cit ]. Dostupné z: 24-Richrdson.pdf. Vysokoškolská skript. Cliforni Stte University Northridge. 100
101 [12] [13] [14] DANĚK, Josef. Derivce funkce [online]. Plzeň, 2003 [cit ]. Dostupné z: derivce_integrce.pdf. Zápdočeská univerzit v Plzni. ČERMÁK, Libor HLAVIČKA Rudolf. Numerické metody: Numerický výpočet derivce integrálu [online]. Brno, 2006 [cit ]. Dostupné z: mthonline.fme.vutbr.cz/uplodedfiles/243.pdf. Vysoké učení technické v Brně. DĚMIDOVIČ, Boris Pvlovič MARON Isk Abrmovič. Zákldy numerické mtemtiky. 1. vyd. Prh: SNTL, 1966, 724 s. [15] RALSTON, Anthony. Zákldy numerické mtemtiky. 2. vyd. Prh: Acdemi, 1978, 636 s. [16] Numericl Integrtion [online]. Jponsko, 2009 [cit ]. Dostupné z: syjx/3/chpter4.pdf [17] ZELINKA, Jiří HOROVÁ Ivn. Numerik [online]. Brno, 2008 [cit ]. Dostupné z: numerik.pdf. Msrykov univerzit v Brně. [18] RIEČANOVÁ, Zden et l. Numerické metódy mtemtická šttistik. 3. vyd. Brtislv: Alf, 1987, 496 s. [19] QUARTERONI, Alfio, Riccrdo SACCO Fusto SALERI. Numericl mthemtics. New York: Springer, c2000, xx, 654 p. ISBN [20] LIMPOUCH, Jiří. Numerická integrce. [online]. [cit ]. Dostupné z: České Vysoké učení technické v Prze. [21] VICHER, Miroslv. Numerická mtemtik [online] [cit ]. Dostupné z: Vysokoškolská skript. Univerzit Krlov v Prze. [22] LEGRAS, Jen. Metódy použitie numerickej mtemtiky. 1. vyd. Překld Kmil Hrubin. Brtislv: Alf, vydvtel stvo technickej ekonomickej litertúry, 1978, 383 s. Edíci teoretickej litertúry. [23] KOCUR, Pvel. Numerické metody: Metod tečen (Newtonov metod)[online]. Plzeň, 2000 [cit ]. Dostupné z: mterily/numet/_numet.html#_toc Zápdočeská univerzit v Plzni. [24] WEN-CHIEH, Lin. Solving Nonliner Eqution [online]. Hsinchu, Tiwn, 2005 [cit ]. Dostupné z: NM/chp1.pdf. Ntionl Chio-Tung University. 101
102 [25] Steffensen s method: Simple description. In: Wikipedi: the free encyclopedi [online]. Sn Frncisco (CA): Wikimedi Foundtion, [cit ]. Dostupné z: s_method. [26] ALBEANU, Grigore.On the generlized Hlley method for solving nonliner equtions [online]. Buchrest, 2008 [cit ]. Dostupné z: RJv4n2-Albenu.pdf. Spiru Hret University. [27] [28] [29] [30] HASÍK, Krel. Numerické metody [online]. Opv, 2006 [cit ]. Dostupné z: Numericke-metody/Numericke-metody.pdf. Vysokoškolská skript. Slezská univerzit v Opvě. MÍKA, Stnislv. Numerické metody lgebry. 2., nezm. vyd. Prh: SNTL, 1985, 169 s. Mtemtik pro vysoké školy technické. ČERNÁ, Růžen. Zákldy numerické mtemtiky progrmování: celostátní vysokoškolská učebnice pro strojní, elektrotechnické stvební fkulty vysokých škol technických. 1. vyd. Prh: Státní nkldtelství technické litertury, 1987, 445 s. LÍSAL, Mrtin. Přímé metody řešení soustv lineárních rovnic [online]. Chomutov, 2009 [cit ]. Dostupné z: cz/~mlisl/nm_1-chomutov/jkrejci/texty/prime%20metody.pdf. Univerzit Jn Evngelisty Purkyně v Ústí nd Lbem. [31] NATARAJ, Neel. Guss Elimintion method with prtil pivoting [online]. Bomby, 2008 [cit ]. Dostupné z: ~neel/prtilpivot.pdf. Indin Institute of Technology Bomby. [32] [33] [34] [35] ČERNÁ, Dn. Numerické metody lineární lgebry [online]. Liberec, 2013 [cit ]. Dostupné z: cern-mtemtik3-fs/num_lin_lg.pdf. Vysokoškolská skript. Technická univerzit v Liberci. OLŠÁK, Petr. LU rozkld [online]. Prh, 2010 [cit ]. Dostupné z: ČERNÝ, Pvel. Metod SOR (Successive OverRelxtion) [online]. Ústí nd Lbem [cit ]. Dostupné z: 2-chomutov/pcerny/files/sor_m.html. Univerzit Jn Evngelisty Purkyně v Ústí nd Lbem. HLAVÁČ, Zdeněk. Řešení soustv lineárních lgebrických rovnic. [online]. [cit ]. Dostupné z: eseni-soustv-linernich-lgebrickych-rovnic.pdf. Zápdočeská univerzit v Plzni. 102
103 [36] [37] OLŠÁK, Petr. Vlstní číslo, vektor. [online] [cit ]. Dostupné z: BAŠTINEC, Jromír Michl NOVÁK. Moderní numerické metody [online]. Brno [cit ]. Dostupné z: inovce/mterily/skript/mmnm.pdf. Vysoké učení technické v Brně. [38] Symetrické mtice. [online]. [cit ]. Dostupné z: cvut.cz/ftp/vyuk/ma5/symetrmtice.pdf. České vysoké učení technické v Prze. [39] TEKNOMO, Krdi. Similrity Trnsformtion nd Mtrix Digonliztion [online] [cit ]. Dostupné z: krdi/tutoril/lineralgebr/mtrixdigonliztion.html. [40] [41] OKŠA, Gbriel. Úvod do numerických metód lineárnej lgebry. 1. vyd. Brtislv: Nkldtel stvo STU, 2009, 106 s. Edíci skrípt. ISBN VONDRÁK, Vít POSPÍŠIL Lukáš. NUMERICKÉ METODY I [online]. Ostrv, 2011 [cit ]. Dostupné z: vsb.cz/files/unit/numericke_metody.pdf. Zápdočeská univerzit v Plzni Vysoká škol báňská Technická univerzit Ostrv. [42] HÖSCHL, Cyril. VYUŽITÍ MALÝCH POČÍTAČŮ PRO PRÁCI KON- STRUKTÉRA [online]. Prh: Dům techniky ČSVTS Prh, 1981 [cit ]. Dostupné z: POCITACU_PRO_PRACI_KONSTRUKTERA-ocr.pdf. Ústv termomechniky AV ČR. [43] GAO, Tngn. Householder s method. [online] [cit ]. Dostupné z: Stte University. [44] SOJKA, Rdim. Prlelní implementce ortogonlizce mtice [online]. Ostrv, 2013 [cit ]. Dostupné z: sites/fei/k470/cs/theses/bklri/2013/soj0018.pdf. Bklářská práce. Technická univerzit Ostrv, Fkult elektrotechniky informtiky, Ktedr informtiky. [45] DOMPIERRE, Julien. Householder Reflections nd Givens Rottions Mtrix Computtions CPSC 5006 E [online] [cit ]. Dostupné z: F2010/cours/ch05_Householder_Givens.pdf. Lurentin University. [46] Odvození trnsformčních mtic pro různé typy rotce. [online]. [cit ]. Dostupné z: rotce_prikld.htm. Msrykov univerzit v Brně. 103
104 [47] KUBÍČEK, Miln, DUBCOVÁ Miroslv JANOVSKÁ Drhoslv. Numerické metody lgoritmy: Givensovy mtice rovinné rotce [online]. 2. vydání. Prh: VŠCHT, 2005, s. 167 [cit ]. ISBN Dostupné z: isbn /pges-img/167.html. [48] JANOVSKÁ, Drhoslv. Mtemtik pro chemické inženýry. [online] [cit ]. Dostupné z: pdf. Vysoká škol chemicko-technologická v Prze. [49] BAYER. Výpočet hodnot ritmetického výrzu: Infixová notce, Prefixová notce, Postfixová notce [online]. Prh, 2013 [cit ]. Dostupné z: Vysokoškolská skript. Univerzit Krlov v Prze. [50] Shunting-yrd lgorithm. In: Wikipedi: the free encyclopedi [online]. Sn Frncisco (CA): Wikimedi Foundtion, [cit ]. Dostupné z: 104
105 A Ukázky plikce Obrázek A.1: Úvodní obrzovk plikce Obrázek A.2: Cvičné úlohy metody Gussovy elimince 105
Obecně: K dané funkci f hledáme funkci ϕ z dané množiny funkcí M, pro kterou v daných bodech x 0 < x 1 <... < x n. (δ ij... Kroneckerovo delta) (4)
KAPITOLA 13: Numerická integrce interpolce [MA1-18:P13.1] 13.1 Interpolce Obecně: K dné funkci f hledáme funkci ϕ z dné množiny funkcí M, pro kterou v dných bodech x 0 < x 1
Více1.1 Numerické integrování
1.1 Numerické integrování 1.1.1 Úvodní úvhy Nším cílem bude přibližný numerický výpočet určitého integrálu I = f(x)dx. (1.1) Je-li znám k integrovné funkci f primitivní funkce F (F (x) = f(x)), můžeme
VíceSouhrn základních výpočetních postupů v Excelu probíraných v AVT 04-05 listopad 2004. r r. . b = A
Souhrn zákldních výpočetních postupů v Ecelu probírných v AVT 04-05 listopd 2004. Řešení soustv lineárních rovnic Soustv lineárních rovnic ve tvru r r A. = b tj. npř. pro 3 rovnice o 3 neznámých 2 3 Hodnoty
VíceLINEÁRNÍ DIFERENCIÁLNÍ ROVNICE 2.ŘÁDU
LINEÁRNÍ DIFERENCIÁLNÍ ROVNICE 2.ŘÁDU ZDENĚK ŠIBRAVA 1. Obecné řešení lin. dif. rovnice 2.řádu s konstntními koeficienty 1.1. Vrice konstnt. Příkld 1.1. Njděme obecné řešení diferenciální rovnice (1) y
VíceURČITÝ INTEGRÁL FUNKCE
URČITÝ INTEGRÁL FUNKCE Formulce: Nším cílem je určit přibližnou hodnotu určitého integrálu I() = () d, kde předpokládáme, že unkce je n intervlu, b integrovtelná. Poznámk: Geometrický význm integrálu I()
VíceJak již bylo uvedeno v předcházející kapitole, můžeme při výpočtu určitých integrálů ze složitějších funkcí postupovat v zásadě dvěma způsoby:
.. Substituční metod pro určité integrály.. Substituční metod pro určité integrály Cíle Seznámíte se s použitím substituční metody při výpočtu určitých integrálů. Zákldní typy integrálů, které lze touto
VíceKomplexní čísla tedy násobíme jako dvojčleny s tím, že použijeme vztah i 2 = 1. = (a 1 + ia 2 )(b 1 ib 2 ) b 2 1 + b2 2.
7 Komplexní čísl 71 Komplexní číslo je uspořádná dvojice reálných čísel Komplexní číslo = 1, ) zprvidl zpisujeme v tzv lgebrickém tvru = 1 + i, kde i je imginární jednotk, pro kterou pltí i = 1 Číslo 1
VíceMatice. a B =...,...,...,...,..., prvků z tělesa T (tímto. Definice: Soubor A = ( a. ...,..., ra
Definice: Soubor A ( i j ) Mtice 11 12 1n 21 22 2n m 1 m2 prvků z těles T (tímto tělesem T bude v nší prxi nejčstěji těleso reálných čísel R resp těleso rcionálních čísel Q či těleso komplexních čísel
Více+ c. n x ( ) ( ) f x dx ln f x c ) a. x x. dx = cotgx + c. A x. A x A arctgx + A x A c
) INTEGRÁLNÍ POČET FUNKCE JEDNÉ PROMĚNNÉ ) Pojem neurčitého integrálu Je dán funkce Pltí všk tké F tk, y pltilo F ( ) f ( ) Zřejmě F ( ), protože pltí, 5,, oecně c, kde c je liovolná kon- stnt f ( ) nším
Více4. přednáška 22. října Úplné metrické prostory. Metrický prostor (M, d) je úplný, když každá cauchyovská posloupnost bodů v M konverguje.
4. přednášk 22. říjn 2007 Úplné metrické prostory. Metrický prostor (M, d) je úplný, když kždá cuchyovská posloupnost bodů v M konverguje. Příkldy. 1. Euklidovský prostor R je úplný, kždá cuchyovská posloupnost
Více26. listopadu a 10.prosince 2016
Integrální počet Přednášk 4 5 26. listopdu 10.prosince 2016 Obsh 1 Neurčitý integrál Tbulkové integrály Substituční metod Metod per-prtes 2 Určitý integrál Geometrické plikce Fyzikální plikce K čemu integrální
VíceVIII. Primitivní funkce a Riemannův integrál
VIII. Primitivní funkce Riemnnův integrál VIII.2. Riemnnův integrál opkování Vět. Nechť f je spojitá funkce n intervlu, b nechť c, b. Oznčíme-li F (x) = x (, b), pk F (x) = f(x) pro kždé x (, b). VIII.3.
Více6. Určitý integrál a jeho výpočet, aplikace
Aplikovná mtemtik 1, NMAF071 6. Určitý integrál výpočet, plikce T. Slč, MÚ MFF UK ZS 2017/18 ZS 2017/18) Aplikovná mtemtik 1, NMAF071 6. Určitý integrál 1 / 13 6.1 Newtonův integrál Definice 6.1 Řekneme,
VíceLDF MENDELU. Simona Fišnarová (MENDELU) Určitý integrál ZVMT lesnictví 1 / 26
Určitý integrál Zákldy vyšší mtemtiky LDF MENDELU Podpořeno projektem Průřezová inovce studijních progrmů Lesnické dřevřské fkulty MENDELU v Brně (LDF) s ohledem n discipĺıny společného zákldu http://kdemie.ldf.mendelu.cz/cz
Vícex + F F x F (x, f(x)).
I. Funkce dvou více reálných proměnných 8. Implicitně dné funkce. Budeme se zbývt úlohou, kdy funkce není zdná přímo předpisem, který vyjdřuje závislost její hodnoty n hodnotách proměnných. Jeden z možných
VíceMatematika 1A. PetrSalačaJiříHozman Fakulta přírodovědně-humanitní a pedagogická Technická univerzita v Liberci
Mtemtik 1A. PetrSlčJiříHozmn Fkult přírodovědně-humnitní pedgogická Technická univerzit v Liberci petr.slc@tul.cz jiri.hozmn@tul.cz 21.11.2016 Fkult přírodovědně-humnitní pedgogická TUL ZS 2016-2017 1/
VíceR n výběr reprezentantů. Řekneme, že funkce f je Riemannovsky integrovatelná na
Mtemtik II. Určitý integrál.1. Pojem Riemnnov určitého integrálu Definice.1.1. Říkáme, že funkce f( x ) je n intervlu integrovtelná (schopná integrce), je-li n něm ohrničená spoň po částech spojitá.
Více7. Integrální počet Primitivní funkce, Neurčitý integrál
7. Integrální počet 7.. Primitivní funkce, Neurčitý integrál Definice 7. Říkáme, že F (x) je v intervlu (, b) (přitom může být tké =, b = + ) primitivní funkcí k finkci f(x), jestliže pro všechn x (, b)
VíceIntegrální počet - III. část (určitý vlastní integrál)
Integrální počet - III. část (určitý vlstní integrál) Michl Fusek Ústv mtemtiky FEKT VUT, fusekmi@feec.vutbr.cz 8. přednášk z AMA1 Michl Fusek (fusekmi@feec.vutbr.cz) 1 / 18 Obsh 1 Určitý vlstní (Riemnnův)
VíceIntegrální počet - II. část (určitý integrál a jeho aplikace)
Integrální počet - II. část (určitý integrál jeho plikce) Michl Fusek Ústv mtemtiky FEKT VUT, fusekmi@feec.vutbr.cz 7. přednášk z ESMAT Michl Fusek (fusekmi@feec.vutbr.cz) 1 / 23 Obsh 1 Určitý vlstní (Riemnnův)
Více1. LINEÁRNÍ ALGEBRA 1.1. Matice
Lineární lgebr LINEÁRNÍ LGEBR Mtice Zákldní pojmy Mticí typu m/n nzýváme schém mn prvků, které jsou uspořádány do m řádků n sloupců: n n m/n = = = ( ij ) m m mn V tomto schémtu pro řádky sloupce užíváme
VícePetr Hasil. Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF)
Určitý integrál Petr Hsil Přednášk z mtemtiky Podpořeno projektem Průřezová inovce studijních progrmů Lesnické dřevřské fkulty MENDELU v Brně (LDF) s ohledem n discipĺıny společného zákldu (reg. č. CZ.1.07/2.2.00/28.0021)
VíceVIII. Primitivní funkce a Riemannův integrál
VIII. Primitivní funkce Riemnnův integrál VIII.2. Primitivní funkce Definice. Nechť funkce f je definován n neprázdném otevřeném intervlu I. Řekneme, že funkce F : I R je primitivní funkce k f n intervlu
VíceMatematika II: Pracovní listy Integrální počet funkce jedné reálné proměnné
Mtemtik II: Prcovní listy Integrální počet funkce jedné reálné proměnné Petr Schreiberová, Petr Volný Ktedr mtemtiky deskriptivní geometrie VŠB - Technická univerzit Ostrv Ostrv 8 Obsh Neurčitý integrál.
VíceSpojitost funkce v bodě, spojitost funkce v intervalu
10.1.6 Spojitost funkce v bodě, spojitost funkce v intervlu Předpokldy: 10104, 10105 Př. 1: Nkresli, jk funkce f ( x ) dná grfem zobrzí vyznčené okolí bodu n ose x n osu y. Poté nkresli n osu x vzor okolí
VíceIntegrál a jeho aplikace Tomáš Matoušek
Integrál jeho plikce Tomáš Mtoušek Křivk Definice.(Vektorováfunkce) Funkci ϕ:r R n,kteráreálnémučíslupřiřzuje n-tici reálných čísel(vektor), nzýváme funkcí vektorovou. Lze ji tké popst po složkáchjko ϕ(t)=(ϕ
VíceMatematika II: Testy
Mtemtik II: Testy Petr Schreiberová Ktedr mtemtiky deskriptivní geometrie VŠB - Technická univerzit Ostrv Mtemtik II - testy 69. Řy 9 - Test Ktedr mtemtiky deskriptivní geometrie, VŠB - Technická univerzit
VíceOBECNÝ URČITÝ INTEGRÁL
OBECNÝ URČITÝ INTEGRÁL Zobecnění Newtonov nebo Riemnnov integrálu se definují různým způsobem dostnou se někdy různé, někdy stejné pojmy. V tomto textu bude postup volen jko zobecnění Newtonov integrálu,
Více56. ročník Matematické olympiády. b 1,2 = 27 ± c 2 25
56. ročník Mtemtické olympiády Úlohy domácí části I. kol ktegorie 1. Njděte všechny dvojice (, ) celých čísel, jež vyhovují rovnici + 7 + 6 + 5 + 4 + = 0. Řešení. Rovnici řešíme jko kvdrtickou s neznámou
Více17 Křivky v rovině a prostoru
17 Křivky v rovině prostoru Definice 17.1 (rovinné křivky souvisejících pojmů). 1. Nechť F (t) [ϕ(t), ψ(t)] je 2-funkce spojitá n, b. Rovinnou křivkou nzveme množinu : {F (t) : t, b } R 2. 2-funkce F [ϕ,
VíceZÁKLADY. y 1 + y 2 dx a. kde y je hledanou funkcí proměnné x.
VARIAČNÍ POČET ZÁKLADY V prxi se čsto hledjí křivky nebo plochy, které minimlizují nebo mximlizují jisté hodnoty. Npř. se hledá nejkrtší spojnice dvou bodů n dné ploše, nebo tvr zvěšeného ln (má minimální
Více2. Funkční řady Studijní text. V předcházející kapitole jsme uvažovali řady, jejichž členy byla reálná čísla. Nyní se budeme zabývat studiem
2. Funkční řd Studijní text 2. Funkční řd V předcházející kpitole jsme uvžovli řd, jejichž člen bl reálná čísl. Nní se budeme zbývt studiem obecnějšího přípdu, kd člen řd tvoří reálné funkce. Definice
VícePřehled základních vzorců pro Matematiku 2 1
Přehled zákldních vzorců pro Mtemtiku 1 1. Limity funkcí definice Vlstní it v bodě = : f() = ɛ > 0, δ > 0 tk, že pro : ( δ, δ), pltí f() ( ɛ, ɛ) Vlstní it v bodě = : f() = ɛ > 0, c > 0 tk, že pro : > c,
VíceIntegrální počet - IV. část (aplikace na určitý vlastní integrál, nevlastní integrál)
Integrální počet - IV. část (plikce n určitý vlstní integrál, nevlstní integrál) Michl Fusek Ústv mtemtiky FEKT VUT, fusekmi@feec.vutbr.cz 9. přednášk z AMA Michl Fusek (fusekmi@feec.vutbr.cz) / 4 Obsh
Vícea i,n+1 Maticový počet základní pojmy Matice je obdélníkové schéma tvaru a 11
Mticový počet zákldní pojmy Mtice je obdélníkové schém tvru 2...... n 2 22. 2n A =, kde ij R ( i =,,m, j =,,n ) m m2. mn ij R se nzývjí prvky mtice o mtici o m řádcích n sloupcích říkáme, že je typu m/n
Více3. ROVNICE A NEROVNICE 85. 3.1. Lineární rovnice 85. 3.2. Kvadratické rovnice 86. 3.3. Rovnice s absolutní hodnotou 88. 3.4. Iracionální rovnice 90
ROVNICE A NEROVNICE 8 Lineární rovnice 8 Kvdrtické rovnice 8 Rovnice s bsolutní hodnotou 88 Ircionální rovnice 90 Eponenciální rovnice 9 Logritmické rovnice 9 7 Goniometrické rovnice 98 8 Nerovnice 0 Úlohy
Více6. a 7. března Úloha 1.1. Vypočtěte obsah obrazce ohraničeného parabolou y = 1 x 2 a osou x.
KMA/MAT Přednášk cvičení č. 4, Určitý integrál 6. 7. březn 17 1 Aplikce určitého integrálu 1.1 Počáteční úvhy o výpočtu obshu geometrických útvrů v rovině Úloh 1.1. Vypočtěte obsh obrzce ohrničeného prbolou
VíceDERIVACE A INTEGRÁLY VE FYZICE
DOPLŇKOVÉ TEXTY BB0 PAVEL SCHAUER INTERNÍ MATERIÁL FAST VUT V BRNĚ DERIVACE A INTEGRÁLY VE FYZICE Obsh Derivce... Definice derivce... Prciální derivce... Derivce vektorů... Výpočt derivcí... 3 Algebrická
VíceM - Příprava na 3. zápočtový test pro třídu 2D
M - Příprv n. ápočtový test pro třídu D Autor: Mgr. Jromír JUŘEK Kopírování jkékoliv dlší využití výukového mteriálu je povoleno poue s uvedením odku n www.jrjurek.c. VARIACE 1 Tento dokument byl kompletně
Víceje jedna z orientací určena jeho parametrizací. Je to ta, pro kterou je počátečním bodem bod ϕ(a). Im k.b.(c ) ( C ) (C ) Obr Obr. 3.5.
10. Komplexní funkce reálné proměnné. Křivky. Je-li f : (, b) C, pk lze funkci f povžovt z dvojici (u, v), kde u = Re f v = Im f. Rozdíl proti vektorovému poli je v tom, že jsou pro komplexní čísl definovány
VíceV předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.
NEWTONŮV INTEGRÁL V předchozích kpitolách byl popsán inverzní operce k derivování Ztím nebylo jsné, k čemu tento nástroj slouží Uvžujme trmvj, která je poháněn elektřinou při brždění vyrábí dynmem elektřinu:
VíceDiferenciální počet. Spojitost funkce
Dierenciální počet Spojitost unkce Co to znmená, že unkce je spojitá? Jký je mtemtický význm tvrzení, že gr unkce je spojitý? Jké jsou vlstnosti unkce v bodě? Jké jsou vlstnosti unkce v intervlu I? Vlstnosti
VíceAž dosud jsme se zabývali většinou reálnými posloupnostmi, tedy zobrazeními s definičním
Limit funkce. Zákldní pojmy Až dosud jsme se zbývli většinou reálnými posloupnostmi, tedy zobrzeními s definičním oborem N. Nyní obrátíme svou pozornost n širší třídu zobrzení. Definice.. Zobrzení f, jehož
VíceII. 5. Aplikace integrálního počtu
494 II Integrální počet funkcí jedné proměnné II 5 Aplikce integrálního počtu Geometrické plikce Určitý integrál S b fx) dx lze geometricky interpretovt jko obsh plochy vymezené grfem funkce f v intervlu
VíceZavedení a vlastnosti reálných čísel PŘIROZENÁ, CELÁ A RACIONÁLNÍ ČÍSLA
Zvedení vlstnosti reálných čísel Reálná čísl jsou zákldním kmenem mtemtické nlýzy. Konstrukce reálných čísel sice není náplní mtemtické nlýzy, le množin reálných čísel R je pro mtemtickou nlýzu zákldním
Více8. cvičení z Matematiky 2
8. cvičení z Mtemtiky 2 11.-1. dubn 2016 8.1 Njděte tři pozitivní čísl jejichž součin je mximální, jejichž součet je roven 100. Zdání příkldu lze interpretovt tké tk, že hledáme mximální objem kvádru,
Více13. Exponenciální a logaritmická funkce
@11 1. Eponenciální logritmická funkce Mocninná funkce je pro r libovolné nenulové reálné číslo dán předpisem f: y = r, r R, >0 Eponent r je konstnt je nezávisle proměnná. Definičním oborem jsou pouze
VíceNEWTONŮV INTEGRÁL. V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.
NEWTONŮV INTEGRÁL V předchozích kpitolách byl popsán inverzní operce k derivování. Ztím nebylo jsné, k čemu tento nástroj slouží. Uvžujme trmvj, která je poháněn elektřinou při brždění vyrábí dynmem elektřinu:
VíceObsah rovinného obrazce
Osh rovinného orzce Nejjednodušší plikcí určitého integrálu je výpočet oshu rovinného orzce. Zčneme větou. Vět : Je-li funkce f spojitá nezáporná n n orázku níže roven f ( ) d. ;, je osh rovinného orzce
Více2.1 - ( ) ( ) (020201) [ ] [ ]
- FUNKCE A ROVNICE Následující zákldní znlosti je nezbytně nutné umět od okmžiku probrání ž do konce studi mtemtiky n gymnáziu. Vyždováno bude porozumění schopnost plikovt ne pouze mechnicky zopkovt. Některé
VíceANALYTICKÁ GEOMETRIE V PROSTORU
ANALYTICKÁ GEOMETRIE V PROSTORU 3. přednášk Vektorová lger Prvoúhlé souřdnice odu v prostoru Poloh odu v prostoru je vzhledem ke třem osám k soě kolmým určen třemi souřdnicemi, které tvoří uspořádnou trojici
VíceZáklady teorie matic
Zákldy teorie mtic 1. Pojem mtice nd číselným tělesem In: Otkr Borůvk (uthor): Zákldy teorie mtic. (Czech). Prh: Acdemi, 1971. pp. 9--12. Persistent URL: http://dml.cz/dmlcz/401328 Terms of use: Akdemie
VíceVětu o spojitosti a jejich užití
0..7 Větu o spojitosti jejich užití Předpokldy: 706, 78, 006 Pedgogická poznámk: Při proírání této hodiny je tře mít n pměti, že všechny věty, které studentům sdělujete z jejich pohledu neuvěřitelně složitě
VíceMETODICKÉ LISTY Z MATEMATIKY pro gymnázia a základní vzdělávání
METODICKÉ LISTY Z MATEMATIKY pro gymnázi zákldní vzdělávání Jroslv Švrček kolektiv Rámcový vzdělávcí progrm pro zákldní vzdělávání Vzdělávcí oblst: Mtemtik její plikce Temtický okruh: Nestndrdní plikční
Více2.3. DETERMINANTY MATIC
2.3. DETERMINANTY MATIC V této kpitole se dozvíte: definici determinntu čtvercové mtice; co je to subdeterminnt nebo-li minor; zákldní vlstnosti determinntů, používné v mnoh prktických úlohách; výpočetní
VíceKapitola 10. Numerické integrování
4.5.o7 Kpitol 0. Numerické integrování Numerický výpočet odnoty určitéo integrálu Formulce: Mějme n ; bi dánu integrovtelnou funkci f = f(x). Nším cílem je určit přibližnou odnotu určitéo integrálu I(f)
VíceSeznámíte se s další aplikací určitého integrálu výpočtem objemu rotačního tělesa.
.. Ojem rotčního těles Cíle Seznámíte se s dlší plikcí určitého integrálu výpočtem ojemu rotčního těles. Předpokládné znlosti Předpokládáme, že jste si prostudovli zvedení pojmu určitý integrál (kpitol.).
Vícem n. Matice typu m n má
MATE ZS KONZ B Mtice, hodnost mtice, Gussův tvr Mtice uspořádné schém reálných čísel: m m n n mn Toto schém se nzývá mtice typu m řádků n sloupců. m n. Mtice typu m n má Oznčujeme ji A, B,někdy používáme
VíceINTEGRACE KOMPLEXNÍ FUNKCE KŘIVKOVÝ INTEGRÁL
INTEGRAE KOMPLEXNÍ FUNKE KŘIVKOVÝ INTEGRÁL N konci kpitoly o derivci je uveden souvislost existence derivce s potenciálním polem. Existuje dlší chrkterizce potenciálného pole, která nebyl v kpitole o derivci
VíceKřivkový integrál prvního druhu verze 1.0
Křivkový integrál prvního druhu verze. Úvod Následující text popisuje výpočet křivkového integrálu prvního druhu. Měl by sloužit především studentům předmětu MATEMAT k příprvě n zkoušku. Mohou se v něm
Více2.2.9 Grafické řešení rovnic a nerovnic
..9 Grfické řešení rovnic nerovnic Předpokldy: 0, 06 Př. : Řeš početně i grficky rovnici x + = x. Početně: Už umíme. x + = x x = x = K = { } Grficky: Kždá ze strn rovnice je výrzem pro lineární funkci
Více3 Algebraické výrazy. 3.1 Mnohočleny Mnohočleny jsou zvláštním případem výrazů. Mnohočlen (polynom) proměnné je výraz tvaru
Algerické výrz V knize přírod může číst jen ten, kdo zná jzk, ve kterém je npsán. Jejím jzkem je mtemtik jejím písmem jsou mtemtické vzorce. (Glileo Glilei) Algerickým výrzem rozumíme zápis, ve kterém
VíceHyperbola, jejíž střed S je totožný s počátkem soustavy souřadnic a jejíž hlavní osa je totožná
Hyperol Hyperol je množin odů, které mjí tu vlstnost, že solutní hodnot rozdílu jejich vzdáleností od dvou dných různých odů E, F je rovn kldné konstntě. Zkráceně: Hyperol = {X ; EX FX = }; kde symolem
Více(1) přičemž všechny veličiny uvažujeme absolutně. Její úpravou získáme vztah + =, (2) Přímé zvětšení Z je dáno vztahem Z = =, a a
Úloh č. 3 Měření ohniskové vzdálenosti tenkých čoček 1) Pomůcky: optická lvice, předmět s průhledným milimetrovým měřítkem, milimetrové měřítko, stínítko, tenká spojk, tenká rozptylk, zdroj světl. ) Teorie:
VíceP2 Číselné soustavy, jejich převody a operace v čís. soustavách
P Číselné soustvy, jejich převody operce v čís. soustvách. Zobrzení čísl v libovolné číselné soustvě Lidé využívjí ve svém životě pro zápis čísel desítkovou soustvu. V této soustvě máme pro zápis čísel
Více( a) Okolí bodu
0..5 Okolí bodu Předpokldy: 40 Pedgogická poznámk: Hodin zjevně překrčuje možnosti většiny studentů v 45 minutách. Myslím, že nemá cenu přethovt do dlší hodiny, příkldy s redukovnými okolími nejsou nutné,
Více1. Pokyny pro vypracování
1. Pokyny pro vyprcování Zvolený příkld z druhé kpitoly vyprcujte písemně (nejlépe vysázejte pomocí LATEXu) dodejte osobně po předchozí domluvě milem n krbek@physics.muni.cz. Dále si vyberte tři z jednodušších
VícePřednáška 9: Limita a spojitost
4 / XI /, 5: Přednášk 9: Limit spojitost V minulých přednáškách jsme podrobněji prozkoumli důležitý pojem funkce. Při řešení konkrétních problémů se nše znlosti (npř. nměřená dt) zpisují jko funkční hodnoty
Víceintegrovat. Obecně lze ale říct, že pokud existuje určitý integrál funkce podle různých definic, má pro všechny takové definice stejnou hodnotu.
Přednášk 1 Určitý integrál V této přednášce se budeme zbývt určitým integrálem. Eistuje několik definic určitého integrálu funkce jedné reálné proměnné. Jednotlivé integrály se liší v tom, jké funkce lze
VíceMatematické metody v kartografii
Mtemtické metody v krtogrfii. Přednášk Referenční elipsoid zákldní vzthy. Poloměry křivosti. Délky poledníkového rovnoběžkového oblouku. 1. Zákldní vzthy n rotčním elipoidu Rotční elipsoid dán následujícími
Vícevás seznámí s učivem, které v dané kapitole poznáte a které byste po jejím prostudování měli umět.
POKYNY KE STUDIU Pokyny ke studiu V úvodu si vysvětlíme jednotnou pevnou strukturu kždé kpitoly tetu, která by vám měl pomoci k rychlejší orientci při studiu Pro zvýrznění jednotlivých částí tetu jsou
VíceLineární nerovnice a jejich soustavy
teorie řešené úlohy cvičení tipy k mturitě výsledky Lineární nerovnice jejich soustvy Víš, že pojem nerovnice není opkem pojmu rovnice? lineární rovnice má většinou jediné řešení, kdežto lineární nerovnice
VícePři výpočtu obsahu takto omezených rovinných oblastí mohou nastat následující základní případy : , osou x a přímkami. spojitá na intervalu
Geometrické plikce určitého integrálu Osh rovinné olsti Je-li ploch ohrničen křivkou f () osou Při výpočtu oshu tkto omezených rovinných olstí mohou nstt následující zákldní přípd : Nechť funkce f () je
VíceOhýbaný nosník - napětí
Pružnost pevnost BD0 Ohýbný nosník - npětí Teorie Prostý ohb, rovinný ohb Při prostém ohbu je průřez nmáhán ohbovým momentem otáčejícím kolem jedné z hlvních os setrvčnosti průřezu, obvkle os. oment se
Více10 Určitý integrál Riemannův integrál. Definice. Konečnou posloupnost {x j } n j=0 nazýváme dělením intervalu [a,b], jestliže platí
10 Určitý integrál 10.1 Riemnnův integrál Definice. Konečnou posloupnost {x j } n j=0 nzýváme dělením intervlu [,b], jestliže pltí = x 0 < x 1 < < x n = b. Body x 0,...,x n nzýváme dělícími body. Normou
VíceSprávné řešení písemné zkoušky z matematiky- varianta A Přijímací řízení do NMgr. studia učitelských oborů 2010
právné řešení písemné koušky mtemtiky- vrint A Přijímcí říení do NMgr. studi učitelských oborů Příkld. Vyšetřete průběh funkce v jejím mimálním definičním oboru nčrtněte její grf y Určete pritu (sudá/lichá),
VíceDefinice limit I
08 Definice limit I Předpokld: 006 Pedgogická poznámk: N úvod je třeb upozornit, že tto hodin je ze strn studentů snd nejvíce sbotovnou látkou z celé studium (podle rekcí 4B009) Jejich ochot brát n vědomí
VíceDigitální učební materiál
Digitální učení mteriál Číslo projektu CZ.1.07/1.5.00/34.080 Název projektu Zkvlitnění výuky prostřednictvím ICT Číslo název šlony klíčové ktivity III/ Inovce zkvlitnění výuky prostřednictvím ICT Příjemce
VíceFAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ MATEMATIKA 1
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ MATEMATIKA 1 Grnt předmětu: Prof. RNDr. Josef DIBLÍK, DrSc. (do 31.8.00) Prof. RNDr. Jn CHVALINA, DrSc. (od 1.9.00) Autoři
Více3. Kvadratické rovnice
CZ..07/..08/0.0009. Kvdrtické rovnice se v tetice oznčuje lgebrická rovnice druhého stupně, tzn. rovnice o jedné neznáé, ve které neznáá vystupuje ve druhé ocnině (²). V zákldní tvru vypdá následovně:
VíceÚlohy krajského kola kategorie A
67. ročník mtemtické olympiády Úlohy krjského kol ktegorie A 1. Pvel střídvě vpisuje křížky kolečk do políček tbulky (zčíná křížkem). Když je tbulk celá vyplněná, výsledné skóre spočítá jko rozdíl X O,
VíceDefinice. Nechť k 0 celé, a < b R. Definujeme. x < 1. ϕ(x) 0 v R. Lemma [Slabá formulace diferenciální rovnice.] x 2 1
9. Vriční počet. Definice. Nechť k 0 celé, < b R. Definujeme C k ([, b]) = { ỹ [,b] : ỹ C k (R) } ; C 0 ([, b]) = { y C ([, b]) : y() = y(b) = 0 }. Důležitá konstrukce. Shlzovcí funkce (molifiér, bump
VíceKombinatorická minimalizace
Kombinatorická minimalizace Cílem je nalézt globální minimum ve velké diskrétní množině, kde může být mnoho lokálních minim. Úloha obchodního cestujícího Cílem je najít nejkratší cestu, která spojuje všechny
VíceJsou to rovnice, které obsahují neznámou nebo výraz s neznámou jako argument logaritmické funkce.
Logritmické rovnice Jsou to rovnice, které oshují neznámou neo výrz s neznámou jko rgument ritmické funkce. Zákldní rovnice, 0 řešíme pomocí vzthu. Složitější uprvit n f g potom f g (protože ritmická funkce
VíceMATEMATIKA I. prof. RNDr. Gejza Dohnal, CSc. IV. Základy integrálního počtu
MATEMATIKA I. prof. RNDr. Gejz Dohnl, CSc. IV. ákldy integrálního počtu 1 Mtemtik I. I. Lineární lgebr II. ákldy mtemtické nlýzy III. Diferenciální počet IV. Integrální počet 2 Mtemtik I. IV. Integrální
VícePříklad 22 : Kapacita a rozložení intenzity elektrického pole v deskovém kondenzátoru s jednoduchým dielektrikem
Příkld 22 : Kpcit rozložení intenzity elektrického pole v deskovém kondenzátoru s jednoduchým dielektrikem Předpokládné znlosti: Elektrické pole mezi dvěm nbitými rovinmi Příkld 2 Kpcit kondenzátoru je
VíceA DIRACOVA DISTRIBUCE 1. δ(x) dx = 1, δ(x) = 0 pro x 0. (1) Graficky znázorňujeme Diracovu distribuci šipkou jednotkové velikosti (viz obr. 1).
A DIRACOVA DISTRIBUCE A Dircov distribuce A Definice Dircovy distribuce Dircovu distribuci δx) lze zvést třemi ekvivlentními způsoby ) Dirc [] ji zvedl vzthy δx) dx, δx) pro x ) Grficky znázorňujeme Dircovu
VíceNMAF061, ZS Písemná část zkoušky 25. leden 2018
Jednotlivé kroky při výpočtech stručně, le co nejpřesněji odůvodněte. Pokud používáte nějké tvrzení, nezpomeňte ověřit splnění předpokldů. Jméno příjmení: Skupin: Příkld 3 4 5 6 Celkem bodů Bodů 6 6 4
Více( t) ( t) ( t) Nerovnice pro polorovinu. Předpoklady: 7306
7.3.8 Nerovnice pro polorovinu Předpokldy: 736 Pedgogická poznámk: Příkld 1 není pro dlší průěh hodiny důležitý, má smysl pouze jko opkování zplnění čsu při zpisování do třídnice. Nemá smysl kvůli němu
VíceNMAF061, ZS Písemná část zkoušky 16. leden 2018
Jednotlivé kroky při výpočtech stručně, le co nejpřesněji odůvodněte. Pokud používáte nějké tvrzení, nezpomeňte ověřit splnění předpokldů. Jméno příjmení: Skupin: Příkld 1 3 4 5 6 Celkem bodů Bodů 7 6
VíceInterpolace, ortogonální polynomy, Gaussova kvadratura
Interpolace, ortogonální polynomy, Gaussova kvadratura Petr Tichý 20. listopadu 2013 1 Úloha Lagrangeovy interpolace Dán omezený uzavřený interval [a, b] a v něm n + 1 různých bodů x 0, x 1,..., x n. Nechť
VíceFI: JARO 2017 Verze: 9. února 2017
FI: JARO 7 Verze: 9. únor 7 Přednášky k předmětu MB Autor: Romn Šimon Hilscher Přednášející: Petr Hsil Obsh Přehled přednášek podle strny ukončení iii. Polynomy interpolce.. Interpolce.. Lgrngeův interpolční
VíceLogaritmická funkce teorie
Výukový mteriál pro předmět: MATEMATIKA reg. č. projektu CZ..07/..0/0.0007 Logritmická funkce teorie Eponenciální funkce je funkce prostá, proto k ní eistuje inverzní funkce. Tto inverzní funkce se nzývá
VíceFunkce jedné proměnné
Funkce jedné proměnné Lineární funkce f: y = kx + q, D f = R, H f = R, grf je přímk množin odů [x, y], x D f, y = f(x) q úsek n ose y, tj. od [0, q], k směrnice, k = tn φ = 2 2 1 1, A[ 1, 2 ], B[ 1, 2
VíceKVADRATICKÁ FUNKCE (vlastnosti, grafy)
KVADRATICKÁ FUNKCE (vlstnosti, gr) Teorie Kvdrtikou unkí se nzývá kždá unke dná předpisem ; R,, R; D( ) je proměnná z příslušného deiničního ooru unke (nejčstěji množin R),, jsou koeiient kvdrtiké unke,
VíceMENDELOVA UNIVERZITA V BRNĚ MATEMATIKA K PŘIJÍMACÍM ZKOUŠKÁM NA PEF
MENDELOVA UNIVERZITA V BRNĚ MATEMATIKA K PŘIJÍMACÍM ZKOUŠKÁM NA PEF RNDr. Petr Rádl RNDr. Bohumil Černá RNDr. Ludmil Strá 0 Petr Rádl, 0 ISBN 97-0-77-9- OBSAH Předmluv... Poždvky k přijímcí zkoušce z mtemtiky..
VíceVěta (princip vnořených intervalů). Jestliže pro uzavřené intervaly I n (n N) platí I 1 I 2 I 3, pak
Reálná čísl N přirozená čísl: {,, 3, } Z celá čísl: {, ±, ±, ±3, } Q rcionální čísl: { b : Z, b N} R reálná čísl C komplení čísl: { + jy :, y R}, j R \ Q ircionální čísl, π, e, ) Tvrzení Mezi kždými dvěm
VíceKřivkový integrál funkce
Kpitol 6 Křivkový integrál funkce efinice způsob výpočtu Hlvním motivem pro definici určitého integrálu funkce jedné proměnné byl úloh stnovit obsh oblsti omezené grfem dné funkce intervlem n ose x. Řd
Více13. Soustava lineárních rovnic a matice
@9. Soustv lineárních rovnic mtice Definice: Mtice je tbulk reálných čísel. U mtice rozlišujeme řádky (i=,..n), sloupce (j=,..m) říkáme, že mtice je typu (n x m). Oznčíme-li mtici písmenem A, její prvky
Více