Numerické metody – studijní opora

slu.cz
  • No tags were found...

Numerické metody – studijní opora

Matematický ústav Slezské univerzity v OpavěNUMERICKÉ METODYRNDr. Karel Hasík, Ph.D.


Obsah2 ÚVOD DO NUMERICKÉ MATEMATIKY 72.1 Rozdělení chyb . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Zaokrouhlovací chyby . . . . . . . . . . . . . . . . . . . . . . . 92.3 Celková chyba výpočtu . . . . . . . . . . . . . . . . . . . . . . . 122.4 Chyba součtu, rozdílu, součinu a podílu . . . . . . . . . . . . . . 142.5 Dobře a špatně podmíněné úlohy . . . . . . . . . . . . . . . . . . 162.6 Stabilní algoritmy . . . . . . . . . . . . . . . . . . . . . . . . . . 172.7 Kontrolní otázky a cvičení . . . . . . . . . . . . . . . . . . . . . 182.8 Výsledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 INTERPOLACE 203.1 Základní tvary interpolačního polynomu . . . . . . . . . . . . . . 233.1.1 Lagrangeův interpolační polynom . . . . . . . . . . . . . 233.1.2 Newtonův interpolační polynom . . . . . . . . . . . . . . 243.2 Chyba polynomiální interpolace . . . . . . . . . . . . . . . . . . 283.3 Interpolace na ekvidistantní síti uzlů . . . . . . . . . . . . . . . . 313.4 Hermitův interpolační polynom . . . . . . . . . . . . . . . . . . . 333.5 Splajnová interpolace . . . . . . . . . . . . . . . . . . . . . . . . 373.6 Kontrolní otázky a cvičení . . . . . . . . . . . . . . . . . . . . . 443.7 Výsledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 METODA NEJMENŠÍCH ČTVERCŮ 474.1 Kontrolní otázky a cvičení . . . . . . . . . . . . . . . . . . . . . 534.2 Výsledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 NUMERICKÉ ŘEŠENÍ NELINEÁRNÍCH ROVNIC 555.1 Metoda prosté iterace . . . . . . . . . . . . . . . . . . . . . . . . 585.2 Newtonova metoda . . . . . . . . . . . . . . . . . . . . . . . . . 605.3 Metoda sečen a regula falsi . . . . . . . . . . . . . . . . . . . . . 645.4 Sturmova posloupnost . . . . . . . . . . . . . . . . . . . . . . . . 675.5 Kontrolní otázky a cvičení . . . . . . . . . . . . . . . . . . . . . 715.6 Výsledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726 NUMERICKÉ ŘEŠENÍ SYSTÉMŮ LINEÁRNÍCH ROVNIC 746.1 Metoda LU -rozkladu . . . . . . . . . . . . . . . . . . . . . . . . 766.2 Gaussova eliminační metoda . . . . . . . . . . . . . . . . . . . . 796.3 Iterační metody . . . . . . . . . . . . . . . . . . . . . . . . . . . 826.3.1 Maticová norma . . . . . . . . . . . . . . . . . . . . . . 823


6.3.2 Jacobiova a Gaussova-Seidelova metoda . . . . . . . . . . 856.4 Kontrolní otázky a cvičení . . . . . . . . . . . . . . . . . . . . . 906.5 Výsledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927 NUMERICKÉ INTEGROVÁNÍ 937.1 Newtonovy-Cotesovy vzorce uzavřeného typu . . . . . . . . . . 947.2 Obdélníková metoda . . . . . . . . . . . . . . . . . . . . . . . . 967.3 Lichoběžníková metoda . . . . . . . . . . . . . . . . . . . . . . . 977.4 Simpsonova metoda . . . . . . . . . . . . . . . . . . . . . . . . . 1007.5 Kontrolní otázky a cvičení . . . . . . . . . . . . . . . . . . . . . 1037.6 Výsledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058 NUMERICKÉ METODY PRO ŘEŠENÍ OBYČEJNÝCH DIFEREN-CIÁLNÍCH ROVNIC 1068.1 Cauchyho úloha . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068.2 Princip numerických metod pro řešení ODR . . . . . . . . . . . . 1078.3 Eulerova metoda . . . . . . . . . . . . . . . . . . . . . . . . . . 1088.4 Modifikace Eulerovy metody . . . . . . . . . . . . . . . . . . . . 1108.5 Metody typu Runge-Kutta . . . . . . . . . . . . . . . . . . . . . 1118.6 Picardova metoda postupných aproximací . . . . . . . . . . . . . 1138.7 Kontrolní otázky a cvičení . . . . . . . . . . . . . . . . . . . . . 1158.8 Výsledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164


PŘEDMLUVATento text představuje studijní oporu v rámci studia všech akreditovaných studijníchprogramů v bakalářském a magisterském studiu na Matematickém ústavuSlezské univerzity v Opavě. Předpokládá se, že v dalších letech bude rovněž sloužitpro účely kombinovaného a distančního studia matematických oborů, jejichžakreditace se připravuje.Náplň textu odpovídá potřebám výuky předmětu Numerické metody, kterýstandardně běží ve třetím semestru studia v rozsahu dvou hodin týdně. V prezenčnímstudiu je přednáška doplněna ještě dvouhodinovým cvičením, kde se probranálátka aplikuje na konkrétní číselné příklady, které se řeší (často pomocí počítače)až k požadovanému výsledku.Předpokladem pro úspěšné zvládnutí tohoto předmětu je absolvování základníchkurzů z matematické analýzy a lineární algebry, které tvoří obecný základ propochopení metod a postupů zařazených do této studijní opory. Jedinou výjimku bysnad mohla tvořit kapitola týkající numerického přístupu k řešení diferenciálníchrovnic, se kterými se může čtenář setkat až později během studia.Text je věnován základním numerickým metodám a protože odpovídající algoritmypro realizaci těchto metod jsou poměrně jednoduché, nejsou zde uvedeny.Jejich konstrukci je věnován dostatečný prostor ve cvičeních.Závěrem bych rád poděkoval všem, kteří mi pomohli při práci na přípravě tétostudijní opory. Především děkuji RNDr. Lence Kozákové, Ph.D. za možnost čerpatpři psaní textu z materiálů, které při výuce tohoto předmětu využívala. Dále děkujidoc. RNDr. Kristíně Smítalové, CSc. za pečlivé přečtení a připomínky, jimižpřispěla ke zkvalitnění obsahu textu.5


STRUČNÝ NÁHLED STUDIJNÍ OPORYTento studijní text si nekladl za cíl podat vyčepávající přehled co největšího počtupoužívaných metod. Vždyt’ některá z témat, která jsou v textu pouze nastíněna,jako třeba splajnová interpolace nebo numerické metody pro řešení diferenciálníchrovnic, by sama o sobě vystačila na jednosemestrální kurz. Snažili jsme se spíšeuvést několik typických přístupů používaných při řešení úloh v každé oblasti.Při výkladu problematiky jsme usilovali především o srozumitelnost zaváděnýchpojmů a ilustraci uváděných metod na příkladech. Tento přístup jsme se snažiliudržet i za cenu toho, že v řadě případů jsme byli nuceni odvolat se na jinouliteraturu, protože snaha o formálně dokonalé zdůvodnění všech faktů by byla vtomto případě kontraproduktivní.V úvodní kapitole se zabýváme druhy chyb, které se mohou při řešení úloh numerickýmiprostředky vyskytnout. Je zde poukázáno na to, jak mohou tyto chybyovlivnit, či případně zcela znehodnotit obdržený výsledek.Další dvě kapitoly jsou pak věnovány problému aproximace. V první z nichse zabýváme tzv. interpolační aproximací a uvádíme způsob konstrukce některýchtypů funkcí, jejichž graf prochází danou množinou bodů. Druhá kapitola týkající setéto problematiky pojednává o metodě nejmenších čtverců, která patří mezi nejpoužívanějšíaproximační metody, při kterých neusilujeme o to, aby sestrojená funkceprocházela danými daty.Čtvrtá kapitola je zaměřena na řešení nelineárních rovnic jedné proměnné.Kromě obecných metod, mezi které patří Newtonova metoda a metoda sečen, jezde větší pozornost věnována hledání kořenů polynomů pomocí sestrojení tzv.Sturmovy posloupnosti.V další kapitole se seznámíte s některými metodami sloužícími k řešení systémůlineárních rovnic. Tyto metody jsou zde rozděleny do dvou skupin na metodypřímé a iterační. Z přímých metod se zde věnujeme metodě LU-rozkladu aGaussově eliminační metodě. Z iteračních metod jsou zde popsány Jacobiova aGaussova-Seidelova metoda.Předposlední kapitola je věnována numerickému integrování. Uvádíme v nízákladní Newtonovy-Cotesovy vzorce pro výpočet integrálu, mezi které patří obdélníkové,lichoběžníkové a Simpsonovo pravidlo.Závěrečná kapitola této studijní opory se týká numerického řešení obyčejnýchdiferenciálních rovnic. Z řady metod, které patří do této problematiky, uvádímeEulerovu metodu a Rungovu-Kuttovu metodu.Ke každé z kapitol je připojen soubor otázek a cvičení umožňující čtenářůmsamostatně prověřit pochopení probrané látky.6


2 ÚVOD DO NUMERICKÉ MATEMATIKY... co by Vám měla přinést tato kapitola:Při zkoumání reálných problémů a jejich následném řešení pomocí matematickýchprostředků většinou zjištujeme, že nejsme schopni řešit tyto problémy v jejich původnímrozsahu. Už při sestavování matematického modelu jsme nuceni původníproblém zjednodušovat a brát v úvahu vliv pouze některých faktorů, protože jinakbychom obdrželi model, jehož analýza by byla neúměrně složitá. Dalších nepřesnostíse dopouštíme při volbě metody, kterou chceme použít k řešení sestavenéhomodelu. Jestliže poté dospějeme až ke konkrétnímu výpočtu, přesněji řečeno k realizacipříslušného algoritmu, zjišt’ujeme, že vstupní údaje bývají často zatíženy určitouchybou. Kromě toho je v průběhu výpočtu nutné zaokrouhlovat mezivýsledky,což je rovněž zdrojem nepřesností.Souhrn všech výše uvedených faktorů způsobí pochopitelně rozdíl mezi obdrženýmvýsledkem a skutečným řešením původního problému. Takový výsledek mápro nás cenu jen tehdy, jestliže dovedeme odhadnout, jak velká je nepřesnost, kteréjsme se dopustili. Náplní této kapitoly je proto poukázat na obecná úskalí, kteráobnáší proces řešení úloh numerickou cestou. Větší pozornost bude přitom věnovánazaokrouhlovacín chybám a dále pak dobré podmíněnosti úloh a stabilitěalgoritmů. Pod posledními dvěma pojmy si může čtenář zatím představit jakousi"záruku" toho, že po ukončení výpočtu obdržíme dostatečně přesný výsledek.2.1 Rozdělení chybJak již bylo zmíněno v úvodu, při řešení daného problému provádíme jistá zjednodušení,a proto jsou chyby (nepřesnosti) nedílnou součástí řešení daného problému.Chyby můžeme rozdělit podle toho, v jaké oblasti vznikají.• Chyby matematického modeluPři snaze o popis nějakého reálného jevu vyvstává velmi často nutnost zanedbatněkteré skutečnosti, což vede k rozdílu mezi vytvořeným modelema reálným stavem. Chyby tohoto druhu nazýváme chybami matematickéhomodelu.Příklad: Kalendář jako model tropického roku– starořímský kalendář měl dvanáct měsíců a jeho celková délka byla355 dnů. Chyba tohoto kalendáře činila tedy 10 dnů. Pro vyrovnání tohotorozdílu se vkládal na konec měsíce Februaria měsíc Mercedoniuso 28-29 dnech. Pro vkládání Mercedonia neexistovalo žádné pravidloa jeho vložení záviselo na rozhodnutí kněží.7


– juliánský kalendář byl zaveden Juliem Caesarem na základě výpočtualexandrijských astronomů, kteří stanovili délku roku na 365,25 dne.Kalendář měl dvanáct měsíců o celkové délce 365 dnů s tím, že každýčtvrtý rok bude mít o den více. Chyba tohoto kalendáře (jednalo se ozpoždění) činila jeden den za 128 let.– gregoriánský kalendář byl zaveden papežem Řehořem XIII. v roce1582, kdy nesoulad kalendáře s astronomickou skutečností byl již výrazněpatrný. Délka roku při přesnějším vyjádření činí 365,2422 dne,což je asi o 11 minut a 14 sekund méně než předpokládá juliánskýkalendář. Při úpravě kalendáře bylo vynecháno 10 dnů a stanoveno,že poslední rok století bude přestupný jen tehdy, když bude dělitelnýčíslem 400. Gregoriánský kalendář se předbíhá o 26 sekund ročně apokud to čtenáře zajímá, je určeno, že rok 4840 n.l. nebude přestupný,přestože by podle pravidel měl být.• Chyby vstupních údajůVstupní data jsou velmi často získávána pomocí různých měření, která jsouzatížena náhodnými chybami. Známe-li jejich velikost můžeme je brát přidalších výpočtech v úvahu.Příklad: Zamítnutí heliocentrické hypotézyV polovině 2. století př.n.l. se významný řecký astronom Hipparchos rozhodlprověřit heliocentrický model. Vyšel ze správného předpokladu, že pokudZemě obíhá kolem Slunce, pak se musí v průběhu roku měnit polohahvězd na nočním nebi (budou obíhat po elipsách). K ověření použil metoduparalaxy, ale žádný pohyb hvězd nenaměřil. Nelze jej totiž zaznamenat pouhýmokem. Pro takové pozorování by hvězdy musely být k Zemi 200x blíženež je tomu ve skutečnosti. Chybný odhad vzdálenosti hvězd od Země lzepovažovat za chybu vstupních údajů (je ovšem obrovská). Tato měření vedlak zamítnutí heliocentrické hypotézy na 1700 let.• Chyby numerické metodyProblémy z praxe lze často formulovat jako spojité úlohy. Jestliže tuto úlohuaproximujeme numerickou úlohou, která je diskrétní, vznikají chyby nazývanéchybami metody. Např. při výpočtu určitého integrálu∫ 1−1(−x 2 + 1)dxnahradíme obsah plochy pod grafem funkce −x 2 + 1 součtem obsahu předemdaného počtu obdélníků (viz. obrázek 2.1). Bez znalosti chyby metodyje obdržený výsledek prakticky bezcenný. Je proto velmi důležité u každé8


metody nalézt odhad její chyby. Nalezení tohoto odhadu je bohužel velmičasto mnohem náročnější než samotné řešení numerické úlohy.y1- 11xObr. 2.1• Zaokrouhlovací chybyPři výpočtech pracujeme s čísly zaokrouhlenými na určitý počet desetinnýchmíst. Tyto chyby se mohou při výpočtu kumulovat nebo naopak navzájem rušit.Příklad: Chceme-li v průběhu numerického výpočtu pracovat např. s číslemΠ, jsme nuceni jej zaokrouhlit. V roce 2000 př.n.l. používali Babylóňanéhodnotu 25/8=3,125. Egypt’ané v té době používali hodnotu 3,16045. Archimedesstanovil pro jeho hodnotu rozmezí3 + 1071 < Π < 3 + 1070 .V roce 1615 nizozemský matematik Ludolf van Ceulen vyčíslil jeho hodnotuna 35 desetinných míst. Jeho početní výkon zaujal matematickou veřejnostnatolik, že číslo Π nese jeho jméno.2.2 Zaokrouhlovací chybyPři numerických výpočtech (kalkulačka, počítače) se velmi často pracuje s aproximací˜x reálného čísla x. Proces nahrazení čísla x jeho aproximací nazývámezaokrouhlování. Při zaokrouhlování se dopouštíme zaokrouhlovacích chyb. Následujícídefinice udává dva způsoby, jak stanovit chybu aproximace.9


Definice 2.1. Necht’ x je přesná hodnota a ˜x její aproximace.Absolutní chybou (nepřesností) aproximace ˜x nazýváme rozdíl x − ˜x. Každé nezápornéčíslo ε(˜x) takové, že|x − ˜x| ≤ ε(˜x), (2.1)nazýváme odhadem absolutní chyby.Relativní chybou aproximace ˜x nazýváme podíl x−˜x˜x. Každé nezáporné číslo δ(˜x),pro které platíx − ˜x∣ x ∣ ≤ δ(˜x), (2.2)nazýváme odhadem relativní chyby.Relativní chyba je nezávislá na volbě jednotky měřené veličiny x, což je jedenz důvodů, proč ji bereme za "míru přesnosti". Vztah (2.2) můžeme vyjádřit jakopodílJe zřejmé, žeδ = ε(˜x)|x| .0 ≤ δ < 1,proto se zejména v praxi relativní chyba vyjadřuje ve tvaruδ = 100ε(˜x) %.|x|Následující příklad poukazuje na významnost relativní chyby.Příklad 2.2. Necht’ x 1 = 0,32, x 2 = 0,08 jsou přesné hodnoty a ˜x 1 = 0,32, ˜x 2 =0,08 jsou jejich aproximace. Určete absolutní a relativní chybu těchto aproximací.Jsou aproximace ˜x 1 , ˜x 2 stejně hodnotná čísla?Řešení. Absolutní chyby aproximací jsoux 1 − ˜x 1 = 0,02 a x 2 − ˜x 2 = −0,02a mají tedy, až na znaménko, stejnou velikost. Relativní chyby aproximací jsou∣ ∣ x − ˜x 1∣∣∣∣ = 0,0¯6,x − ˜x 2∣∣∣x ∣ = −0,2.1x 210


Rozdíl v relativních chybách ukazuje, že aproximace ˜x 1 , ˜x 2 nejsou stejně hodnotné.Tak by tomu bylo pouze v případě, že by tyto hodnoty byly konečným výstupemnějakého výpočtu, protože jejich absolutní chyba je stejná. Jestliže ale budehodnot ˜x 1 , ˜x 2 dále použito jako dělitelů, potom se nejedná o stejně hodnotné aproximace,protože absolutní chyba čísla 1/x 1 je několikanásobně menší než absolutníchyba čísla 1/x 2 .Z hlediska způsobu zaokrouhlování rozlišujeme dva druhy zaokrouhlování:(i) "rounding", což je aritmetické zaokrouhlování,(ii) "chopping", tzv. odseknutí.Pod aritmetickým zaokrouhlováním máme na mysli následující pravidla, která jsoučtenáři pravděpodobně již známa ze základní školy:• pokud je první zanedbaná číslice menší než 5, ponechané číslice neměníme• pokud je první zanedbaná číslice větší než 5, přičteme k první ponechanéčíslici jedničku• pokud je první zanedbaná číslice rovna 5 a následuje po ní alespoň jednanenulová číslice, přičteme k první ponechané číslici jedničku• pokud je první zanedbaná číslice rovna 5 a po ní následují samé nuly, ponechanoučíslici nezměníme pokud je sudá a přičteme k ní jedničku pokud jelicháPři odseknutí jednoduše ponechané číslice neměníme a zanedbáme všechny číslicenásledující po té číslici, kterou jsme se rozhodli ponechat jako poslední.Příklad 2.3. Zaokrouhlete oběma způsoby číslo 3,5489635 na 3 desetinná místa.Řešení.(i) "rounding": 3,5489635 . = 3,549,(ii) "chopping": 3,5489635 . = 3,548.Pokud nebude v dalším textu uvedeno jinak, budeme používat vždy aritmetickézaokrouhlování. Při používání těchto pravidel absolutní chyba nepřesáhne nikdy11


polovinu jednotky řádu poslední ponechané číslice. To nás vede k následující definiciDefinice 2.4.tj.Mějme dáno číslo x v desítkové soustavě v tzv. normovaném tvaru,x = 0.d 1 d 2 ...d k d k+1 ... × 10 n .Říkáme, že aproximace ˜x čísla x má platnou j-tou číslici, jestliže platí|x − ˜x| ≤ 0,5 · 10 n−j . (2.3)Dále říkáme, že číslo x je správně zaokrouhleno, je-li každá číslice jeho aproximaceplatná.Příklad 2.5. Určete počet platných míst aproximace ˜x = 3,1415 čísla π.Řešení. Dosadíme li do vztahu (2.3), dostaneme|π − 3,1415| = |π − 0,31415 × 10 1 | = 0,000092653... ≤ 0,5 × 10 −3 .Protože n = 1 a n − j = 1 − j = −3, dostáváme, že počet platných míst je j = 4.To ovšem znamená, že číslo π není správně zaokrouhleno na uvedený počet míst.2.3 Celková chyba výpočtuPředpokládejme, že hodnotaY = F(x 1 ,...,x n )je jednoznačně určena hodnotami x 1 ,... ,x n . Funkční závislost F nahradíme numerickoumetodou f,y = f(x 1 ,... ,x n ).Získáme tak teoretické řešení dané úlohy. Místo přesných hodnot x i , i = 1,... ,n,musíme velmi často používat jen jejich aproximace ˜x i ,y ′ = f(˜x 1 ,..., ˜x n ).Protože nelze všechny výpočty provádět úplně přesně (zaokrouhlování), bude sevypočtená hodnotaỹ = ˜f(˜x 1 ,..., ˜x n )lišit od hodnoty y ′ . Celkovou chybu výpočtu Y − ỹ lze pak vyjádřit jako součetjednotlivých dílčích chyb:12


• Chyba metody: Y − y = F(x 1 ,... ,x n ) − f(x 1 ,... ,x n ).• Primární chyba: y − y ′ = f(x 1 ,... ,x n ) − f(˜x 1 ,... , ˜x n ).• Sekundární chyby: y ′ − ỹ = f(˜x 1 ,... , ˜x n ) − ˜f(˜x 1 ,... , ˜x n ).Primární chybu lze odhadnout pomocí následující věty.Věta 2.6.Necht’ funkce f(x 1 ,... ,x n ) je spojitě diferencovatelná na množiněG = {x i : |x i − ˜x i | ≤ α i ,i = 1,... ,n}.Pakn∑|f(x 1 ,... ,x n ) − f(˜x 1 ,... , ˜x n )| ≤ A i α i ,i=1kde A i = sup ∣ ∂f ∣∂x i(x 1 ,...,x n ) ∣, i = 1,... ,n.GDůkaz. Plyne z Lagrangeovy věty o střední hodnotě pro funkce n proměnných.Poznámka 2.7.(i) Určit suprémum parciálních derivací funkce f na množině G může být poměrněobtížné i pro nepříliš složitou funkci. V praxi proto rozdílf(x 1 ,... ,x n ) − f(˜x 1 ,... , ˜x n )vyjadřujeme pomocí totálního diferenciálu df(˜x,x), který má tvar|f(x 1 ,...,x n ) − f(˜x 1 ,... , ˜x n )| ˙=df(˜x,x) =a klademen∑i=1A i =∂f∣ (˜x 1 ,..., ˜x n )∂x ∣ .i∂f∂x i(˜x 1 ,..., ˜x n )(x i − ˜x i ).Tento postup je ospravedlnitelný v případě "malých" změn funkce f(x 1 ,...,x n )na okolí bodu (˜x 1 ,... , ˜x n ).(ii) Odhad sekundární chyby lze provést po rozepsání algoritmu do konečné posloupnostiaritmetických operací.13


2.4 Chyba součtu, rozdílu, součinu a podíluNa základě věty 2.6 lze velmi jednoduše odvodit vztahy pro přibližné odhady chybzákladních aritmetických operací.(i) Součet: V tomto případě má funkce f tvar f(x 1 ,x 2 ) = x 1 + x 2 a pro jejíparciální derivace platí tedy vztahy f x1 = 1, f x2 = 1. Potom pro odhadabsolutní chyby součtu dostáváme vztahε(˜x 1 + ˜x 2 ) = ε(˜x 1 ) + ε(˜x 2 ).V důsledku toho má odhad relativní chyby součtu tvarδ(˜x 1 + ˜x 2 ) = ε(˜x 1 + ˜x 2 )|˜x 1 + ˜x 2 |= ε(˜x 1) + ε(˜x 2 )|˜x 1 + ˜x 2 |= |˜x 1|δ(˜x 1 ) + |˜x 2 |δ(˜x 2 ).|˜x 1 + ˜x 2 |(ii) Rozdíl:Vztahy pro rozdíl se získají zcela obdobným postupem jako v případěsoučtu. Rozdíl bude pouze ve jmenovateli odhadu relativní chyby. Příslušnévztahy mají tvarε(˜x 1 − ˜x 2 ) = ε(˜x 1 ) + ε(˜x 2 ),δ(˜x 1 + ˜x 2 ) = |˜x 1|δ(˜x 1 ) + |˜x 2 |δ(˜x 2 ).|˜x 1 − ˜x 2 |V případě, že jsou čísla ˜x 1 , ˜x 2 velmi blízká, vede to k nárůstu relativní chybyrozdílu ve srovnání s relativními chybami čísel ˜x 1 , ˜x 2 . V důsledku to znamená,jak uvidíme na příkladu, že při odčítání dvou velmi blízkých a správnězaokrouhlených čísel dochází k citelné ztrátě platných číslic.(iii) Součin: V tomto případě má funkce f tvar f(x 1 ,x 2 ) = x 1 · x 2 a pro jejíparciální derivace platí tedy vztahy f x1 = x 2 , f x2 = x 1 . Pro odhad absolutníchyby součinu dostáváme tedy vztahε(˜x 1 · ˜x 2 ) = |x 2 |ε(˜x 1 ) + |x 1 |ε(˜x 2 ).Odhad relativní chyby součinu je pak dán vztahemδ(˜x 1 · ˜x 2 ) = |x 2|ε(˜x 1 ) + |x 1 |ε(˜x 2 )|˜x 1 · ˜x 2 |= ε(˜x 1)|˜x 1 |+ ε(˜x 2)|˜x 2 |= δ(˜x 1 ) + δ(˜x 2 ).14


(iv) Podíl: V tomto případě má funkce f tvar f(x 1 ,x 2 ) = x 1 /x 2 a pro její parciálníderivace platí tedy vztahy f x1 = 1/x 2 , f x2 = −x 1 /x 2 2 . Odhady absolutnía relativní chyby podílu mají tvarε( ˜x 1) = ε(˜x 1)˜x 2 |˜x 2 |+ |˜x 1|˜x 2 2ε(˜x 2 ) = |x 2|ε(˜x 1 ) + |x 1 |ε(˜x 2 )˜x 2 ,2δ( ˜x 1) = |x 2|ε(˜x 1 ) + |x 1 |ε(˜x 2 )= ε(˜x 1)+ ε(˜x 2)= δ(˜x 1 ) + δ(˜x 2 ).˜x 2 |˜x 1 · ˜x 2 | |˜x 1 | |˜x 2 |Příklad 2.8. Odhadněte chybu rozdílu ˜x 1 −˜x 2 , jestliže ˜x 1 = 97,132, ˜x 2 = 97,116a obě čísla mají stejný počet platných číslic.Řešení. Rozdíl ˜x 1 − ˜x 2 činí 0,016, což při absolutní chybě rozdílu ε(˜x 1 − ˜x 2 ) =0,5 · 10 −3 + 0,5 · 10 −3 = 0,001 znamená, že výsledná hodnota má platnoupouze jednu číslici. Výpočet relativních chyb čísel ˜x 1 , ˜x 2 a jejich rozdílu dáváδ(˜x 1 ) ˙=0,5 · 10 −6 , δ(˜x) ˙=0,5 · 10 −6 , δ(˜x 1 − ˜x 2 ) = 0,0010,016 = 0,0625.Odhad relativní chyby rozdílu ˜x 1 − ˜x 2 je tedy přibližně 12.500-krát větší nežrelativní chyby čísel ˜x 1 , ˜x 2 .Příklad 2.9. Odhadněte chybu operace f(x,y) = y ln x, použijete-li čísla x ∗ =1,25, y ∗ = 0,3125, která jsou správně zaokrouhlena na uvedený počet míst.Řešení. K odhadu chyby použijeme větu 2.6. Protože jsou uvedená čísla správnězaokrouhlena (všechny uvedené číslice jsou platné), platí|x − ˜x| = |x − 0,125 × 10 1 | ≤ 0,5 × 10 −2 = α 1 ,|y − ỹ| = |y − 0,3125| ≤ 0,5 × 10 −4 = α 2 .Nyní spočtemeA 1 =A 2 =∣ ∂f ∣∣∣∣∂x (˜x,ỹ) = y (˜x,ỹ) = 0,25,x ∣ ∂f ∣∣∣∣∂y (˜x,ỹ) = lnx(˜x,ỹ) = ln1,25 = . 0,223144.Odhad celkové chyby výpočtu je|f(x,y) − f(˜x,ỹ)| ≤ A 1 α 1 + A 2 α 2≤ 0,25 · 0,5 · 10 −2 + 0,223144 · 0,5 · 10 −4≤ 0,125 · 10 −2 + 0,111572 · 10 −4≤ 0,12612 · 10 −215


2.5 Dobře a špatně podmíněné úlohyPři řešení úloh numerickými prostředky postupujeme tak, že po sestavení algoritmuzadáme data a po jeho realizaci obdržíme vypočtené hodnoty. Můžeme tedyhovořit o postupu, který vstupním údajům přiřazuje údaje výstupní. Je-li toto přiřazeníspojité zobrazení na množině vstupních údajů, říkáme, že numerická úloha jekorektní. Tato vlastnost znamená, mimo jiné, jednoznačnost obdržených výsledkův závislosti na vstupních datech. Velká část nekorektních úloh jsou právě úlohy,které nejsou jednoznačně řešitelné. V dalším se budeme zabývat pouze nekorektnímiúlohami, které rozlišujeme na dobře a špatně podmíněné.Řekneme, že korektní úloha je dobře podmíněna, jestliže malé změně vstupníchúdajů odpovídá malá změna řešení na výstupu. Podmíněnost korektních úlohcharakterizujeme číslem podmíněnosti úlohy C p , které je podílem relativní chybyna výstupu a relativní chyby na vstupu,C p =relativní chyba výstupních údajůrelativní chyba vstupních údajů .Není přitom jednoznačně stanoveno, jaká hodnota čísla podmíněnosti je hraničnípro posouzení toho, zda úloha je dobře nebo špatně podmíněná. Je-li C p ≈ 1,je úloha dobře podmíněná. Pro dostatečně velká C p (> 100) mluvíme o špatněpodmíněné úloze. Je potřeba ještě zdůraznit, že podmíněnost úlohy nijak nesouvisís tím, jaký jsme při řešení použili algoritmus, ale je to vlastnost úlohy samotné.Čili, u špatně podmíněné úlohy se budeme vždy potýkat s velkým rozdílem navýstupu při malé změně vstupu bez ohledu na námi navržený algoritmus řešení.Příklad 2.10. Rozhodněte, zda je systém lineárních rovnic (Ax = b)špatně podmíněn.x 1 + 1,01x 2 = 2,01,1,01x 1 + 1,02x 2 = 2,03,Řešení. Řešení daného systému je x 1 = x 2 = 1. Změníme-li vektor pravých stranb = (b 1 ,b 2 ) ⊤ o hodnotu ∆b = −0,01, tj. řešíme nový systém (Ax ∗ = b ∗ )dostaneme nové řešení x ∗ 1 = 2, x∗ 2 = 0.Relativní změna na vstupu jex ∗ 1 + 1,01x ∗ 2 = 2,1,01x ∗ 1 + 1,02x∗ 2 = 2,02,b − b ∗√ (−0,01)∣ b ∣ = 2 + (−0,01) 2√ = 0,00495.2,01 2 + 2,03 216


n p n = ( 1 3 )n p n = 1 3 p n−1 p n = 10 3 p n−1 − p n−20 0,10000 × 10 1 0,10000 × 10 1 0,10000 × 10 11 0,33333 × 10 0 0,33333 × 10 0 0,33333 × 10 02 0,11111 × 10 0 0,11111 × 10 0 0,11110 × 10 03 0,37037 × 10 −1 0,37036 × 10 −1 0,37000 × 10 −14 0,12346 × 10 −1 0,12345 × 10 −1 0,12230 × 10 −15 0,41152 × 10 −2 0,41150 × 10 −2 0,37660 × 10 −26 0,13717 × 10 −2 0,13717 × 10 −2 0,32300 × 10 −37 0,45725 × 10 −3 0,45723 × 10 −3 −0,26893 × 10 −28 0,15242 × 10 −3 0,15241 × 10 −3 −0,92872 × 10 −2Vidíme, že první rekurentní vztah je stabilní, kdežto druhý algoritmus je nestabilní.2.7 Kontrolní otázky a cvičeníCvičení 2.1. Určete nejmenší interval, v němž musí ležet výsledek, použijete-lipřesných hodnot místo zaokrouhlených. Předpokládá se, že všechna čísla v následujícíchvýpočtech jsou správně zaokrouhlena. (Při výpočtech zaokrouhlujte našest desetinných míst.)(i) 2,547 · 1,25,(ii)6,580,128 .Cvičení 2.2. Necht’ jsou čísla x ∗ = 0,013; y ∗ = 0,24 správně zaokrouhlena nauvedený počet míst. Spočtěte f(x,y) = xsin y pro uvedené údaje a určete početplatných míst.Cvičení 2.3.Určete nejmenší interval, v němž musí ležet výsledek operacef(x 1 ,x 2 ,x 3 ) = x 1 (x 2 + x 3 ),použijete-li přesných hodnot místo zaokrouhlených. Předpokládá se, že všechnačísla x ∗ 1 = 0,2; x∗ 2 = 0,26; x∗ 3 = 0,75 jsou správně zaokrouhlena.Cvičení 2.4. Předpokládejte, že máte n správně zaokrouhlených čísel x 1 ,... , x nna d i míst. Chcete spočítat součet těchto n čísel na d = min d i míst. Záleží na18


tom, zda všechna čísla napřed zaokrouhlíte a pak sečtete, nebo napřed sečtete apak zaokrouhlíte? Pokud ano tak proč?Cvičení 2.5. Posloupnost p n = ( 1 3 )n generujeme rekurzivně(i) p n = 5 6 p n−1 − 1 6 p n−2, p 0 = 1, p 1 = 1 3 a n ≥ 2,(ii) p n = 5 3 p n−1 − 4 9 p n−2, p 0 = 1, p 1 = 1 3 a n ≥ 2,přičemž zaokrouhlujeme čísla v normovaném tvaru na pět platných míst. Rozhodněte,zda se jedná o stabilní algoritmy.Cvičení 2.6. Pro libovolné přirozené číslo n, n ≤ 1, sestrojte algoritmus, kterýpro libovolné body x 0 ,... ,x n a x dá výstupP n+1 = (x − x 0 )(x − x 1 ) · · · (x − x n ).Cvičení 2.7. Dokažte vztahy pro odhad absolutní chyby aritmetických operací aodvod’te vztahy pro relativní chyby.2.8 VýsledkyCvičení 2.1.(i) 〈3,17039; 3,19711〉(ii) 〈51,166381; 51,646119〉Cvičení 2.2. f(x,y) = 0,309 × 10 −2 a počet platných míst je j = 1Cvičení 2.3. f(x 1 ,x 2 ,x 3 ) ∈ 〈0,1496; 0,2545〉Cvičení 2.4. Napřed sečíst a pak zaokrouhlit.Cvičení 2.5.(i) stabilní(ii) nestabilníCvičení 2.6. P := (x−x 0 ); i := k+1; While P ≠ 0 and i ≤ n Do P := P(x−x i )19


3 INTERPOLACE... co by Vám měla přinést tato kapitola:Chceme-li využít numerického přístupu k řešení úloh pocházejících, řekněme, z diferenciálníhoči integrálního počtu, jsme téměř vždy nuceni sáhnout k nahrazeníanalytických prostředků, které zde byly využity. V těchto úlohách se totiž vyskytujíveličiny, které nemohou být počítány aritmeticky. Jako příklad bychom mohliuvést výpočet hodnoty určitého integrálu dané funkce. Abychom mohli vůbec přistoupitk vlastnímu výpočtu hodnoty integrálu pomocí aritmetických operací, jenutné nejdříve nahradit integrovanou funkci jinou funkcí, která bude pro tyto účelyvhodná. Potřeba nahradit složitou funkční závislost závislostí jednodušší nás přivádík jedné ze základních úloh numerické matematiky: aproximovat danou funkcijinou funkcí.V této kapitole se budeme zabývat interpolační aproximací, tj. interpolací, přikteré vycházíme z konečného počtu daných funkčních hodnot, a snažíme se sestrojitfunkci, která v těchto bodech nabývá stejných hodnot jako původní funkce.Ukážeme, že velmi vhodnou třídou funkcí, která vyhovuje našim účelům, jsou polynomy,a seznámíme se rovněž se způsobem konstrukce takových polynomů. Závěrečnáčást kapitoly je věnována splajnové interpolaci, která eliminuje některénevýhody polynomiální interpolace.Funkční závislost, kterou se snažíme postihnout, nemusí být vždy známá. Velmičasto vycházíme z hodnot, které jsme získali měřením, popř. evidencí nejrůznějšíchúdajů. Následující tabulka udává, jak se vyvíjel počet obyvatel města Opavy vletech 1996 - 2006.Rok 1996 1998 2000 2002 2004 2006Počet obyvatel (tis.) 63.725 63.294 62.558 61. 582 60.726 60.095Při pohledu na údaje shromážděné obdobným způsobem si můžeme klást následujícíotázky. Jsme schopni nějakým způsobem odhadnout počet obyvatel v roce2001? Jsme schopni předpovědět vývoj počtu obyvatel Opavy na několik let dopředu?Některé odhady tohoto typu je možné získat, jestliže sestrojíme funkci procházejícídanými hodnotami. Dostáváme se tak k tématu interpolace, které budeobsahem následující kapitoly. Obecně lze interpolační úlohu formulovat takto:Je dáno n + 1 hodnot y 0 ,y 1 ,...,y n reálné funkce f v bodech x 0 ,x 1 ,...,x n , tj.y i = f(x i ). Ve třídě funkcí ψ(x;a 0 ,a 1 ,...,a n ) jedné proměnné x, které jsou cha-20


akterizovány hodnotami parametrů a 0 ,a 1 ,...,a n , najděte funkci, pro kterou platíψ(x i ;a 0 ,a 1 ,...,a n ) = y i ,i = 1,...,n.Body (x i ,y i ), i = 1,...,n grafu funkce f nazýváme uzly (někdy také póly, z čehožvychází pojem interpolace, který znamená doplnění, popř. nahrazení grafu funkcef mezi póly). V závislosti na tvaru funkce ψ(x;a 0 ,a 1 ,...,a n ) hovoříme o interpolacipolynomiální, splajnové, trigonometrické, racionální, exponenciální apod.V dalším se budeme zabývat nejprve interpolací polynomiální.Už v úvodním odstavci kapitoly jsme naznačili, že vhodnou třídou funkcí, pomocínichž aproximujeme jiné funkce, jsou algebraické polynomy, tj. množinafunkcí následujícího tvaru:P n (x) = a n x n + a n−1 x n−1 + · · · + a 1 x + a 0 ,kde n je nezáporné celé číslo a a 0 ,a 1 ,...,a n jsou reálné konstanty. Tyto funkcemají řadu analytických předností např. v tom, že se snadno derivují a integrují,přičemž výsledkem těchto operací jsou opět polynomy. Další výhoda spočívá vtom, že změní-li se měřítko proměnné, změní se jen koeficienty, ale ne samotnýtvar aproximace.Tyto výhody třídy polynomů by ovšem neměly žádnou váhu, kdybychom nemělik dispozici analytický podklad pro domněnku, že pomocí této třídy můžemedosáhnout aproximace "dostatečné" přesnosti. Při každé aproximační metodě musímemít na paměti, že míra zjednodušení musí být nastavena tak, abychom informace,které jsme měli k dispozici, ztráceli v co nejmenší možné míře. V opačnémpřípadě se dopouštíme zbytečných nepřesností. Uspokojivého výsledku dosáhnemetehdy, jestliže navržený postup umožňuje vypočtené hodnoty libovolně zpřesňovatna požadovanou mez. Z tohoto hlediska je pro nás klíčová následující věta.Věta 3.1. (Weierstrassova věta o aproximaci)Je-li f spojitá funkce definovaná na intervalu [a,b] a ɛ > 0 je libovolné, pak existujepolynom P(x) definovaný na intervalu [a,b] takový, že platípro všechna x ∈ [a,b].|f(x) − P(x)| < ɛDůkaz. Je možné nalézt např. v knize A. Ralstona [8]. Geometricky ilustruje významtéto věty obrázek 3.1.21


yf + εPff - εaObr. 3.1bxIntuitivně si čtenář jistě dovede představit, že k dané množině bodů lze sestrojitpolynom, který jimi prochází. Dvěma body lze vést přímku (polynom prvníhostupně), třemi parabolu popř. přímku atd. Ale dvěma body je také možné vést parabolu,přesněji řečeno nekonečně mnoho parabol, protože parabola není dvěmabody jednoznačně určena. Tím před námi zároveň vyvstává otázka, za jakých podmíneka zda vůbec je možné nalézt právě jeden polynom procházející danými body.Odpověd’ na tuto otázku dává následující věta.Věta 3.2. Necht’ jsou dány body (x i ,y i ), i = 1,... ,n, takové, že x i ≠ x j . Pakexistuje jediný polynom P n (x) = a n x n + a n−1 x n−1 + · · · + a 1 x + a 0 nejvýšen-tého stupně s vlastnostíP n (x i ) = y i ,pro i = 0,...,n.Důkaz. Z podmínek P n (x i ) = y i , pro i = 0,...,n. dostáváme soustavu n + 1rovnic o stejném počtu neznámých, kterými jsou koeficienty a 0 ,a 1 ,...,a n ve tvarua n x n 0 + a n−1 x0 n−1 + · · · + a 1 x 0 + a 0 = y 0a n x n 1 + a n−1 x1 n−1 + · · · + a 1 x 1 + a 0 = y 1. (3.1)a n x n n + a n−1 xn n−1 + · · · + a 1 x n + a 0 = y n .Determinant soustavy je tzv. Vandermondův determinant, který je nenulový pronavzájem různé body x i , i = 1,... ,n. Odtud vyplývá, že soustava má právě jednořešení, což znamená, že existuje právě jeden polynom stupně nejvýše n splňujícípředepsané interpolační podmínky.⋄22


3.1 Základní tvary interpolačního polynomu3.1.1 Lagrangeův interpolační polynomMetoda určení interpolačního polynomu, kterou jsme použili v důkazu předchozívěty, se nazývá metoda neurčitých koeficientů. Pro praktické účely není příliš vhodnákvůli velké početní náročnosti při rostoucím n. Pro konstrukci interpolačníhopolynomu použijeme Lagrangeovu metodu. Podstata této metody spočívá v tom,že hledaný polynom nesestrojíme přímo, ale pomocí tzv. fundamentálních polynomůl i (x) i = 0,...,n, které mají stupeň n a platí pro ně⎧⎨ 0, i ≠ j,l i (x j ) =⎩ 1, i = j.Protože polynom l i (x) má kořeny x 0 ,x 1 ,...,x i−1 ,x k+1 ,... ,x n−1 ,x n , můžemejej psát ve tvarul i (x) = C i (x − x 0 )(x − x 1 )...(x − x i−1 )(x − x k+1 )...(x − x n−1 )(x − x n ),který bude vyhovovat podmínce l i (x i ) = 1, jestližeDostali jsmeC i =1(x i − x 0 )... (x i − x i−1 )(x i − x k+1 )...(x i − x n ) .l i (x) = (x − x 0)... (x − x i−1 )(x − x k+1 )... (x − x n )(x i − x 0 )...(x i − x i−1 )(x i − x k+1 )... (x i − x n ) .Hledaný polynom (viz. obr. 3.2), který nazýváme Lagrangeův interpolační polynomL n (x) = P n (x), můžeme psát ve tvarun∑L n (x) = y i l i (x), (3.2)i=0nebot’ každý z fundamentálních polynomů nabývá nulové hodnoty ve všech danýchuzlech kromě jednoho, ve kterém nabývá hodnoty 1. Znamená to, že hodnotajejich lineární kombinace v i-tém uzlu je určena pouze i-tým fundamentálním polynomem.Ostatní polynomy tuto hodnotu neovlivňují. Každý z nich byl sestrojenpouze proto, aby bylo zajištěno, že výsledná lineární kombinace nabude v i-témuzlu předepsané hodnoty.23


yl (x) i1x 0 x 1 x i - 1 x i x i + 1x n - 1 x nxObr. 3.2Příklad 3.3. Sestrojte Lagrangeův interpolační polynom funkce f(x) dané tabulkoux i 0 1 2 5y i 2 3 12 147Řešení. Nejprve sestrojíme fundamentální polynomy:l 0 (x) =l 1 (x) =l 2 (x) =l 3 (x) =(x − 1)(x − 2)(x − 5)(0 − 1)(0 − 2)(0 − 5) = − 110 (x3 − 8x 2 + 17x − 10),(x − 0)(x − 2)(x − 5)(1 − 0)(1 − 2)(1 − 5) = 1 4 (x3 − 7x 2 + 10x),x(x − 1)(x − 5)2(2 − 1)(2 − 5) = −1 6 (x3 − 6x 2 + 5x),x(x − 1)(x − 2)5(5 − 1)(5 − 2) = 160 (x3 − 3x 2 + 2x).Dosadíme do vztahu (3.2)(L 3 (x) = 2 · − 1)10 (x3 − 8x 2 + 17x − 10) + 3 · 14 (x3 − 7x 2 + 10x) +(12 · − 1 )6 (x3 − 6x 2 1+ 5x) + 147 ·60 (x3 − 3x 2 + 2x) == x 3 + x 2 − x + 2.3.1.2 Newtonův interpolační polynomLagrangeův interpolační polynom má v numerické matematice převážně teoretickývýznam. Využívá se např. při odvozování metod numerického derivování a integrování.Pro praktické účely však není příliš vhodný, protože při změně počtu uzlů je24


nutné přepočítat všechny fundamentální polynomy l i (x). Mnohem vhodnější je použítnásledující způsob vyjádření, který ovšem vyžaduje zavedení pojmu poměrnádiference.Definice 3.4. Poměrnou diferenci k-tého řádu na množině bodů (x i ,f i ), i =0,... ,n definujeme rekurentně pomocí vztahůf[x i ] = f i ,f[x i0 , x i1 ] = f(x i 0) − f(x i1 )x i1 − x i0,f[x i0 ,...,x ik ] = f[x i 1,...,x ik ] − f[x i0 ,... ,x ik−1 ]x ik − x i0.Věta 3.5. Interpolační polynom P n (x) určený body (x i ,f i ),i = 0,... ,n, můžemezapsat ve tvaruP n (x) = f 0 +f[x 0 ,x 1 ](x − x 0 )+...+f[x 0 ,... ,x n ](x − x 0 ) · · · (x − x n−1 ).(3.3)Důkaz. Kvůli stručnosti zápisu je vhodné zavést označenín∏ω n+1 (x) = (x − x i ) = (x − x 0 )(x − x 1 ) · · · (x − x n ).i=0Necht’ L j (x) je Lagrangeův polynom určený body (x i ,y i ), i = 0,... ,j, j ≤ n.Pak L n (x) lze vyjádřit ve tvaruL n (x) = L 0 (x) + L 1 (x) − L 0 (x) + L 2 (x) − L 1 (x) + ... + L n (x) − L n−1 (x).Spočtěme rozdíl(3.4)L j (x) − L j−1 (x) ==j∑i=0j−1y i ω j+1 (x)(x − x i )ω j+1 ′ (x i) − ∑j−1y j ω j+1 (x)(x − x j )ω j+1 ′ (x j) + ∑i=0i=0y i ω j (x)(x − x i )ω j ′(x i) =y i(x − x i )[ωj+1 (x)ω ′ j+1 (x i) − ω j(x)ω ′ j (x i)].25


Protože pro funkci ω j+1 (x) platíje=L j (x) − L j−1 (x) =ω j+1 (x) = ω j (x)(x − x j ),ω ′ j+1(x) = ω j (x) + (x − x j )ω ′ j(x),j−1y j ω j+1 (x)(x − x j )ω j+1 ′ (x j) + ∑i=0= y j−1j(x − x j )ω j (x)(x − x j )ω j+1 ′ (x j) + ∑= y j−1jω j (x)ω j+1 ′ (x j) + ∑i=0i=0y i ω j (x)(x − x i )y i[ωj (x)(x − x j )(x − x i ) ω j+1 ′ (x i)[(x − xj )ω ′ j+1 (x i) − 1y i ω j (x)(x − x i ) ω j ′(x i)[(x − x j )(x i − x j )ω j ′(x i) − 1]ω j ′(x i)= y j−1jω j (x)ω j+1 ′ (x j) + ω ∑ y ij(x)(x − x j )ω j ′(x i) == ω j (x)j∑i=0i=0y iω ′ j+1 (x i) = ω j(x)f[x 0 ,... ,x j ].− ω ]j(x)ω j ′(x =i)]Každý rozdíl L j (x) − L j−1 (x) pro j = 0,1,... ,n lze tedy vyjádřit pomocí poměrnédiference, tj.L j (x) − L j−1 (x) = (x − x 0 )(x − x 1 ) · · · (x − x j−1 )f[x 0 ,...,x j ].Odtud a z (3.4) plyne, že interpolační polynom lze zapsat ve tvaru (3.3).==Poznámka 3.6. Interpolační polynom daný vztahem (3.3) se nazývá Newtonůvinterpolační polynom. Jedná se však jen o jinou formu zápisu interpolačního polynomu,protože podle věty 3.2 je interpolační polynom určen jednoznačně. Odlišnénázvy Lagrangeův a Newtonův interpolační polynom se vztahují ke způsobu zápisu.Jedná se však o totožné polynomy.Poznámka 3.7. Užíváme-li k výpočtu poměrných diferencí rekurentní vztah, pakje výhodné uspořádat výpočet do tabulky poměrných diferencí:26


x 0 y 0> f[x 0 ,x 1 ]x i y i f[x i ,x k+1 ] f[x i ,x k+1 ,x i+2 ] ...x 1 y 1 > f[x 0 ,x 1 ,x 2 ]> f[x 1 ,x 2 ]x 2 y 2 ... > f[x 0 ,...,x n ].. > f[x n−2 ,x n−1 ,x n ]> f[x n−1 ,x n ]x n y nSestrojte Newtonův interpolační polynom funkce f(x) dané tabul-Příklad 3.8.kou:x i 1 2 4 5y i -1 4 -3 2Řešení. Nejprve sestavme tabulku poměrných diferencí.x i y i f[x i ,x k+1 ] f[x i ,x k+1 ,x i+2 ] f[x i ,x k+1 ,x i+2 ,x i+3 ]1 −1> 52 4 > − 176> − 7 2>17124 −3 >176> 55 −2Uvedené diference jsme spočetli takto:• Poměrné diference nultého řádu.f[x 0 ] = y 0 = −1,f[x 1 ] = y 1 = 4,f[x 2 ] = y 2 = −3,f[x 3 ] = y 3 = 2.27


• Poměrné diference prvního řádu.f[x 0 ,x 1 ] = f[1,2] = f[2]−f[1]2−1= 4 + 1 = 5,f[x 1 ,x 2 ] = f[2,4] = f[4]−f[2]4−2= −3−42= − 7 2 ,f[x 2 ,x 3 ] = f[4,5] = f[5]−f[4]5−4= 2 + 3 = 5.• Poměrné diference druhého řádu.f[x 0 ,x 1 ,x 2 ] = f[1,2,4] = f[2,4]−f[1,2]4−1= −7 2 −53= − 176 ,f[x 1 ,x 2 ,x 3 ] = f[2,4,5] = f[4,5]−f[2,4]5−2= 5+7 23= 176 .• Poměrná diference třetího řádu.f[x 0 ,x 1 ,x 2 ,x 3 ] = f[1,2,4,5] = f[2,4,5]−f[1,2,4]5−1= 17 6 +17 64= 1712 .Dosadíme do vztahu (3.3).P 3 (x) = −1 + 5(x − x 0 )− 17 6 (x − x 0)(x − x 1 )+ 1712 (x − x 0)(x − x 1 )(x − x 2 )= −1 + 5(x − 1) − 17 17(x − 1)(x − 2) + (x − 1)(x − 2)(x − 4)6 12= −1 + 5x − 5 − 17 6 (x2 − 3x + 2) + 1712 (x3 − 7x 2 + 14x − 8)= 1712 x3 − 51 4 x2 + 1003 x − 23.3.2 Chyba polynomiální interpolaceNyní se budeme zabývat otázkou, s jakou přesností aproximuje interpolační polynomP n danou funkci v bodech různých od bodů x i ,i = 0,... ,n. Zformulujemenejdříve tvrzení, které udává vztah mezi poměrnou diferencí n-tého řádu a hodnotoun-té derivace v bodě ξ ∈ (x 0 ,x n ). Z věty o střední hodnotě víme, že existujeξ ∈ (a,b), pro které platíf ′ f(b) − f(a)(ξ) = .b − aNásledující věta tento výsledek zobecňuje.Věta 3.9. Předpokládejme, že f(x) ∈ C n [a,b] a x i ,i = 0,... ,n jsou navzájemrůzná čísla ležící v intervalu [a,b]. Pak existuje ξ ∈ (a,b) takové, žef (n) (ξ) = n!f[x 0 ,...,x n ].28


Důkaz. Označme g(x) = f(x) − P n (x). Protože polynom P n a funkce f nabývajív bodech x i ,i = 0,... ,n stejné hodnoty, tj. f(x i ) = P n (x i ), má funkcealespoň n + 1 nulových bodů ležících v intervalu [a,b]. Podle zobecněné Rolleovyvěty o střední hodnotě existuje číslo ξ ∈ (a,b) takové, že g (n) (ξ) = 0. Dostávámef (n) (ξ) − P (n) (ξ) = 0, neboli f (n) (ξ) = P (n) (ξ).Protože P n (x) je polynom stupně n s vedoucím koeficientem f[x 0 ,...,x j ], dostávámef (n) (ξ) = P (n) (ξ) = n!f[x 0 ,...,x n ].⋄Označme nyní chybu aproximace v bodech x ≠ x i jako E(x) = f(x)−P n (x).Odhad hodnoty E(x) udává větaVěta 3.10. Předpokládejme, že f(x) ∈ C n [a,b] a x i ,i = 0,... ,n jsou navzájemrůzná čísla ležící v intervalu [a,b]. Pak ke každému x ∗ ∈ [a,b] existuje číslo ξ ∈(a,b) takové, žef(x ∗ ) − P n (x ∗ ) = f(n+1) (ξ)(n + 1)! (x − x 0)(x − x 1 )... (x − x n ).Důkaz. Sestrojme Newtonův interpolační polynom pro uzly x i ,...,x i ,x ∗ , tj. polynomstupně n + 1, který má tvarP n+1 (x) = f 0 +f[x 0 ,x 1 ](x − x 0 )+...+f[x 0 ,... ,x n ,x ∗ ](x − x 0 ) · · · (x − x n ).Jelikož P n+1 (x) je interpolační polynom také v bodě x ∗ , platí f(x ∗ ) = P(x ∗ ) azároveňNeboliP n+1 (x ∗ ) = P n (x ∗ )+f[x 0 ,...,x n ,x ∗ ](x ∗ − x 0 ) · · · (x ∗ − x n ).f n (x ∗ ) − P n (x ∗ ) =f[x 0 ,... ,x n ,x ∗ ](x ∗ − x 0 ) · · · (x ∗ − x n ),což podle předchozí věty znamená, žePoznámka 3.11.f n (x ∗ ) − P n (x ∗ ) = f(n+1) (ξ)(n + 1)! (x − x 0)(x − x 1 ) · · · (x − x n ).⋄29


(i) Jestliže lze najít pro (n + 1)-ní derivaci funkce f odhad |f (n+1) (x)| ≤ Mpro všechna x ∈ 〈a,b〉, je možné chybu aproximace ohraničit shora, tj. platí|f(x ∗ ) − P n (x ∗ )| =M(n + 1)! |(x − x 0)(x − x 1 )... (x − x n )|.(ii) protože odhad chyby závisí také na velikosti součinu (x−x 0 )(x−x 1 )...(x−x n ), vzniká otázka, jak volit uzly x i , aby maximální absolutní chyba byla conejmenší. Je zřejmé, že veličina |(x − x 0 )(x − x 1 )... (x − x n )| bude minimální,jestliže pro aproximaci funkční hodnoty funkce f v bodě x ∗ vyberemeuzly, které jsou tomuto bodu nejblíže.Příklad 3.12. S jakou přesností lze pomocí interpolačního polynomu vypočítat√115, jestliže vybereme za uzly body x0 = 100,x 1 = 121,x 2 = 144.Řešení. Funkce f(x) = √ x, x = 115 a n = 2. Nejprve spočteme (n + 1)-níderivaci funkce f(x).f ′ (x) = 1 2 x−1 2 ,f ′′ (x) = − 1 4 x−3 2 ,f (3) (x) = 3 8 x−5 2.Abychom určili hodnotu M n+1 , musíme najít max t∈[100,144] |f (3) (t)|. Protože třetíderivace je kladná klesající funkce na intervalu [100,144], nabývá svého maximav levém krajním bodě daného intervalu. Dostáváme tedyM 3 =3 1∣ √ 8 100 5 ∣ = 0,375 · 10−5a odhad chyby je|E(115)| ≤0,375 · 10−5· |(115 − 100)(115 − 121)(115 − 144)|3!≤ 1,63125 · 10 −3 .30


3.3 Interpolace na ekvidistantní síti uzlůV tomto článku budeme předpokládat, že body x 0 ,...,x n jsou ekvidistantní, tj.existuje h ≠ 0 tak, žex i = x 0 + ih.Číslo h nazýváme krok. Jestliže uzlové body mají tuto vlastnost, je možné jí využítk získání jednodušších vztahů pro výpočet koeficientů Newtonova interpolačníhopolynomu. Využíváme přitom pojmu obyčejná diference.Definice 3.13. Obyčejnou diferenci k-tého řádu na množině bodů (x i ,f i ), i =0,... ,n definujeme rekurentně pomocí vztahů∆f i = f k+1 − f i , i = 0,... ,n − 1,∆ k f i = ∆ k−1 f k+1 − ∆ k−1 f i .Na ekvidistantní množině uzlů lze totiž poměrné diference nahradit obyčejnýmidiferencemi. Přesněji řečeno platí mezi nimi vztah daný větou.Věta 3.14. Na ekvidistantní množině uzlů (x i ,f i ), i = 0,... ,n platíf[x 0 ,...,x n ] = ∆n f 0n!h n .Důkaz. Provádí se matematickou indukcí a lze jej ponechat čtenáři jako cvičení.Zavedeme-li nyní novou proměnnou s vztahem x = x 0 + sh, můžeme rozdílx − x i vyjádřit ve tvaru x − x i = x 0 + sh − (x 0 + ih) = (s − i)h a Newtonůvinterpolační polynom lze psát ve tvaruP n (x) = P n (x 0 + sh) = f 0 +shf[x 0 ,x 1 ]+s(s − 1)h 2 f[x 0 ,x 1 ,x 2 ]+...+s(s − 1)... (s − n + 1)h n f[x 0 ,... ,x n ].Jestliže nyní využijeme vztahu mezi obyčejnou a poměrnou diferencí, dostávámeP n (x 0 + sh) = f 0 +s ∆f 01!+s(s − 1) ∆2 f 02!+...+s(s − 1)... (s − n + 1) ∆n f 0.n!Poznámka 3.15. O obdržených vztazích hovoříme jako o Newtonově interpolačnímpolynomu pro interpolaci vpřed.31


Jestliže uvažujeme uzly v opačném pořadí, tj. jako posloupnost x n ,x n−1 ,... ,x 0dostáváme interpolační polynom ve tvaruP n (x) = f n +f[x n−1 ,x n ](x − x n )+...+f[x 0 ,... ,x n ](x − x n )... (x − x 1 ).Zavedením nové proměnné x = x n + sh můžeme rozdíl x − x i vyjádřit ve tvarux − x i = x n + sh − (x 0 + ih) = (n + s − i)h a interpolační polynom dostávámeve tvaruP n (x) = P n (x n + sh) = f n +shf[x n−1 ,x n ]+s(s + 1)h 2 f[x n−2 ,x n−1 ,x n ]+...+s(s − 1)... (s + n − 1)h n f[x 0 ,...,x n ]a s využitím vztahu mezi obyčejnou a poměrnou diferencí dostávámeP n (x n +sh) = f n +s ∆f n−11!+s(s+1) ∆2 f n−22!+...+s(s−1)...(s+n−1) ∆n f 0.n!Poznámka 3.16. Uvedené formule nazýváme Newtonovým interpolačním polynomempro interpolaci vzad.Schematicky můžeme znázornit použití formulí vpřed a vzad takto:x 0 y 0∆y 0x 1 y 1 ∆ 2 y 0∆y 1 ∆ 3 y 0x 2 y 2 ∆ 2 y 1..... · · · ∆ n y 0x n−2 y n−2 ∆ 2 y n−3∆y n−2∆ 3 y n−3x n−1 y n−1 ∆ 2 y n−2∆y n−1x ny nPříklad 3.17. Aproximujte hodnotu Besselovy funkce v bodech 1,5 a 2,0 polynomemdruhého stupně, jestliže máte k dispozici její hodnoty dané tabulkou:x i 1,0 1,3 1,6 1,9y i 0,7651977 0,6200860 0,4554022 0,281818632


Řešení. Po sestavení tabulky poměrných diferencíx i y i f[x i ,x k+1 ] f[x i ,x k+1 ,x i+2 ] f[x i ,... ,x i+3 ]1,0 0,7651977> −0,48370571,3 0,6200860 > −0,1087339> −0,5489460 > 0,06587841,6 0,4554022 > 0,04944331,9 0,2818186> −0,5786120vidíme, že pro výpočet přibližných hodnot Besselovy funkce v daných bodech použijemerůzné polynomy. Z tvaru pro odhad chyby polynomiální interpolace totižvíme, že to, jaké použijeme uzly, ovlivňuje velikost chyby. Zatímco pro výpočetpřibližné hodnoty v bodě 1.5 využijeme první tři uzly, pro výpočet přibližné hodnotyv bodě 2.0 bude vhodnější vynechat první uzel a použít tři zbývající. Zároveňje zřejmé, že v prvním případě bude výhodné vyjít z Newtonovy formule pro interpolacivpřed, zatímco ve druhém případě použijeme formuli pro interpolaci vzad.Poznámka 3.18. Při výpočtu přibližné hodnoty dané funkce nemusíme předem vědět,kolik diferencí bude zapotřebí, abychom dosáhli požadované přesnosti. Budoulik dosažení potřebné přesnosti zapotřebí všechny údaje tabulky, pak není podstatnýrozdíl v tom, kterou formuli pro výpočet využijeme. Ale je-li možné dosáhnoutpožadované přesnosti pomocí méně diferencí než máme k dispozici, pak navolbě interpolačního vzorce záleží. Z toho, co jsme řekli, plyne, že Newtonův vzorecpro interpolaci vpřed uplatníme zejména na začátku tabulky, zatímco Newtonůvvzorec pro interpolaci vzad bude vhodné využít pro interpolaci na konci tabulky.3.4 Hermitův interpolační polynomV tomto odstavci se budeme zabývat hledáním interpolačního polynomu v případě,že jsou předepsány nejen funkční hodnoty funkce f v daných bodech, ale takéhodnoty derivací funkce f. Přesněji lze problém formulovat takto:jsou dána reálná čísla x i , i = 0,... ,n a nezáporná celá čísla m i , i = 0,... ,n.Hermitův interpolační problém spočívá v tom, že je třeba najít polynom H(x),který nabývá v bodech x i stejných hodnot jako funkce f a její derivace až do řádu33


m i pro i = 0,... ,n. Musí být tedy splněny podmínkyH(x i ) = f(x i ), H ′ (x i ) = f ′ (x i ),... ,H m i(x i ) = f m i(x i ), i = 0,... ,n.Polynom H(x) budeme hledat ve třídě polynomů stupně nejvýše M = ∑ ni=0 m i +n, tj. stupeň je roven počtu podmínek sníženém o 1. Pokud jde o jednoznačnost určenítohoto polynomu, platí obdobná věta jako v případě Lagrangeovy interpolace.Věta 3.19. Pro daná reálná čísla x i , i = 1,... ,n, taková, že x i ≠ x j a hodnotyfi k, i = 1,... ,n, k = 1,... ,m i existuje jediný polynom stupně nejvýše M, kdeM = ∑ ni=0 m i + n takový, že jsou splněny podmínkypro i = 0,... ,n.H(x i ) = f(x i ), H ′ (x i ) = f ′ (x i ),... ,H m i(x i ) = f m i(x i ),Důkaz. Je obdobou důkazu věty 3.2.Poznámka 3.20. Doposud se čtenář mohl setkat se dvěma speciálními případyHermitova interpolačního problému.(i) n = 0, čili je dán bod x 0 a číslo m 0 . Výsledný polynom je známý čtenáři zmatematické analýzy pod názvem Taylorův polynom.(ii) V případě, že m i = 0 pro i = 0,... ,n, tj. nejsou zadány hodnoty derivací,se samozřejmě jedná o Lagrangeovu interpolaci.V dalším se nebudeme zabývat Hermitovým interpolačním problémem obecně.Uvedeme konstrukci Hermitova interpolačního polynomu pro případ, kdy jsou vbodech x 0 ,...,x n známé funkční hodnoty f 0 ,... ,f n a hodnoty prvních derivacíf ′ 0 ,... ,f ′ n. Interpolovat funkci f za těchto podmínek znamená najít polynom H(x)tak, abyH(x i ) = f i , H ′ (x i ) = f ′ i, i = 0,... ,n. (3.5)Kladených podmínek je celkem 2n + 2, a proto bude hledaný Hermitův polynomstupně nejvýše 2n + 1. Tento polynom, podobně jako Lagrangeův, budeme hledatjako lineární kombinaci jistých polynomů ve tvarun∑ n∑H 2n+1 (x) = f i h i (x) + f iĥi(x),′i=0 i=0kde h i (x),ĥi(x) jsou polynomy stupně nejvýše 2n+1. Idea konstrukce je obdobnájako u Lagrangeova interpolačního polynomu, kdy jsme ke každému uzlu sestrojili34


fundamentální polynom, který zajišt’oval, aby výsledná lineární kombinace nabývalav příslušném uzlu předepsané hodnoty. Nyní je nutné postihnout také předepsanéhodnoty první derivace, a proto budeme ke každému uzlu konstruovat dvapolynomy h i (x),ĥi(x) s následujícími vlastnostmi:⎧⎨h i (x j ) =⎩0, i ≠ j1, i = j,⎧⎨h ′ i (x j) = 0; ĥ i (x j ) = 0, ĥ i (x j ) =⎩0, i ≠ j1, i = j.Z předepsaných podmínek vyplývá, že polynom h i (x) má kořeny x 0 ,x 1 ,... ,x i−1 ,x k+1 ,... ,x n−1 ,x n , přičemž všechny tyto kořeny jsou dvojnásobné. Jelikož sejedná o polynom stupně 2n + 1, vyplývá odtud jeho tvarh i (x) = (A i x + B i )(x − x 0 ) 2 ...(x − x i−1 ) 2 (x − x k+1 ) 2 ...(x − x n ) 2 .Bez újmy na obecnosti můžeme polynom h i (x) psát ve tvaruh i (x) = (a i x + b i ) (x − x 0) 2 ...(x − x i−1 ) 2 (x − x k+1 ) 2 ...(x − x n ) 2(x i − x 0 ) 2 ...(x i − x i−1 ) 2 (x i − x k+1 ) 2 ...(x i − x n ) 2 == (a i x + b i )l 2 i (x),kde l i (x) jsou fundamentální polynomy nám známé z konstrukce Lagrangeova interpolačníhopolynomu. Koeficienty a i , b i určíme z podmínek h i (x i ) = 1, h ′ i (x i) =0. Jednoduchý výpočet, který lze přenechat čtenáři, dáváa i = −2l ′ i (x i)b i = 1 + 2x i l ′ i (x i).Celkem má polynom h i (x) tvarh i (x) = (−2l ′ i (x i)x + 1 + 2x i l ′ i (x i))l 2 i (x).Graficky je polynom h i (x) znázorněn na obr. 3.3.y1h (x) ix x x x x x x0 1 i - 1 i i + 1 n - 1 nObr. 3.3x35


Polynom ĥi(x) sestrojíme obdobným způsobem. Jedná se opět o polynomstupně 2n+1, který má kořeny x 0 ,... ,x n , přičemž s výjimkou kořene x i se jednáo dvojnásobné kořeny. Předpokládaný tvar polynomu tedy jeĥ i (x) = C i (x − x i )(x − x 0 ) 2 ...(x − x i−1 ) 2 (x − x k+1 ) 2 ...(x − x n ) 2 ,přičemž opět můžeme bez újmy na obecnosti psátĥ i (x) = c i (x − x i )l 2 i (x).Konstantu c i určíme z podmínky ĥi(x i ) = 1, ze které vyplývá c i = 1. Pro polynomĥ i (x) (obr. 3.4) pak platíĥ i (x) = (x − x i )l 2 i (x).ySmernice 1x 0 x 1 x i - 1x i x x xi + 1 n - 1 nxObr. 3.4Na základě obdržených výsledků můžeme Hermitův interpolační polynom vyjádřitve tvarun∑n∑H 2n+1 (x) = f i (−2l i(x ′ i )x + 1 + 2x i l i(x ′ i ))li 2 (x) + f i(x ′ − x i )li 2 (x).i=0i=0Sestrojte Hermitův interpolační polynom funkce f(x) dané tabul-Příklad 3.21.koux i -1 1 2f i 4 5 3f i ′ 0,5 0,2 -0,4Řešení. Nejdříve sestrojíme fundamentální polynomy:l 0 (x) =(x − 1)(x − 2), l 1 (x) = −6(x + 1)(x − 2), l 2 (x) =2(x + 1)(x − 1).336


a jejich derivacel ′ 0 (x) = 1 6 (2x − 3), l′ 1 (x) = −1 2 (2x − 1), l′ 2 (x) = 2x 3 .Hledaný interpolační polynom je tvaruH 5 (x) = 4( 5 6 x + 8 3 )(x − 1)2 (x − 2) 2+0,5(x + 1) (x − 1)2 (x − 2) 23636+ 5x (x + 1)2 (x − 2) 24+ 0,2(x − 1) (x + 1)2 (x − 2) 24+ · · ·+ · · · ,kde výpočet členů na místě teček je ponechán čtenáři, jakož i případné další úpravy.Také při odvozování chyby Hermitovy interpolace je možné postupovat zcelaobdobným způsobem jako v případě Lagrangeovy interpolace. Dostáváme tak větu,kterou uvádíme bez důkazu.Věta 3.22. Předpokládejme, že f(x) ∈ C 2n+1 〈a,b〉 a x i ,i = 0,... ,n jsou navzájemrůzná čísla ležící v intervalu 〈a,b〉. Pak ke každému x ∗ ∈ 〈a,b〉 existuje čísloξ ∈ (a,b) takové, žef(x ∗ ) − H 2n+1 (x ∗ ) = f(2n+2) (ξ)(2n + 2)! (x − x 0) 2 (x − x 1 ) 2 ... (x − x n ) 2 ,kde H 2n+1 (x) je Hermitův interpolační polynom splňující podmínky (3.5).Poznámka 3.23. Pro odhad chyby při Hermitově interpolaci platí|f(x) − H 2n+1 (x)| ≤ M 2n+2(2n + 2)! |(x − x 0)(x − x 1 )... (x − x n )| 2 ,kde M 2n+2 = maxx∈〈a,b〉 |f(2n+2) (x)|. Tento vztah je opět obdobou vztahu udávajícíhoodhad chyby při Lagrangeově interpolaci. Je zřejmé, že také zde má na velikostchyby vliv vzdálenost zvolených uzlů x 0 ,... ,x n od bodu x ∗ .3.5 Splajnová interpolaceNevýhodou polynomiální interpolace je skutečnost, že případná změna některého zuzlů má vliv na celkové chování aproximující funkce. Kromě toho už při relativně37


nízkém počtu uzlů vykazují polynomy značnou míru oscilace. Nemusí být protov řadě případů vhodným aproximačním nástrojem.Alternativní přístup, který je možné použít, spočívá v rozdělení daného intervaluna několik podintervalů, přičemž na každém z nich konstruujeme obecněrůzný polynom aproximující danou funkci po částech. Takovými funkcemi jsounapř. polynomiální splajny a jejich nejdůležitějším případem jsou kubické splajnovépolynomy, stručněji nazývané kubické splajny. Při konstrukci po částech polynomiálnífunkce je potřeba zajistit v uzlových bodech, kde na sebe jednotlivépolynomy navazují, potřebnou hladkost, tj. spojitost derivací. Uvažujme pro jednoduchosttuto funkci ⎧⎨ −x 3 , x < 0,S(x) =⎩ x 2 , x ≥ 0.Vidíme, že první derivace funkce S bude spojitá, zatímco druhá derivace je užnespojitou funkcí.Při konstrukci kubického splajnu hledáme takové hodnoty prvních a druhýchderivací splajnu v jeho uzlech, aby spojením jednotlivých částí splajnu vzniklafunkce se spojitou druhou derivací na celém intervalu [a,b].Definice 3.24. Necht’ je dána sít’ uzlů a = x 0 < x 1 < · · · x n = b s předepsanýmihodnotami funkce f v bodech x i . Kubickým splajnem (obr. 3.5) nazýváme funkciS(x), která má následující vlastnosti:(i) S(x) je kubickým polynomem P i (x) na každém intervalu 〈x i−1 ,x i 〉,(ii) S(x i ) = f(x i ) pro i = 0,... ,n,(iii) P i (x i ) = P k+1 (x i ) pro i = 1,... ,n − 1,(iv) P ′i (x i) = P ′ k+1 (x i) pro i = 1,... ,n − 1,(v) P ′′i (x i) = P ′′k+1 (x i) pro i = 1,... ,n − 1.Poznámka 3.25.(i) Z předchozí kapitoly víme, že k určení polynomu třetího stupně jsou zapotřebíčtyři podmínky, bez ohledu na to, zda se jedná o předepsané hodnotyfunkce nebo její derivace. Splajn, který chceme sestrojit, je tvořen n polynomytřetího stupně. K jeho konstrukci je tedy zapotřebí stanovit 4n podmínek.Funkční hodnoty funkce f předepisují každému polynomu P i dvěhodnoty v krajních bodech intervalu 〈x i−1 ,x i 〉, to je celkem 2n podmínek.38


Požadavky na spojitost prvních a druhých derivací ve vnitřních uzlech sítěstanovují dalších 2n − 2 podmínek. Jelikož žádné další podmínky stanovenynejsou, obsahuje uvedená konstrukce dva volné parametry. V praxi bývajípředepsané podmínky nejčastěji doplněny jednou z následujících dvojicpodmínek:• S ′′ (x 0 ) = S ′′ (x n ) = 0.• S ′ (x 0 ) = f ′ (x 0 ), S ′ (x n ) = f ′ (x n )Splňuje-li kubický interpolační splajn první dvojici podmínek nazývá se přirozenýsplajn, v případě druhé dvojice dodatečných podmínek hovoříme oúplném splajnu.(ii) Podotýkáme jen, že ačkoli kubický splajn nabývá v daných bodech stejnýchhodnot jako daná funkce, pro hodnoty první a druhé derivace už tomu taknení. V uzlových bodech je zaručena spojitost první a druhé derivace kubickéhosplajnu, ale hodnoty těchto derivací jsou obecně různé od hodnotderivací aproximované funkce.yP i (x)P (x) 1S(x)P n(x)x x x x x x0 1 i - 1 i n - 1 nObr. 3.5xPodmínky z definice kubického splajnu využijeme při jeho konstrukci. Na každémintervalu 〈x i−1 ,x i 〉 bude splajn popsán polynomem třetího stupně, který budemeuvažovat ve tvaruP i (x) = a i + b i (x − x i−1 ) + c i (x − x i−1 ) 2 + d i (x − x i−1 ) 3 , (3.6)kde i = 1,... ,n. Naším úkolem je odvodit vztahy pro výpočet koeficientů a i , b i ,c i a d i , které určují jednotlivé polynomy P i tvořící splajn S.Dosazením hodnoty x i−1 do (3.6) dostaneme vztahy pro koeficienty a i ,P i (x i−1 ) = f i−1 = a i . (3.7)39


Označme h i = x i − x i−1 . Z podmínky spojitosti, tj. P i (x i−1 ) = P i−1 (x i−1 ),dostávámef i−2 + b i−1 h i−1 + c i−1 h 2 i−1 + d i−1 h 3 i−1 = f i−1 . (3.8)Spočteme první derivaciP ′i (x) = b i + 2c i (x − x i−1 ) + 3d i (x − x i−1 ) 2 .Ze spojitosti první derivace, tj. P ′i (x i−1) = P ′i−1 (x i−1), obdržíme vztahNyní spočteme druhou derivacib i = b i−1 + 2c i−1 h i−1 + 3d i−1 h 2 i−1 . (3.9)P ′′i (x) = 2c i + 6d i (x − x i−1 ).Ze spojitosti druhé derivace, tj. P ′′i (x i−1) = P ′′i−1 (x i−1), získáme rovnostZe vztahu (3.10) vyjádříme2c i = 2c i−1 + 6d i−1 h i−1 . (3.10)d i−1 = 2c i − 2c i−16h i−1= c i − c i−13h i−1. (3.11)Dosad’me (3.11) do (3.8) a vyjádřeme b i−1 ,b i−1 = f i−1 − f i−2h i−1− h i−13 (c i + 2c i−1 ). (3.12)Do (3.9) dosadíme (3.11) a (3.12) a upravíme, tj.( fi − f i−13 − f i−1 − f ) i−2= c i−1 h i−1 + 2c i (h i−1 + h i ) + c k+1 h i , (3.13)h i h i−1kde i = 2,... ,n. Získali jsme tak systém (n − 1) rovnic pro (n − 1) neznámýchc i . Dříve než začneme tento systém řešit, je třeba si uvědomit, žeP ′′1 (x 0 ) = 2c 1 = 0 a tedy c 1 = 0.Dále se v poslední rovnici soustavy objeví člen c n+1 . Opět klademec n+1 = 0.40


Z druhé derivace v krajním bodě x n , tj. P ′′n(x n ) = 2c n + 6d n h n = 0, dostávámed n = − c n3h n.Pro určení koeficientů polynomůP i (x), které tvoří splajn S(x), pracujeme se vztahy(3.7), (3.11), (3.12), (3.13).Základní otázka, která nyní před námi vyvstala, je obdobná té, kterou jsmese zabývali u klasické polynomiální interpolace. Týká se toho, zda obdržený systémrovnic má řešení, a pokud ano, zda je řešitelný jednoznačně. Odpověd’ na tutootázku je kladná, ale potřebný aparát pro důkaz je potřeba hledat v lineární algebře.Důkaz následující věty je proto proveden s odkazem na příslušná tvrzení z lineárníalgebry.Věta 3.26. Pro funkci f, která je definovaná na 〈a,b〉, existuje jediný přirozenýkubický splajn, tj. splajn splňující podmínky S ′′ (x 0 ) = S ′′ (x n ) = 0.Důkaz. Aplikujeme-li okrajové podmínky, dostávámec n+1 = P ′′n (x n)/2 = 0, P ′′0 (x 0) = 2c 1 + 6d 1 (x 0 − x 0 ) = c 1 = 0.Rovnice c 1 = 0, c n+1 = 0 tvoří společně s rovnicemi (3.13) soustavu n + 1rovnic o n + 1 neznámých, kterou je možné zapsat ve tvaru Ax = b, kde⎛⎞1 0 0 ... ... 0h 1 2(h 1 + h 2 ) h 2 ....0 hA =2 2(h 2 + h 3 ) h 3. ... . .. . ..⎜⎝h n−1 2(h n−1 + h n ) h n⎟⎠0 ... 0 0 1⎛b =⎜⎝0( )3 a3 −a 2h 2− a 2−a 1h 13(an+1 −a nh n.)− an−a n−1h n−10⎞⎟⎠41


a x = (c 1 ,... ,c n+1 ) T . Matice A je ryze diagonálně dominantí matice, což nazákladě znalostí z lineární algebry zajišt’uje jednoznačnost řešení soustavy Ax =b.Obdobné tvzení, které platí pro úplný kubický splajn, uvádíme bez důkazu.Věta 3.27. Pro funkci f, která je definovaná na 〈a,b〉, existuje jediný úplný kubickýsplajn, tj. splajn splňující podmínky S ′ (x 0 ) = f ′ (x 0 ), S ′ (x n ) = f ′ (x n ).Příklad 3.28. Funkci f(x) = sin x interpolujte v bodech x 0 = π 2 , x 1 = π,x 2 = 3π 2 , x 3 = 2π přirozeným kubickým splajnem.Řešení. Máme čtyři ekvidistantní uzly, proto h i = π 2polynomy 3. stupně. Úkolem je najít 12 koeficientů:pro i = 1,2,3. Hledáme 3Nejprve spočteme funkční hodnotya 1 b 1 c 1 d 1a 2 b 2 c 2 d 2a 3 b 3 c 3 d 3 .y 0 = 1, y 1 = 0, y 2 = −1, y 3 = 0.Sestavíme systém rovnic (3.13) s využitím rovnosti c 1 = c 4 = 0.Necht’ i = 2 :(−1 − 03π− 0 − 1)ππ= c 12 22 + 2c 2( π 2 + π 2 ) + c π32 ,Necht’ i = 3 :(0 + 13π22πc 2 + π 2 c 3 = 0.− −1 − 0)π2π2 c 2 + 2πc 3 = 12ππ= c 22 + 2c 3( π 2 + π 2 ) + c π42 ,Vyřešíme soustavu dvou rovnic s neznámými c 2 a c 3 :0 = 4π 2 c 2 + π 2 c 3 ,24 = π 2 c 2 + 4π 2 c 3 .42


Řešení této soustavy jec 2 = − 85π 2 a c 3 = 325π 2.Další koeficienty získáme ze vztahu (3.7)a 1 = y 0 = 1,a 2 = y 1 = 0,a 3 = y 2 = −1.Ze vztahu (3.12) získáme koeficienty b i−1 :b 1 =b 2 =y 1 −y 0h 1− h 13(c 2 + 2c 1 ) = − 2615π ,y 2 −y 1h 2− h 23(c 3 + 2c 2 ) = − 3815π ,yb 3 = 3 −y 2h 3− h 33(0 + 2c 3 ) = − 215π .Koeficienty d i−1 získáme z (3.11):d 1 =d 2 =c 2 −c 13h 1= − 1615π 3 ,c 3 −c 23h 2=163π 3 ,−cd 3 = 33h 3= − 6415π. 3Dosazením do vztahu (3.6) dostaneme:S 1 (x) = 1 − 2615π (x − π 2 ) − 1615π 3(x − π 2 )3 ,S 2 (x) = − 38 8(x − π) −15π 5π 2(x − π)2 + 163π 3(x − π)3 ,S 3 (x) = −1 − 215π (x − 3π 2 ) + 325π 2(x − 3π 2 )2 − 6415π 3(x − 3π 2 )3 .Výsledný přirozený kubický splajn je:1π2S(x)sin xπ3 π22π⎧⎪⎨S(x) =⎪⎩S 1 (x) x ∈ 〈 π 2 ,π〉S 2 (x) x ∈ 〈π, 3 2 π〉S 3 (x) x ∈ 〈 3 2 π,2π〉-143


3.6 Kontrolní otázky a cvičení∑Cvičení 3.1. Dokažte, že n l i (x) = 1.i=0Cvičení 3.2. Necht’ funkce f(x) je spojitě diferencovatelná na intervalu 〈x 0 ,x 1 〉.Dokažte, že f[x 0 ,x 1 ] = f ′ (c) pro nějaké c ∈ 〈x 0 ,x 1 〉.Cvičení 3.3.Sestrojte Newtonův interpolační polynom:(i)(ii)x i -1 1 2 3f i -4 0 5 20x i -2 0 1 2f i -13 -1 8 43Cvičení 3.4. Aproximujte hodnotu funkce f = e x2 −1 v bodě x = 1,25 pomocíLagrangeova polynomu 4. stupně a odhadněte chybu.x i 1 1,1 1,2 1,3 1,4f i 1 1,23368 1,55271 1,99372 2,61170Cvičení 3.5. Užijte následujících hodnot ke konstrukci Lagrangeova polynomu aaproximujte hodnotu funkce sin x v bodě x = 0,34. Odhadněte chybu.x i 0,3 0,32 0,33 0,35sin x i 0,29552 0,31457 0,32404 0,34290Cvičení 3.6. Necht’ f(x) = 3xe x − e 2x . Aproximujte hodnotu f(1,03) pomocíHermitova interpolačního polynomu, jestliže uzlové body jsou x 0 = 1, x 1 = 1,05a x 2 = 1,07. Odhadněte chybu.Cvičení 3.7. Je funkce f(x) = |x| splajn prvního stupně? Svou odpověd’ zdůvodněte.Cvičení 3.8. Je daná funkce S(x) kvadratický splajn? Svou odpověd’ zdůvodněte.44


⎧⎪⎨S(x) =⎪⎩x, −∞ < x ≤ 1,x 2 , 1 ≤ x ≤ 2,4, 2 ≤ x < ∞.Cvičení 3.9. Rozhodněte, zda se jedná o kubický splajn s uzlovými body −1,0,1,2.⎧⎪⎨S(x) =⎪⎩1 + 2(x + 1) + (x + 1) 3 , −1 ≤ x ≤ 0,3 + 5x + 3x 2 , 0 < x ≤ 1,11 + 11(x − 1) + 3(x − 1) 2 + (x − 1) 3 , 1 < x ≤ 2.Cvičení 3.10. Nalezněte přirozený kubický splajn interpolující funkci danou tabulkou:x i 1 2 3 4 5y i 0 1 0 1 03.7 VýsledkyCvičení 3.3.(i) x 3 − x 2 + x − 1(ii) 3x 3 + 4x 2 + 2x − 1Cvičení 3.4. L 4 (1,25) = 1,75496, |E(1,25)| ≤ 2,4 × 10 −4Cvičení 3.5. L 3 (0,34) = 0,33348, |E(0,34)| ≤ 1,2 × 10 −6Cvičení 3.6. H 5 (1,03) = 0,80932362, |E(0,34)| ≤ 1,75 × 10 −10Cvičení 3.7. Ano, funkce je spojitá.Cvičení 3.8. Ne, funkce nemá spojitou derivaci.Cvičení 3.9. Ne45


Cvičení 3.10.S 1 (x) = − 5 7 (x − 1)3 + 12 (x − 1)7S 2 (x) = 6 7 (x − 2)3 − 5 7 (3 − x)3 − 6 12(x − 2) + (3 − x)7 7S 1 (x) = − 5 7 (x − 3)3 + 6 7 (4 − x)3 + 127 (x − 3) − 6 (4 − x)7S 1 (x) = − 5 7 (5 − x)3 + 12 (5 − x)746


4 METODA NEJMENŠÍCH ČTVERCŮ... co by Vám měla přinést tato kapitola:Námět této kapitoly bude stejný jako v předchozí kapitole věnované interpolaci.Budeme se opět zabývat otázkou aproximace dané funkce jinou funkcí s tím rozdílem,že nyní nebudeme usilovat o to, aby aproximující funkce procházela danýmidaty. Na první pohled by se mohlo zdát, že tento ústupek bude újmou na "kvalitě"výsledné aproximace. Uvidíme však, že existují dobré důvody pro takový postup.Seznámíme se s nejznámější a nejpoužívanější technikou využívanou pro hledáníaproximačních funkcí neprocházejících danými daty, která nese název Metodanejmenších čtverců.Skutečnost, že v řadě případů jsou dané hodnoty funkce získané měřením, znamená,že jsou také zatíženy chybou měření. Snaha o přesné "kopírování" takovýchdat by tedy vlastně byla snahou o napodobování vzniklých chyb. V jiných případechzase povaha dat, znázorníme-li je graficky, umožňuje dobře odhadnout druhzávislosti. Může být například zřejmé, že se jedná o závislost lineární, popř. exponenciálníapod., ale v dané třídě funkcí není možné najít přímku, resp. exponenciáluprocházející naměřenými hodnotami. Za těchto okolností by bylo kontraproduktivnítrvat na sestrojení funkce procházející danými daty, protože výsledek by bylzřejmě velmi odlišný od původní měřené závislosti.Sestrojení aproximující funkce, která neprochází danými daty, může mít naopakpozitivní efekt v tom smyslu, že vliv chyb, vzniklých měřením, bude dojisté míry eliminován. Podstata tohoto přístupu spočívá v nalezení kritéria pro posouzení"blízkosti" funkce vzhledem k naměřeným hodnotám. Je zřejmé, že nenímožné vycházet z prostého rozdílu funkčních hodnot a naměřených hodnot, protožepři měření vnikají kladné i záporné odchylky, které se mohou navzájem eliminovati když bylo měření zatíženo velkou chybou. Mnohem nadějnější je sečístabsolutní odchylky mezi naměřenými hodnotami a funkčními hodnotami. Nevýhodatohoto přístupu je dána tím, že absolutní hodnota jako funkce není v nulediferencovatelná, což může být zdrojem značných komplikací. Tato nepříjemnostzcela vymizí, když pracujeme s druhými mocninami, tj. čtverci, odchylek mezinaměřenými hodnotami a funkčními hodnotami, protože v případě kvadratické závislostiproblémy s hladkostí v nule odpadají. Vzniklou úlohu můžeme formulovattakto:Předpokládejme, že reálná funkce f(x) je definována v n+1 bodech x 0 ,... ,x na že známe funkční hodnoty v těchto bodech y 0 = f(x 0 ),... ,y n = f(x n ). Za47


třídu aproximujících funkcí ϕ(x) vezmeme množinu lineárních kombinacíT = {a 0 ϕ 0 (x) + ... + a k ϕ k (x),a i ∈ R,i = 0,... ,k}.,přičemž funkce ϕ i (x) jsou předem známy. Hledáme tedy koeficienty a 0 ,... ,a klineární kombinace a 0 ϕ 0 (x) + ... + a k ϕ k (x) tak, aby funkcen∑S(a 0 ,... ,a k ) = (a 0 ϕ 0 (x i ) + ... + a k ϕ k (x i ) − y i ) 2 (4.1)i=0nabyla minimální hodnoty. Minimalizujeme tedy součet čtverců odchylek v bodechx 0 ,...,x n , z čehož je odvozen název metody. Situaci názorně ilustruje obrázek4.1.ϕ(x)x 0x 1x 2 ... x nObr. 4.1Definice 4.1. Funkci ϕ(x) = a 0 ϕ 0 (x i ) + ... + a k ϕ k (x i ), pro kterou funkce Snabývá minimální hodnoty, nazýváme nejlepší aproximací funkce f na množiněbodů x 0 ,... ,x n .V dalším budeme předpokládat, že k < n, protože v opačném případě je možnéúlohu řešit interpolací. Funkce S(a 0 ,... ,a k ) je funkcí (k + 1) proměnných. Přihledání jejího minima postupujeme tak, jak je obvyklé v matematické analýze, tj.výrazn∑S(a 0 ,... ,a k ) = (a 0 ϕ 0 (x i ) + ... + a k ϕ k (x i ) − y i ) 2 (4.2)i=0derivujeme podle neznámých (a 0 ,...,a k ) a příslušné derivace položíme rovnynule. Dostáváme systém rovnic∂Sn∑= 2 (a 0 ϕ 0 (x i ) + ... + a k ϕ k (x i ) − y i )ϕ j (x i ) = 0,∂a j i=048


kde j = 0,1,... ,k, který lze jednoduše přepsat do tvaru∑ n ∑ na 0 ϕ 0 (x i )ϕ j (x i ) + ... + a k ϕ k (x i )ϕ j (x i ) =i=0i=0n∑ϕ j (x i )y i ,i=0j = 0,... ,k.Dříve než se budeme zabývat otázkou řešitelnosti obdržené soustavy rovnic,povšimněme si, že její koeficienty mají tvar ∑ ni=0 ϕ p (x i )ϕ q (x i ). Lze ukázat, atento důkaz přenecháváme čtenáři jako cvičení, že pro libovolné dvě funkce ϕ p ,ϕ q definované na množině bodů x 0 ,...,x n splňuje číslon∑i=0ϕ p (x i )ϕ q (x i ) ozn. = (ϕ p ,ϕ q )vlastnosti skalárního součinu. Za těchto okolností je matice naší soustavy rovnic,kterou můžeme s využitím zavedeného označení psát ve tvarua 0 (ϕ 0 ,ϕ 0 ) + a 1 (ϕ 1 ,ϕ 0 ) + ... + a k (ϕ k ,ϕ 0 ) = (y,ϕ 0 )a 0 (ϕ 0 ,ϕ 1 ) + a 1 (ϕ 1 ,ϕ 1 ) + ... + a k (ϕ k ,ϕ 1 ) = (y,ϕ 1 ). (4.3)a 0 (ϕ 0 ,ϕ k ) + a 1 (ϕ 1 ,ϕ k ) + ... + a k (ϕ k ,ϕ k ) = (y,ϕ k ),tzv. Grammovou maticí.Definice 4.2. Soustava lineárních rovnic (4.3) se nazývá normální soustava. Jejídeterminant se nazývá Grammův determinant příslušný funkcím ϕ i (x).Z lineární algebry je známé, že Grammův determinant je různý od nuly právětehdy, když jsou funkce ϕ 0 (x),... ,ϕ k (x) lineárně nezávislé na množině bodůx 0 ,...,x n . Připomeneme proto definici lineární závislosti funkcí.Definice 4.3. Říkáme, že funkce ϕ 0 (x),... ,ϕ k (x) jsou lineárně závislé na množiněbodů x 0 ,... ,x n , jestliže existují čísla a 0 ,... ,a k , z nichž alespoň jedno jerůzné od nuly, taková, že platía 0 ϕ 0 (x i ) + ... + a k ϕ k (x i ) = 0 i = 0...,n.Na otázku řešitelnosti normální soustavy rovnic (4.3) dává odpověd’ věta49


Věta 4.4. Necht’ jsou funkce ϕ 0 (x),... ,ϕ k (x) lineárně nezávislé na množiněbodů x 0 ,... ,x n . Pak má normální soustava jediné řešení a ∗ 0 ,...,a∗ k a funkcea ∗ 0ϕ 0 (x i ) + ... + a ∗ kϕ k (x i ) = 0 i = 0... ,nje nejlepší aproximací funkce f na množně bodů x 0 ,... ,x n .Důkaz. Vzhledem k tomu, že funkce ϕ 0 (x),... ,ϕ k (x) jsou lineárně nezávisléna množině bodů x 0 ,...,x n , vyplývá z vlastností Grammova determinantu jednoznačnostřešení soustavy (4.3). Ukážeme nyní, že pro a ∗ 0 ,... ,a∗ k nabývá funkceS(a 0 ,... ,a k ) minimální hodnoty. Vypočtěme veličinuS(a ∗ 0 + ∆a 0 ,... ,a ∗ k + ∆a k ),kdek∑|∆a j | ≠ 0i=jn∑S(a ∗ 0+∆a 0 ,... ,a ∗ k+∆a k ) = (y j − [(a ∗ 0 + ∆a 0 )ϕ 0 (x i ) + · · · + (a ∗ k + ∆a k )ϕ 0 (x i )]) 2 =i=0n∑n∑[y j − (a ∗ 0ϕ 0 (x i ) + ... + a ∗ kϕ k (x i ))] 2 + [(∆a 0 ϕ 0 (x i ) + ... + ∆a k ϕ k (x i ))] 2i=0i=0n∑−2 [y j − (a ∗ 0 ϕ 0(x i ) + ... + a ∗ k ϕ k(x i ))][(∆a 0 ϕ 0 (x i ) + ... + ∆a k ϕ k (x i ))] =i=0S(a ∗ 0,... ,a ∗ k) −2 {∆a 0 [(y,ϕ 0 ) − a ∗ 0(ϕ 0 ,ϕ 0 ) − a ∗ 1(ϕ 1 ,ϕ 0 ) − ... − a ∗ k(ϕ k ,ϕ 0 )] ++ ∆a 1 [(y,ϕ 1 ) − a ∗ 0(ϕ 0 ,ϕ 1 ) − a ∗ 1(ϕ 1 ,ϕ 1 ) − ... − a ∗ k(ϕ k ,ϕ 1 )] +.+ ∆a k [(y,ϕ k ) − a ∗ 0(ϕ 0 ,ϕ k ) − a ∗ 1(ϕ 1 ,ϕ k ) − ... − a ∗ k(ϕ k ,ϕ k )]}+n∑[(∆a 0 ϕ 0 (x i ) + ... + ∆a k ϕ k (x i ))] 2 .i=0Člen ve složených závorkách {} je roven nule, protože se vždy jedná o rozdíl pravéa levé strany rovnic normální soustavy. Poslední součet je kladné číslo, protožefunkce ϕ 0 (x),... ,ϕ k (x) jsou lineárně nezávislé a ∑ ki=j |∆a j | ≠ 0. Z uvedenéhovyplývá, žeS(a ∗ 0 + ∆a 0 ,... ,a ∗ k + ∆a k ) > S(a ∗ 0,... ,a ∗ k)pro libovolné přírůstky proměnných a i a to znamená, že funkce S nabývá v bodě(a ∗ 0 ,... ,a∗ k) minimální hodnoty. ⋄50


Příklad 4.5. Nalezněte polynom prvního stupně, který aproximuje funkci f(x)danou tabulkou:i 0 1 2 3x i 2 4 6 8y i 2 11 28 40Řešení. Máme určit polynom P 1 (x) = a 0 + a 1 x. Nejprve sestavme odchylkureálných hodnot f(x i ) = y i od teoretických P 1 (x i ) = a 0 + a 1 x i , tj.3∑O(a 0 ,a 1 ) = (a 0 + a 1 x i − y i ) 2 ,i=0ze které odvodíme systém normálních rovnic:Upravíme tento systém:∂O3∑= 2 (a 0 + a 1 x i − y i ) = 0,∂a 0 i=0∂O3∑= 2 (a 0 + a 1 x i − y i )x i = 0.∂a 1 i=03∑ 3∑a 0 1 + a 1 x i = 3 ⎫∑y i , ⎪⎬i=0 i=0 i=03∑ 3∑a 0 x i + a 1 x 2 ∑i = 3 (∗)x i y i . ⎪⎭i=0 i=0 i=0Využitím zápisu pomocí skalárního součinu získáme jednodušší tvar:⎫a 0 (1,1) + a 1 (x,1) = (y,1), ⎬a 0 (1,x) + a 1 (x,x) = (y,x). ⎭ (∗∗)Spočteme jednotlivé skalární součiny a přitom využijeme vlastnosti symetrie skalárníhosoučinu:(y,1) = 2 + 11 + 28 + 40 = 81,(y,x) = 2 · 2 + 4 · 11 + 6 · 28 + 8 · 40 = 4 + 44 + 168 + 320 = 536,(1,1) = 1 + 1 + 1 + 1 = 4,(x,1) = (1,x) = 2 + 4 + 6 + 8 = 20,(x,x) = (1,x 2 ) = 4 + 16 + 36 + 64 = 120.51


Algebraický systém má pak tvar:a 0 · 4 + a 1 · 20 = 81,a 0 · 20 + a 1 · 120 = 536.Řešením této soustavy je a 0 = −12,5 a a 1 = 6,55. Hledaný polynom je tedy tvaruP 1 (x) = 6,55x − 12,5.Poznámka 4.6. Vztah (∗∗) lze velmi jednoduše rozšiřovat pro polynomy vyššíchstupňů. Například pro polynom druhého stupněmá systém normálních rovnic tvar:P 2 (x) = a 0 + a 1 x + a 2 x 2(y,1) = a 0 (1,1) + a 1 (x,1) + a 2 (x 2 ,1),(y,x) = a 0 (1,x) + a 1 (x,x) + a 2 (x 2 ,x),(y,x 2 ) = a 0 (1,x 2 ) + a 1 (x,x 2 ) + a 2 (x 2 ,x 2 ).Velmi často nastane případ, že matice soustavy je špatně podmíněná (tj. determinantje velmi blízký nule) a výsledky jsou zatíženy velkými chybami. Abychomse vyhnuli těmto obtížnostem, je výhodné pracovat s ortogonálním systémem funkcí.Ortogonální systém funkcí {ϕ i } ∞ i=0 na množině {x 0,...,x n } je takový systémlineárně nezávislých funkcí, pro který platí(ϕ i ,ϕ j ) = 0, pro i ≠ j.Použijeme-li takový systém v rámci metody nejmenších čtverců, pak maticesystému normálních rovnic je diagonální a pro hledané koeficienty a j , j = 1,... ,kplatía j = (f,ϕ j)(ϕ j ,ϕ j ) .Ortogonální systém funkcí lze zkonstruovat pomocí Gramm-Schmidtova ortogonalizačníhoprocesu. Z numerického hlediska může být tento postup nestabilní.Návod na konstrukci ortogonálního systému polynomů dává následující věta.52


Věta 4.7. Necht’ na vektorovém prostoru všech polynomů s reálnými koeficientyje definován skalární součin na množině bodů {x 0 ,... ,x n }. Klademe ϕ −1 = 0,ϕ 0 = 1, b 0 = 0 aϕ k+1 = (x − a k )ϕ k − b k ϕ k−1 ,kde pro k = 1,2,... jea k = (xϕ k,ϕ k )(ϕ k ,ϕ k ) , b k = (ϕ k,ϕ k )(ϕ k−1 ,ϕ k−1 ) .Pak {ϕ i } ∞ i=0 je ortogonální systém polynomů.Důkaz. Je možné nalézt v knize Z. Riečanové [9, str. 270-271]4.1 Kontrolní otázky a cvičeníCvičení 4.1. Metodou nejmenších čtverců určete polynom 2.stupně, který aproximujefunkci f(x) danou tabulkou:(i)(ii)(iii)x i -1 1 3 5 7 9 11f i 3 -1 2 4 6 3 5x i -5 -3 -1 0 1 2 4f i -60 -25 3 5 -1 -15 -67x i -3 -1 0 1 2 3f i -12 0 3 4 3 0Cvičení 4.2. Metodou nejmenších čtverců najděte rovnici tvaru y = ae x2 + bx 3 ,která aproximuje funkci procházející body [−1,0], [0,1] a [1,2].Cvičení 4.3. Metodou nejmenších čtverců určete funkci g(x) = asin πx+bcos πxaproximující funkci f(x) danou tabulkou:x i -1 − 1 20121y i -1 0 1 2 153


4.2 VýsledkyCvičení 4.1.(i) 1,535714 + 0,321429x(ii) 3,126519 − 3,380037x − 3,369318x 2(iii) −x 2 + 2x + 3Cvičení 4.2. a = 1+2e1+2e 2 , b = 1Cvičení 4.3. a = b = 154


5 NUMERICKÉ ŘEŠENÍ NELINEÁRNÍCH ROVNIC... co by Vám měla přinést tato kapitola:Vyřešit nelineární rovnici znamená nalézt všechny nulové body dané funkce jednéproměnné. K numerickému výpočtu přistupujeme při řešení nelineárních rovnic poměrněčasto. Už při hledání kořenů polynomů narážíme na skutečnost, že vztahypro jejich výpočet máme k dizpozici jen pro polynomy nejvýše čtvrtého stupně.Kromě toho i v případech, kdy máme k dispozici vzorec pro výpočet kořenů, nemusíbýt takový vztah pro praktické účely vhodný. Je proto účelné věnovat pozornosttakovým metodám, které nám umožní nalézt alespoň přibližnou hodnotu kořenůfunkce. Náplní této kapitoly bude hledání reálných kořenů funkcí jedné proměnné.Uvažujme rovnicif(x) = 0, (5.1)kde f(x) je "rozumná" funkce reálné proměnné. Budeme hledat reálná čísla ¯x, prokterá platí f(¯x) = 0. Taková čísla nazýváme kořeny rovnice (5.1). Pod pojmemnumerické řešení rovnice můžeme rozumět• číslo, které představuje přibližnou hodnotu kořene ¯x• postup, který vede k nalezení čísla ¯xV dalším budeme tento pojem užívat v prvním významu. Jeho druhý význam nahradímeobratem numerický výpočet. Budeme vycházet z předpokladu, že známeinterval 〈a,b〉, ve kterém má rovnice (5.1) právě jeden kořen. Numerický výpočetkořene ¯x spočívá v konstrukci posloupnosti {x n } ∞ n=0 takové, želim x n = ¯x.n→∞Za numerické řešení budeme považovat takový člen posloupnosti x k , pro kterýplatí|x k − ¯x| < ε,tj. máme předem stanovenu velikost chyby. Je tedy nutné nalézt odhad výrazu|x k − ¯x|, protože hodnotu ¯x lze obecně najít pouze přibližně. Efektivnost metodyje pak dána rychlostí konvergence posloupnosti {x n } ∞ n=0 ke kořenu ¯x.Teoretický základ pro naprostou většinu metod poskytuje věta z funkcionálníanalýzy známá pod názvem Banachova věta o pevném bodě. Udává postačujícípodmínku pro existenci tzv. pevného bodu funkce ϕ, pod kterým rozumíme takovouhodnotu proměnné x, pro kterou platí ϕ(¯x) = ¯x.55


Souvislost Banachovy věty s hledáním kořenů rovnice f(x) = 0 spočívá vtom, že nalezneme-li pevný bod funkce ϕ(x), našli jsme zároveň také kořen tétorovnice. Řešení rovnice f(x) = 0 odpovídá totiž pevnému bodu funkce ϕ(x),jestliže platíϕ(x) = x − f(x).Banachovu větu uvádíme pro případ reálné funkce reálné proměnné, což je pronaše potřeby postačující. Její platnost je ovšem mnohem obecnější.Věta 5.1. (Banachova věta) Necht’ ϕ : 〈a,b〉 → 〈a,b〉. Necht’ je funkce ϕ(x) kontraktivnív 〈a,b〉, tj. existuje číslo K ∈ 〈0,1) takové, že pro každou dvojici číselx 1 ,x 2 ∈ 〈a,b〉, x 1 ≠ x 2 , platí|ϕ(x 1 ) − ϕ(x 2 )| ≤ K |x 1 − x 2 | .Pak existuje jediný pevný bod ¯x funkce ϕ(x) (tj. platí ϕ(¯x) = ¯x) v intervalu 〈a,b〉).Důkaz. Bud’ x 0 ∈ 〈a,b〉. Protože ϕ zobrazuje interval 〈a,b〉 do sebe, můžemedefinovatx k = ϕ(x k−1 ), k = 1,2,... . (5.2)Ukážeme, že posloupnost {x k } ∞ k=0 je cauchyovská, tzn., že pro každé ε > 0 existujel ∈ N takové, že pro každé n 1 , n 2 ≥ l platí |x n1 − x n2 | ≤ ε. Necht’ k > l.Platí|x k − x l | = |x k − x k−1 + x k−1 − x k−2 + ... + x l+1 − x l |≤ |x k − x k−1 | + |x k−1 − x k−2 | + ... + |x l−1 − x l |≤ K |x k−1 − x k−2 | + K |x k−2 − x k−3 | + ... + K |x l − x l−1 |≤ K 2 |x k−2 − x k−3 | + K 2 |x k−3 − x k−4 | + ... + K 2 |x l−1 − x l−2 |≤ ... ≤ K k |x 1 − x 0 | + K k−1 |x 1 − x 0 | + ... + K l |x 1 − x 0 |= (K k + K k−1 + ... + K l ) |x 1 − x 0 |= K l (K k−l + K k−l−1 + ... + K + 1) |x 1 − x 0 |= K lKk−l − 1K − 1 |x 1 − x 0 | ≤Kl1 − K |x 1 − x 0 |,protože K < 1. K danému ε > 0 lze najít přirozené číslo l tak, abyK l1 − K |x 1 − x 0 | ≤ ε,56


stačí vzítl ≥ logε(1 − K)|x 1 − x 0 | · 1log K .Posloupnost {x k } ∞ k=0je cauchyovská, a tedy konvergentní. Protože funkce ϕ(x)je kontraktivní a tedy i spojitá, plyne ze vztahu (5.2) přechodem k limitě k → ∞rovnost ϕ(¯x) = ¯x.Předpokládejme, že funkce ϕ(x) má druhý pevný bod ˆx. Potom|ϕ(¯x) − ϕ(ˆx)| = |¯x − ˆx|.Na druhé straně ϕ(x) je kontraktivní, tedy|ϕ(¯x) − ϕ(ˆx)| ≤ K |¯x − ˆx| < |¯x − ˆx| ,a to je spor.⋄Důsledek 5.2. Necht’ ϕ(x) je kontraktivní na 〈a,b〉 s koeficientem K. Necht’ posloupnost{x k } ∞ k=0 je definovaná vztahem (5.2). Pak platí|¯x − x k ||¯x − x k |≤≤K k1 − K |x 1 − x 0 |, (5.3)K1 − K |x k − x k−1 | . (5.4)Poznámka 5.3.(i) Kontraktivnost funkce ϕ(x) znamená, že vzdálenost obrazů je menší nežvzdálenost vzorů. Kontraktivnost je pro existenci pevného bodu podstatná.(ii) Banachova věta představuje obecný princip konvergence iteračních metod.Dá se použít v různých souvislostech, například pro rovnice diferenciální iintegrální. Funkce ϕ(x) je pak definována v prostoru vhodných funkcí.(iii) Vztah (5.3) lze použít jako kritérium pro zastavení výpočtu.(iv) Rychlost konvergence závisí na faktoru Kk1−K, s klesajícím K rychlost konvegencenarůstá.57


5.1 Metoda prosté iteraceŘešit rovnici ϕ(x) = x metodou prosté iterace znamená zvolit x 0 ∈ 〈a,b〉 a položitx k+1 = ϕ(x k ). (5.5)Předpoklady Banachovy věty zaručují, že x k je definováno pro každé k a posloupnostiterací konverguje ke kořenu ¯x. Graficky je situace znázorněna na obrázku5.1xx 2x 3x 3x 1x 2ϕ(x)x 1x 0Obr. 5.1Z praktického hlediska je ovšem obtížné ověřit kontraktivnost funkce ϕ(x). Předpokládáme-li,že funkce ϕ(x) má derivaci na daném intervalu, můžeme zformulovattvrzeníVěta 5.4. Necht’ ϕ(x) je diferencovatelná na 〈a,b〉. Necht’ existuje reálné číslo Ktakové, že pro všechna x ∈ 〈a,b〉 platí |ϕ ′ (x)| ≤ K < 1. Pak funkce ϕ(x) je v〈a,b〉 kontraktivní s koeficientem K.Důkaz. Podle Lagrangeovy věty o střední hodnotě pro každé x,y ∈ 〈a,b〉, x > y,existuje bod α ∈ (a,b) takový, žeTedyϕ(x) − ϕ(y) = ϕ ′ (α)(x − y).|ϕ(x) − ϕ(y)| ≤ |ϕ ′ (α)| · |x − y| ≤ K|x − y|.⋄Jestliže chceme použít metodu prosté iterace na řešení rovnice f(x) = 0, jenutné ji upravit na ekvivalentní rovnici , tj. na rovnici tvaru ϕ(x) = x, která bude58


mít shodné kořeny. Tento postup není dán jednoznačně a závisí na konkrétnímtvaru funkce f. Základním úkolem je provést úpravu tak, aby funkce ϕ(x) bylakontraktivní, přičemž zároveň usilujeme o co nejmenší koeficient kontrakce.Předpokládejme, že funkce f(x) je diferencovatelná a platí0 < c ≤ f ′ (x) ≤ dvšude v 〈a,b〉. V případě f ′ (x) < 0 bychom pracovali s funkcí −f(x). Rovnicex = x − λf(x)je ekvivalentní s rovnicí (5.1) a konstantu λ určíme tak, aby funkce ϕ(x) = x −λf(x) byla kontraktivní. Chceme, aby (viz. věta 5.4)Bez absolutních hodnot to znamená, že∣∣ϕ ′ (x) ∣ ∣ = ∣ ∣(x − λf(x)) ′∣ ∣ ≤ K < 1.1 − K ≤ λc ≤ λf ′ (x) ≤ λd ≤ 1 + K.K tomu, aby tyto nerovnosti byly splněny, stačí položitDostáváme tak iterační vztahλ = 2c + d .x k+1 = x k − 2c + d f(x k).Poznámka 5.5. Při rozhodování o zastavení iteračního procesu lze využít odhadu(5.3), resp. (5.4). Protože určení konstanty K může být velmi obtížné, používámejednodušší podmínku|x k − x k−1 | < ε, (5.6)kde ε > 0 je předem zvolené číslo. Splněním tohoto kritéria bohužel není zaručeno,že přesná hodnota kořene ¯x se od jeho aproximace x k liší o méně než ε. Chceme-lise přesvědčit, že |x k − ¯x| < ε, stačí vypočítat f(x k + ε) a f(x k − ε). Platí-lif(x k )f(x k + ε) < 0,resp.f(x k )f(x k − ε) < 0,59


je jisté, že kořen ¯x leží v intervalu 〈x k ,x k + ε〉, resp. 〈x k − ε,x k 〉, a tedy se od x knemůže lišit o více než ε.Příklad 5.6. Na intervalu 〈1,2〉 řešte rovnici x 3 + 4x 2 − 10 = 0 s přesností 10 −5 .Kolik iterací je třeba provést? (Zaokrouhlujte na 6 desetinných míst.)Řešení. I. způsob: Rovnici upravíme na tvar x = ϕ(x) = x−λf(x). Musíme určitλ tak, aby funkce ϕ(x) byla kontraktivní. Spočteme f ′ (x) = 3x 2 + 8x. Derivacef ′ (x) je na 〈1,2〉 rostoucí a nabývá hodnot z intervalu 〈11,28〉. Klademe λ =211+28 = 239 a ϕ(x) = x − 239 (x3 + 4x 2 − 10).Zvolme x 0 = 1,5, potom:x 1 = 1,378205x 2 = 1,367147x 3 = 1,365522x 4 = 1,365275x 5 = 1,365237.Nyní můžeme výpočet zastavit, protože |x 5 − x 4 | = 0,6 × 10 −5 < 10 −5 . Protožef(x 5 ) · f(x 5 − ε) . = 0,115372 × 10 −3 · (−0,4976) × 10 −4 < 0,je jisté, že |x 5 − ¯x| ≤ ε = 10 −5 .Závěr: Přibližná hodnota řešení rovnice je x 5 = 1,365237.5.2 Newtonova metodaJedná se o jednu z nejznámějších numerických metod pro hledání kořenů rovnicef(x) = 0. Její základní myšlenka má názornou geometrickou interpretaci (viz.obrázek 5.2) a je založena na tom, že průsečík tečny sestrojené ke grafu funkcev daném bodě x k s osou x může být lepší aproximací hledaného kořene než x ksamotné. Vzhledem k tomu, že posloupnost aproximací je dána průsečíky tečen sosou x, používá se někdy pro tuto metodu název metoda tečen.60


x k x k+1 x k+2Obr. 5.2Předpokládejme opět, že na intervalu 〈a,b〉 platí, že f(a) · f(b) < 0 a f ′ (x) ≠ 0pro všechna x ∈ (a,b).Necht’ x k je k-tá aproximace kořene ¯x. Rovnice tečny ke grafu funkce f(x)v bodě x k má tvary − f(x k ) = f ′ (x k )(x − x k ).Průsečík tečny s osou x je bod x = x k+1 , který je (k + 1)-ní aproximací kořene.Dosadíme-li do rovnice tečny y = 0 a x = x k+1 , dostaneme tzv. Newtonův vzorecpro řešení nelineárních rovnicx k+1 = x k − f(x k)f ′ (x k ) . (5.7)Za předpokladu, že funkce f(x) je monotonní a konvexní či konkávní zároveň,lze zformulovat následující postačující podmínky pro konvergenci Newtonovy metody.Grafické znázornění možností, které mohou při volbě bodu x 0 ilustruje obr.5.3.Věta 5.7. Necht’ funkce f(x) je dvakrát spojitě diferencovatelná na 〈a,b〉. Necht’f ′ (x) ≠ 0, f ′′ (x) ≠ 0 pro všechna x ∈ 〈a,b〉. Necht’ f(a) · f(b) < 0. Klademex 0 = a, je − li f ′ (x) · f ′′ (x) < 0,x 0 = b, je − li f ′ (x) · f ′′ (x) > 0.Pak posloupnost iterací {x k } ∞ k=0 definovaná vztahem (5.7) konverguje ke kořenu ¯xrovnice f(x) = 0.Důkaz. Ze skutečnosti, že f(a) · f(b) < 0 a diferencovatelnosti funkce f(x),vyplývá existence kořenu ¯x ∈ 〈a,b〉. Nenulovost první derivace pak zaručuje, žeje tento kořen jediný. Dokážeme případ, kdy f ′ (x) > 0,f ′′ (x) > 0. V ostatních61


y y| || | ||f > 0, f > 0 f < 0, f < 0a x 1 b = x 0 xa b = xx 10xyy| ||| ||f > 0, f < 0 f < 0, f > 0x 1a = x 0b xa = x 0 x 1b xObr. 5.3případech je postup obdobný. Podle věty máme položit x 0 = b. Chceme ukázat, žeposloupnost {x k } ∞ k=0 je klesající a zdola ohraničená kořenem ¯x. Mámex 1 = x 0 − f(x 0)f ′ (x 0 ) = b − f(b)f ′ (b) .Jelikož f(a) · f(b) < 0 a f ′ (x) > 0, je f(b) > 0 a dostáváme x 1 < x 0 . Vzhledemk tomu, že funkce f(x) splňuje na intervalu 〈a,b〉 přepoklady Lagrangeovy větyo střední hodnotě, dostáváme f(¯x) − f(b) = f ′ (c)(¯x − b) pro nějaké c ∈ (¯x,b).Z čehož vyplývá¯x = b +f(¯x − f(b))f ′ (c)= b − f(b)f ′ (c) .Protože f ′′ > 0 je f ′ rostoucí funkce a platí tedy f ′ (c) < f ′ (b). Celkem¯x = b − f(b)f ′ (c) = b − f(b)f ′ (b) = x 1.Ukázali jsme tedy, že ¯x < x 1 < x 0 jako první krok matematické indukce.Jelikož x 1 leží vpravo od kořene ¯x, je f(x 1 ) > 0 a zcela analogicky jakov předchozím postupu lze ukázat, že z ¯x < x k < b plyne ¯x < x k+1 < x k .Posloupnost {x k } ∞ k=0 je tedy klesající a zdola ohraničená číslem ¯x, což znamená,že je konvergentní. Označme lim x k = α. Ukážeme, že α je kořenem rovnicek→∞62


(5.1). Vskutku((α = lim x k+1 = lim x k − f(x ) f limk)k→∞ k→∞ f ′ = lim(x k )x k− (k→∞f ′ limk→∞ x kk→∞ x k)) = α− f(α)f ′ (α) .Odtud vyplývá, že f(α) = 0 a vzhledem k jednoznačnosti kořene platí, že α = ¯x. ⋄Příklad 5.8. Metodou tečen nalezněte přibližnou hodnotu kořene rovnicex − cos x = 0na intervalu 〈0, π 2〉. Zaokrouhlujte na 6 desetinných míst.Řešení.(i) Ověříme, zda kořen leží v daném intervalu:f(a) · f(b) < 0( π(0 − cos 0) ·2 − cos π )< 02( ) π(−1) ·2 − 0 < 0− π 2< 0Podmínka je splněna.(ii) Určíme počáteční aproximaci x 0 podle věty 5.7. Spočteme první a druhouderivaci:f ′ (x) = 1 + sin xf ′′ (x) = cos xObě derivace jsou na intervalu 〈0, π 2 〉 kladné, proto x 0 = b = π 2 .(iii) Další aproximace spočteme podle vztahu (5.7), tj.Postupně dostáváme:x k+1= x k − x k − cos x k1 + sin x k.x 1 = 0,785398x 2 = 0,739536x 3 = 0,739085x 4 = 0,739085.63


Přibližná hodnota kořene je ¯x = 0,739085.5.3 Metoda sečen a regula falsiNewtonova metoda je silný nástroj pro řešení nelineárních rovnic, avšak její nevýhodouje, že v každém iteračním kroku musíme počítat derivaci funkce f(x), což jezpravidla obtížnější než výpočet f(x) a vyžaduje více aritmetických operací. Protov Newtonově vzorci nahrazujeme derivaci diferenčním podílemf ′ (x k ) ≈ f(x k) − f(x k−1 )x k − x k−1a dostáváme tak iterační vzorec pro metodu sečenx k − x k−1x k+1 = x k − f(x k )f(x k ) − f(x k−1 ) . (5.8)Geometrická interpretace metody sečen je následující:Body [x k ,f(x k )] a [x k−1 ,f(x k−1 )] vedeme sečnu. Její průsečík s osou x je(k + 1)-ní aproximací hledaného kořene. Označíme jej x k+1 . Tento postup opakujeme.Situace je znázorněna na obrázku 5.4.f( x k )x k-1x kx k+1f( x k-1 )Obr. 5.4Nevýhodou metody sečen je skutečnost, že členy posloupnosti iterací {x k } ∞ k=0 mohou"vyběhnout" z intervalu 〈a,b〉. V takovém případě se může stát, že obdržímeposloupnost, která sice konverguje, ale k jinému kořenu než jsme původně požadovali.Pokud jde o konvergenci metody samotné, závisí podstatně na volbě počátečníchiterací x 0 , x 1 .Abychom zabránili tomu, že vypočtené iterace mohou ležet mimo uvažovanýinterval, ve kterém hledáme kořen funkce f(x), používáme následující modifikacimetody sečen nesoucí název regula falsi. Metoda regula falsi využívá princip metodypůlení intervalu. Opět postupně zužujeme interval obsahující kořen rovnice.64


Tentokrát dělícím bodem není polovina intervalu, ale průsečík sečny vedené body[x k ,f(x k )], [x i ,f(x i )] a osy x, kde bod x i je určen tak, abyf(x i ) · f(x k ) < 0 a f(x k ) · f(x j ) > 0pro všechna j takové, že i < j < k. Iterační vztah metody regula falsi má tvarx k − x ix k+1 = x k − f(x k )f(x k ) − f(x i ) . (5.9)Ve srovnání s metodou sečen konverguje metoda regula falsi pomaleji. Na druhoustranu tato metoda konverguje pro každou spojitou funkci f(x), jak udává následujícívěta, jejíž důkaz je možné nalézt např. v ([9, str. 320-322]). Diskuze o zastavenívýpočtu je obdobná jako v poznámce 5.5.Věta 5.9. Necht’ f(x) je spojitá funkce na intervalu 〈a,b〉, f(a)·f(b) < 0 a necht’f(x) má v intervalu 〈a,b〉 právě jeden kořen. Pak posloupnost {x k } ∞ k=0 definovanávztahem (5.3) konverguje ke kořenu rovnice (5.1).Je-li funkce f(x) konvexní, resp. konkávní, na intervalu 〈a,b〉 a položíme-lix 0 = b,x 1 = a, je-li f(x) konvexní,x 0 = a,x 1 = b, je-li f(x) konkávní,pak f(x j ) bude mít vždy stejné znaménko pro všechna j = 1,2,... a vztah (5.3)bude mít tvarMetodu ilustruje obrázek 5.5.x k − x 0x k+1 = x k − f(x k )f(x k ) − f(x 0 ) .a=x 1x 2 x3b=x 0Obr. 5.565


Příklad 5.10. Řešte rovnici x − cos x = 0 na intervalu 〈0, π 2〉 metodou sečen ametodou regula falsi. Zaokrouhlujte na šest míst.Řešení.(i) Řešení metodou sečenk x k f(x k )0 0 −11π2π22 0,611015 −0,208053 0,723270 −0,263763 × 10 −14 0,739567 0,806723 × 10 −25 0,739083 −0,283964 × 10 −56 0,739085 −0,302125 × 10 −97 0,739085 0,222045 × 10 −15(ii) Řešení metodou regula falsi. Výpočet se začne lišit u čtvrté iterace. f(x 3 )má stejné znaménko jako f(x 2 ), protox 4 = x 3 − f(x 3 ) ·Výpočet opět zapíšeme do tabulky:x 3 − x 1f(x 3 ) − f(x 1 ) .k x k f(x k )0 0 -11π2π22 0,611015 −0,208053 0,723270 −0,263763 × 10 −14 0,737266 −0,304346 × 10 −25 0,738878 −0,347032 × 10 −36 0,739062 −0,395164 × 10 −47 0,739082 −0,449901 × 10 −58 0,739085 −0,512211 × 10 −69 0,739085 −0,583151 × 10 −766


Pro srovnání přidáváme hodnotu kořene vyjádřenou na vícedesetinných míst, kteráčiní ¯x = 0,7390851332151611.5.4 Sturmova posloupnostV této kapitole se budeme zabývat stanovením počtu a lokalizací reálných kořenůpolynomuP(x) = a 0 + a 1 x + · · · + a n x n ,kde a i ∈ R a x ∈ C. Počet reálných kořenů určíme pomocí posloupnosti polynomůklesajících stupňů.Bud’ P 1 (x),P 2 (x),... ,P m (x) posloupnost polynomů. Tuto posloupnost nazvemeSturmovou posloupností v intervalu (a,b), jestliže• P m (x) ≠ 0, pro každé x ∈ (a,b).• Pro každé k = 2,... ,m − 1 je P k−1 (x)P k+1 (x) < 0, kde x je kořenempolynomu P k (x).Označme znakem W(˜x) počet znaménkových změn ve Sturmově posloupnosti{P i (x)} m i=1 v bodě ˜x, přičemž ignorujeme nuly.Věta 5.11. (Sturmova) Je-li P(a) a P(b) různé od nuly, je počet různých reálnýchkořenů polynomu P(x) v intervalu 〈a,b〉 roven čísluI b a = W(b) − W(a). (5.10)Důkaz. Je možné nalézt v knize [8].Uvažujme posloupnost funkcí P i (x), i = 1,... ,m definovaných následujícímzpůsobemP 1 (x) = P(x),P 2 (x) = −P ′ (x),P j−1 (x) = Q j−1 (x)P j (x) − c j P j+1 (x), j = 2,... ,m − 1,P m−1 = Q m−1 (x)P m (x), (5.11)67


kde c j je libovolné kladné reálné číslo. Polynom P j+1 (x) je záporně vzatý zbytekpo dělení polynomu P j−1 (x) polynomem P j (x). Konstruujeme posloupnostpolynomů zmenšujících se stupňů. Poslední člen posloupnosti P m (x) je různý odnuly a je největším společným dělitelem polynomů P 1 (x) a P 2 (x). Jsou-li všechnyreálné kořeny polynomu P 1 (x) jednoduché, pak P 1 (x) a P 2 (x) nemají společnéreálné kořeny, a tedy P m (x) nemá reálné kořeny a takto vytvořená posloupnost jeSturmovou posloupností.Nemá-li{P (x) konstantní znaménko v intervalu (a,b), můžeme užít posloupnostiPi mP m(x)} . Tato posloupnost je Sturmovou posloupností a hodnota i=1 Ib a jestejná jak pro tuto posloupnost, tak i pro posloupnost definovanou vztahem (5.11).Poznámka 5.12.(i) Má-li P m (x) reálný kořen, pak dělením polynomu P 1 (x) největším společnýmdělitelem P 1 (x) a P 2 (x) dostaneme polynom, který má všechny kořenyjednoduché.(ii) Je-li ¯x l-násobným kořenem polynomu P(x), pak je (l − 1)-násobným kořenemP ′ (x).Příklad 5.13. Určete počet různých reálných kořenů polynomua lokalizujte je.P(x) = x 6 + 4x 5 + 4x 4 − x 2 − 4x − 4Řešení. Užitím vztahů (5.11) posloupnost dostáváme:P(x) = P 1 (x) = x 6 + 4x 5 + 4x 4 − x 2 − 4x − 4,−P ′ (x) = P 2 (x) = −6x 5 − 20x 4 − 16x 3 + 2x + 4,P 3 (x) = 4x 4 + 8x 3 + 3x 2 + 14x + 16,P 4 (x) = −x 3 − 6x 2 − 12x − 8,P 5 (x) = −17x 2 − 58x − 48,P 6 (x) = x + 2.Polynom P 6 (x) je největším společným dělitelem polynomů P(x) a P ′ (x), protox = −2 je dvojnásobným kořenem polynomu P(x). Tento polynom má však šestkořenů (reálné či komplexní). Uspořádejme další výpočty do tabulky.68


Protožex −∞ ∞ 0 − 3 22P 1 (x) + + - + +P 2 (x) + - + - -P 3 (x) + + + - +P 4 (x) + - - - -P 5 (x) - - - + -P 6 (x) - + + + +W(x) 1 4 3 2 4W(∞) − W(−∞) = 4 − 1 = 3,má polynom P(x) tři různé reálné kořeny. Zbývající dva jsou tedy komplexní. DáleW(0) − W(−∞) = 3 − 1 = 2,proto dva 〉 kořeny jsou záporné, jeden je −2 (dvojnásobný) a druhý leží v intervalu〈− 3 2 ,0 , protože(W(0) − W − 3 )= 3 − 2 = 1.2Zbývající kořen je kladný a leží v intervalu 〈0,2〉, protožeW(∞) − W(0) = 4 − 3 = 1 aW(2) − W(0) = 4 − 3 = 1.Příklad 5.14. Určete počet různých reálných kořenů polynomua lokalizujte je.P(x) = x 4 − 5x 3 + x 2 + 21x − 18Řešení. Užitím vztahů (5.11) posloupnost dostáváme:P(x) = P 1 (x) = x 4 − 5x 3 + x 2 + 21x − 18,−P ′ (x) = P 2 (x) = −4x 3 + 15x 2 − 2x − 21,P 3 (x) = 67x 2 − 262x + 183,P 4 (x) = −x + 3.Polynom P 4 (x) je největším společným dělitelem polynomů P(x) a P ′ (x), protox = 3 je dvojnásobným kořenem polynomu P(x). Tento polynom má čtyři kořeny(reálné či komplexní). Uspořádejme další výpočty do tabulky.69


x −∞ ∞ 0 2 −1 −3P 1 (x) + + - + - +P 2 (x) + - - + 0 +P 3 (x) + + + - + +P 4 (x) + - + + + +W(x) 0 3 1 2 1 0ProtožeW(∞) − W(−∞) = 3 − 0 = 3,má polynom P(x) tři různé reálné kořeny (čtvrtý kořen - násobnost). DáleW(∞) − W(0) = 3 − 1 = 2,proto jsou dva kořeny kladné, jeden je 3 (dvojnásobný) a druhý leží v intervalu〈0,2〉, protožeW(2) − W(0) = 2 − 1 = 1.Zbývající kořen je záporný a leží v intervalu 〈−3, −1〉, protožeW(0) − W(−∞) = 1 − 0 = 1 aW(−1) − W(−3) = 1 − 0 = 1.Příklad 5.15. Určete počet různých reálných kořenů polynomuP(x) = 12x 3 + 2x 2 + x − 3a jejich znaménko.Řešení. Užitím vztahů (5.11) dostáváme posloupnost:P(x) = P 1 (x) = 12x 3 + 2x 2 + x − 3,−P ′ (x) = P 2 (x) = −36x 2 − 2x − 1,P 3 (x) = 91x + 43,P 4 (x) = −1.Opět uspořádáme výpočet do tabulky.70


Protožex −∞ ∞ 0P 1 (x) - + -P 2 (x) - - -P 3 (x) - + +P 4 (x) - - -W(x) 0 3 2W(∞) − W(−∞) = 3 − 0 = 3,má polynom P(x) tři různé reálné kořeny. DáleW(∞) − W(0) = 3 − 2 = 1,proto jsou dva kořeny záporné a zbývající je kladný (dvojnásobný).5.5 Kontrolní otázky a cvičeníCvičení 5.1. Dokažte, že je-li funkce kontraktivní v 〈a,b〉, pak je na tomto intervaluspojitá.Cvičení 5.2. Pomocí Věty 5.4 dokažte, že funkce g(x) = 2 −x má jediný pevnýbod v intervalu 〈 1 3 ,1〉. S přesností 10−4 najděte tento bod metodou přímé iterace.Cvičení 5.3. Pro rovnici 3x 2 − e x = 0 určete funkci ϕ(x) a interval 〈a,b〉, nakterém bude metoda prosté iterace konvergovat ke kladnému řešení dané rovnice.Řešení určete s přesností 10 −5 .Cvičení 5.4. Newtonovou metodou aproximujte kořen rovnice s přesností 10 −4 :(i) x − 0,8 − 0,2sin x = 0, x ∈ 〈0, π 2 〉(ii) x 3 + 3x 2 − 1 = 0, x ∈ 〈−4,0〉Cvičení 5.5. Aproximujte kořen rovnice x 3 − x − 1 = 0, x ∈ 〈1,2〉 s přesností10 −5 metodou sečen a tečen.Cvičení 5.6. Newtonovou metodou aproximujte s přesností 10 −4 hodnotu x, kteráurčuje bod na grafu funkce f(x) = x −1 takový, že je nejblíže bodu [2,1].Cvičení 5.7. Funkce f(x) = 4x−7x−2metodu s počáteční aproximací:má kořen v bodě ¯x = 1.75. Užijte Newtonovu71


(i) x 0 = 1,95(ii) x 0 = 3Výsledky graficky interpretujte.Cvičení 5.8. Metodou regula falsi aproximujte hodnotu kořene s přesností 10 −5 :(i) 3x 2 − e x = 0(ii) x 2 + 10cos x = 0Cvičení 5.9. Určete počet různých reálných kořenů polynomu a lokalizujte je:(i) x 3 − 5x 2 + 9x − 5(ii) 8x 3 − 4x 2 − 18x + 9(iii) 8x 3 − 12x 2 − 2x + 35.6 VýsledkyCvičení 5.2. x 0 = 1, x 12 = 0,6412053, |g ′ (x)| ≤ 0,551√Cvičení 5.3. ϕ(x) = 13 ex , 〈0,1〉, x 0 = 0,5, x 14 = 0,91001Cvičení 5.4.(i) x 3 = 0,9643339(ii) x 3 = −0,65270365Cvičení 5.5. Tečny: x 0 = 1, x 4 = 1,324718Sečny: x 0 = 1, x 1 = 2, x 7 = 1,324717Cvičení 5.6. [1,8667604;0,53568738]Cvičení 5.7.(i) x 7 = 1,75(ii) diverguje72


Cvičení 5.8.(i) x 0 = 0, x 1 = 1, x 7 = 0,9100077(ii) x 0 = 1, x 1 = 2, x 7 = 1,96887450Cvičení 5.9.(i) 1 kladný reálný kořen v intervalu 〈0,2〉(ii) 3 různé reálné kořeny, 〈0,1〉, 〈1,2〉, 〈−2, −1〉(iii) 3 různé reálné kořeny, 〈0,1〉, 〈1,2〉, 〈−1,0〉73


6 NUMERICKÉ ŘEŠENÍ SYSTÉMŮ LINEÁRNÍCH ROV-NIC... co by Vám měla přinést tato kapitola:Úloha řešit systém lineárních rovnic se vyskytuje v nejrůznějších technických oblastecha v důsledku toho proniká do velmi mnoha matematických disciplín. Jednáse o jednu z nejčastěji se vyskytujících úloh numerické matematiky. Z teoretickéhohlediska je možné se při řešení této úlohy opřít o známé výsledky z lineární algebry,kde je otázka řešitelnosti soustav lineárních rovnic plně zodpovězena. Při numerickémpřístupu k řešení soustav lineárních rovnic vyvstávají ovšem nové aspekty jakonáročnost výpočtu, podmíněnost úloh nebo vliv zaokrouhlovacích chyb. Také tvarmatice koeficientů má vliv na to, kterou metodu je vhodné, či spíše účelné k řešenípoužít.V této kapitole se seznámíme se dvěma základními přístupy k řešení soustavlineárních rovnic. První z nich je založen na tzv. přímých metodách, které po konečněmnoha krocích dávají řešení. Do této skupiny metod patří např. čtenářidobře známá Gaussova eliminační metoda. Druhou skupinou metod jsou metodyiterační, které dávají řešení jako limitu posloupnosti vektorů.V této kapitole budeme pracovat se systémem lineárních algebraických rovnictvarukde⎛A = ⎜⎝a 11.a n1⎞... a 1n. .. . ⎟⎠ ,... a nnAx = b, (6.1)⎛ ⎞b 1 b = ⎜⎝. ⎟⎠ ,b n⎛x = ⎜⎝⎞x 1. ⎟⎠ .x nPředpokládejme, že A je komplexní (resp. reálná) čtvercová matice řádu n, x jevektor neznámých, b je reálný vektor. Pro úplnost uvádíme tvrzení týkající se řešitelnostisoustavy (6.1), známé též jako základní věta lineární algebry.Věta 6.1. Systém (6.1) má řešení právě tehdy, když hodnost matice A je rovnahodnosti rozšířené matice systému (A|b).Je-li matice A regulární (tj. detA ≠ 0), má systém (6.1) jediné řešení x =A −1 b.Z algebry je známo, že řešení systému (6.1) můžeme nalézt pomocí Cramerova74


pravidlax =( D1D ,..., D ) ⊤n, (6.2)Dkde D = detA je determinant matice A a D j = detA j je determinant maticeA j , která vznikne z matice A tak, že její j-tý sloupec nahradíme sloupcem pravýchstran b.Z numerického hlediska je však Cramerovo pravidlo pro řešení soustavy (6.1)zcela nevhodné. Už pro relativně malé soustavy (o několika desítkách rovnic) byvýpočet trval neúměrně dlouho, protože výpočet determinantů je časově extrémněnáročný.Numerické metody pro řešení systémů lineárních rovnic lze rozdělit do dvouskupin, na metody přímé (konečné) a iterační.Přímými metodami rozumíme ty metody, které vedou k řešení po konečnémpočtu elementárních aritmetických operací. Jejich princip je založen na úpravě výchozímatice soustavy na matici trojúhelníkovou. Takto vzniklý systém lze pakjednoduše řešit. V případě, že by během výpočtu nedocházelo k zaokrouhlování,vedly by tyto metody k přesnému řešení dané soustavy. Přímé metody jsou vhodnějšík řešení systémů, jejichž matice koeficientů je tzv. plná, což znamená, že mávelmi málo nenulových prvků. Matice tohoto typu se vyskytují ve statistice, matematickéfyzice apod. V dalším se budeme zabývat těmito přímými metodami:• metoda LU -rozkladu,• Gaussova eliminační metoda (GEM).Iterační metody vycházejí z nějakého počátečního přiblížení k řešení a konstruujíposloupnost aproximací, která konverguje k přesnému řešení. Iterační metodyjsou vhodné zejména pro systémy s tzv. řídkou maticí. Pod tímto pojmem mámena mysli matici, která má velmi málo nenulových prvků (často jen na hlavní diagonálea na diagonálách s ní sousedících). Matice tohoto typu často vznikají přinumerickém řešení parciálních diferenciálních rovnic. Mezi tyto metody patří:• Jacobiho metoda,• Gauss-Seidlova metoda,• relaxační metoda,• metoda největšího spádu.75


6.1 Metoda LU -rozkladuPrincip metody LU -rozkladu (trojúhelníkový rozklad) spočívá v rozkladu čtvercovématice A řádu n na součin tzv. trojúhelníkových matic. Tento pojem vymezujenásledující definice.Definice 6.2. Jestliže jsou všechny prvky čtvercové matice U ležící pod hlavnídiagonálou rovny nule, nazývá se matice U horní trojúhelníková matice.Jestliže jsou všechny prvky čtvercové matice L ležící nad hlavní diagonálou rovnynule, nazývá se matice L dolní trojúhelníková matice.Základní myšlenka řešení systému (6.1) metodou LU-rozkladu spočívá v řešenídvou systémů s trojúhelníkovou maticí,Nejprve řešíme systémAx = LUx = b.Ly = bs dolní trojúhelníkovou maticí a s pomocným vektorem neznámých y. Poté řešímesoustavuUx = ys horní trojúhelníkovou maticí. Řešením této soustavy obdržíme řešení původníhosystému. Tato metoda nalezne uplatnění zejména, řešíme-li více systémů se stejnoumaticí, ale různými pravými stranami.Z teoretického hlediska je nutné zabývat se otázkou, za jakých podmínek lzenajít rozklad matice A na trojúhelníkové matice. Odpověd’ nám dává následujícívěta.Věta 6.3. Pro každou čtvercovou matici A, která má všechny hlavní subdeterminantyrůzné od nuly, existují dolní trojúhelníková matice L a horní trojúhelníkovámatice U takové, žeA = LU. (6.3)Tento rozklad je určen jednoznačně, jsou-li dány prvky na diagonále matice L neboU.Důkaz. Použijeme matematickou indukci. Dokážeme případ, kdy l ii = 1, provšechna i = 1,2,... ,n. Věta zřejmě platí pro n = 1. Předpokládejme, že platí76


pro n = k − 1. Pro n = k matici A vyjádříme ve tvaru⎛ ⎞A k = ⎝ A k−1 s⎠,r a kkkde s = (a 1k ,a 2k ,... ,a k−1,k ) ⊤ a r = (a k1 ,a k2 ,...,a kk−1 ). Položme⎛ ⎞ ⎛ ⎞L k = ⎝ L k−1 0⎠, U k = ⎝ U k−1 y ⊤⎠ .x 10 u kkPodle předpokladu jsou matice U k−1 ,L k−1 regulární, jednoznačně určené a platíL k−1 U k−1 = A k−1 . Neznámé vektory x,y a prvek a kk určíme tak, aby platiloL k U k = A k . Tedy L k−1 y ⊤ = s, U ⊤ k−1 x⊤ = r ⊤ . Jedná se o dva systémys trojúhelníkovou maticí, které mají jediné řešení x = ¯x, y = ȳ. Z podmínkyxy ⊤ + u kk = a kk plyne, že u kk = a kk − ¯xȳ ⊤ . Tedy matice L k ,U k jsou určenyjednoznačně.Musíme ještě ukázat, že u kk ≠ 0. Platí detL k = 1 · detL k−1 , detU k =u kk · det U k−1 , pak z podmínkydet A k = detL k detU k = u kk · detL k−1 det U k−1 ≠ 0plyne požadovaná nerovnost.⋄Poznámka 6.4. Jsou-li dány diagonální prvky matice L a l ii = 1 pro všechnai = 1,... ,n, tj.⎛⎞1 0 0 ... 0l 21 1 0 ... 0L =l 31 l 32 1 ... 0,.⎜⎝. . . .. . ⎟⎠l n1 l n2 l n3 ... 1hovoříme o Doolittlově rozkladu.Příklad 6.5. Najděte řešení soustavy rovnic pomocí metody LU-rozkladu:x 1 + x 2 − x 3 = 32x 1 − x 2 + 3x 3 = 0−x 1 − 2x 2 + x 3 = −5Řešení.77


(i) Ověříme předpoklad věty 6.3:detA 1 = 1, ⎛ ⎞detA 2 = det ⎝ 1 1 ⎠ = −3,2 −1⎛1 1 −1detA 3 = det A = det ⎜ 2 −1 3⎝−1 −2 1⎞⎟⎠ = 5.(ii) Provedeme LU -rozklad matice A:⎛⎜⎝1 0 0l 21 1 0l 31 l 32 1⎞ ⎛⎟ ⎜⎠ ⎝LU ⎞u 11 u 12 u 130 u 22 u 23 ⎟⎠0 0 u 33= A⎛= ⎜⎝1 1 −12 −1 3−1 −2 1⎞⎟⎠Roznásobíme⎛⎞ ⎛u 11 u 12 u 13⎜ l⎝ 21 u 11 l 21 u 12 + u 22 l 21 u 13 + u 23 ⎟⎠ = ⎜⎝l 31 u 11 l 31 u 12 + l 32 u 22 u 13 l 31 + l 32 u 23 + u 331 1 −12 −1 3−1 −2 1⎞⎟⎠ .Porovnáním koeficientů dostaneme⎛ ⎞1 0 0L = ⎜ 2 1 0 ⎟⎝ ⎠ ,1−131⎛U = ⎜⎝1 1 −10 −3 50 0 − 5 3⎞⎟⎠ .(iii) Řešíme soustavu Ly = b,⎛ ⎞ ⎛1 0 0⎜ 2 1 0 ⎟ ⎜⎝ ⎠ ⎝1−131⎞ ⎛y 1y 2 ⎟⎠ = ⎜⎝y 330−5⎞⎟⎠ .Řešením této soustavy je vektor y = (y 1 ,y 2 ,y 3 ) ⊤ = (3, −6,0) ⊤ .78


(iv) Řešíme soustavu Ux = y,⎛1 1 −1⎜ 0 −3 5⎝0 0 − 5 3⎞ ⎛⎟ ⎜⎠ ⎝⎞ ⎛x 1x 2 ⎟⎠ = ⎜⎝x 33−60⎞⎟⎠ .Řešením této soustavy a tedy i původního systému je vektorx = (x 1 ,x 2 ,x 3 ) ⊤ =(1,2,0) ⊤ .6.2 Gaussova eliminační metodaGaussova eliminační metoda (GEM) je jedna z nejrozšířenějších a nejstarších metodnumerického řešení soustav lineárních algebraických rovnic. Princip Gaussovyeliminace spočívá v tom, že z původního systému Ax = b dostáváme postupněekvivalentní přidružené systémyA (k) x = b (k) ,kde k = 0,1,... ,n − 1, A (0) = A, b (0) = b, které mají totéž řešení.Předpokládejme, že máme vypočtený (k − 1)-ní systém A (k−1) x = b (k−1) .Přechod k systému A (k) x = b (k) je možný právě tehdy, když a (k−1)kk≠ 0. Splněnítohoto předpokladu lze dosáhnout vhodnou výměnou rovnic. Proto tyto prvkynazýváme hlavní prvky (pivoty). Poslední přidružený systém A (n−1) x = b (n−1)je potom trojúhelníkový systém s regulární horní trojúhelníkovou maticí. Takovousoustavu řešíme od poslední rovnice tzv. zpětnou substitucí:x i =b (n−1)i − n ∑k=k+1a (n−1)iia (n−1)ikx k, i = n,n − 1,... ,1.Algoritmus GEM lze zapsat pomocí následujícího cyklu. Pro s od 1 do n − 1proved’ tyto kroky:(i) Urči prvek a (s−1)rs(ii) Vyměň s-tý a r-tý řádek.≠ 0, r = s,s + 1,... ,n.(iii) Pro i = s + 1,s + 2,... ,n odečti násobekl is = a(s−1) isa ss(s−1)s-tého řádku od i-tého řádku. Výsledkem je systém A (s) x = b (s) .79


Prvky l is se nazývají multiplikátory.Příklad 6.6. Gaussovou eliminační metodou řešte systém z příkladu 6.5.Řešení. Sestavíme rozšířenou matici soustavy (A|b),⎛⎞1 1 −1 3((A|b) = A (0) |b (0)) = ⎜ 2 −1 3 0 ⎟⎝⎠ .−1 −2 1 −5jeVedoucí prvek je a (0)11= 1. Eliminujeme a(0) 21l 21 = a(0) 21a (0)11= 2.a to tak, že příslušný multiplikátorPak odečteme první rovnici od druhé. Totéž provedeme pro prvek a (0)31= 3, kdeDostanemel 31 = a(0) 31a (0)11= −1.⎛1 1 −1 3(A (1) |b (1)) = ⎜ 0 −3 5 −6⎝0 −1 0 −2⎞⎟⎠ .a to tak, že příslušný multipli-Dále je vedoucí prvek a (1)22kátor je= −3. Eliminujeme a(1) 32l 32 = a(1) 32a (1) = 1 322a rovnice opět odečteme,⎛⎞2 1 0 3(A (2) |b (2)) = ⎜ 0 3 −2 −4 ⎟⎝⎠ .0 0 1 5Nyní řešíme systém A (2) x = b (2) (zpětný chod), jehož řešením je vektorx = (x 1 ,x 2 ,x 3 ) ⊤ = (0.5,2,5) ⊤ .80


Příklad 6.7. Gaussovou eliminační metodou (se zaokrouhlováním na čtyři číslice)řešte lineární systém:0,003x 1 + 59,14x 2 = 59,175,291x 1 − 6,13x 2 = 46,78Řešení. Zvolíme za vedoucí prvek (pivota) a 11 = 0,003. Eliminujeme prveka 21 = 5,291. Odpovídající multiplikátor jel 21 = 5,2910,003 = 1763,66 . = 1764.První krok GEM vede (vzhledem k zaokrouhlování na 4 čísla) na systém0,003x 1 + 59,14x 2 = 59,17,−104300x 2 = −104400.Řešením tohoto systému je x 2 = 1,001 a x 1 = −10. Tento systém má však přesnéřešení x ∗ = (10,1) ⊤ . Velká chyba při výpočtu x 1 je důsledkem malé chyby 0,001při výpočtu x 2 , která je ovšem při výpočtu x 1 násobena faktorem ≈ 20000.Tento příklad ukazuje obtíže, které se mohou objevit v případě, že pivot a kkje relativně malý vzhledem k ostatním prvkům a ij ,k ≤ i ≤ n,k ≤ j ≤ n.Nejjednodušší postup v tomto případě je vybrat v tomtéž sloupci prvek maximálnív absolutní hodnotě, tj. určit p tak, aby|a pk | = maxi=k,...,n |a ik|a vyměnit p-tou a k-tou rovnici. Tomuto postupu se říká GEM s částečným výběrempivota.Řešení GEM s úplným výběrem pivota se provádí tak, že v každém kroku najdemetakové indexy p a q, aby|a pq | = maxi,j=k,...,n |a ij|,tj. provádíme výběr pivota pro každý řádek a sloupec.81


6.3 Iterační metodyŘešíme-li soustavu lineárních rovnic Ax = b iterační metodou, začínáme s nějakoupočáteční aproximací x (0) řešení x této soustavy a postupně generujeme posloupnostvektorů x (k) , která konverguje k řešení x. Ve většině iteračních technikpostupujeme tak, že systém Ax = b převedeme na systém tvarux = Hx + h,kde H je tzv. iterační matice. Poté, co je zvolena počáteční aproximace, je posloupnostvektorů konvergujících k řešení soustavy dána vztahemx (k) = Hx (k−1) + h. (6.4)Rozdíl mezi iteračními technikami je tedy dán odlišným tvarem iterační maticeH. Pokud jde o využití iteračních metod, zřídka jsou využívány k řešení systémůmalé dimenze, protože v takových případech jsou přímé metody efektivnější. Prorozsáhlé systémy, které mají vysoké procento nulových prvků v matici soustavy,však přinášejí tyto metody značné časové úspory.Pro hlubší pochopení principu uvedených metod, ve vztahu k vlastnostem maticesoustavy, je nutné zavést pojem maticové normy a uvést některé její vlastnosti.Předpokládáme přitom, že pojem vektorové normy je čtenáři známý z lineární algebry.6.3.1 Maticová normaDefinice 6.8. Maticovou normou nazýváme reálnou funkci ‖·‖, která je definovanána množině všech čtvercových matic řádu n a která má takové vlastnosti, že prolibovolné dvě matice A, B a libovolné reálné číslo α platí(i) ‖A‖ ≥ 0, ‖A‖ = 0 právě když A je nulová matice,(ii) ‖αA‖ = |α|‖A‖,(iii) ‖A + B‖ ≤ ‖A‖ + ‖B‖,(iv) ‖AB‖ ≤ ‖A‖ · ‖B‖.Normu matice je možné zavést pomocí vektorové normy, jak ukazuje tato věta.82


Věta 6.9. Necht’ ‖ · ‖ je vektorová norma v R n , pak je vztahem‖A‖ = max‖x‖=1 ‖Ax‖definována na množině všech čtvercových matic řádu n maticová norma, která senazývá souhlasná s příslušnou vektorovou normou.Důkaz tohoto tvrzení není obtížný, a proto jej ponecháváme čtenáři jako cvičení.Poznámka 6.10. Příklady souhlasných norem:( )1 ( )1n∑(i) ‖x‖ = |x j | 2 2n∑a ‖A‖ = |a ij | 2 2.j=1i,j=1∑(ii) ‖x‖ 1 = n n∑|x j | a ‖A‖ 1 = max |a ij |, kde ‖A‖ 1 se nazývá sloupcovánorma.j=1j=1,...,n i=1(iii) ‖x‖ ∞ = max j|j=1,...,nan∑‖A‖ ∞ = max |a ij |, kde ‖A‖ ∞ se nazývái=1,...,n j=1řádková norma.Další pojem, který budeme potřebovat, je tzv. spektrální poloměr matice, úzcesouvisí s pojmem vlastní hodnota matice.Definice 6.11. Spektrální poloměr ρ(A) matice A je definován vztahemkde λ je vlastní hodnota matice A.ρ(A) = max |λ|,Následující věta udává užitečný vztah mezi přirozenou maticovou normou a spektrálnímpoloměrem matice.Věta 6.12. Je-li A reálná matice typu n × n, potomρ(A) ≤ ‖A‖,pro libovolnou souhlasnou maticovou normu ‖ · ‖.83


Důkaz. Předpokládejme, že λ je vlastní hodnota matice a k ní příslušný vlastnívektor x má vlastnost ‖x‖ = 1. Tím jsme neučinili žádný předpoklad, který bybyl újmou na obecnosti, protože ke každé vlastní hodnotě matice existuje vlastnívektor s touto vlastností (lze jej získat normováním). Protože (A − λE)x = 0, tj.Ax = λx, dostáváme pro libovolnou souhlasnou maticovou normuVe výsledku dostáváme|λ| = ‖λx‖ = ‖Ax‖ ≤ ‖A‖‖x‖ = ‖A‖.ρ(A) = max |λ| ≤ ‖A‖.⋄K tomu, abychom mohli dokázat následující větu, budeme potřebovat pomocnétvrzení, které uvádíme bez důkazu. Ten je možné nalézt v [1].Lemma 6.13.(i) Jestliže pro spektrální poloměr matice A platí ρ(A) < 1, pak existuje inverznímatice k matici E − A a platí(E − A) −1 = E + A + A 2 + · · · .(ii) ρ(A) < 1 právě tehdy, když lim k→∞ A k x = 0 pro libovolné x.Nyní můžeme zformulovat klíčovou větu týkající se konvergence iteračních technikdaných vztahemx (k) = Hx (k−1) + h.Věta 6.14. Pro libovolnou počáteční aproximaci x (0) řešení soustavy x = Hx+hkonverguje posloupnost {x (k) } ∞ k=0 daná vztahemx (k) = Hx (k−1) + h.k jedinému řešení soustavy x = Hx + h právě tehdy když ρ(H) < 1.Důkaz. Ze vztahu (6.4) dostávámex (k)= Hx (k−1) + h= H(Hx (k−2) + h) + h84


= H 2 x (k−2) + (H + E)h.= H k x (0) + (H k−1 + ...H + E)h.Z předpokladu ρ(H) < 1 dostáváme využitím předchozího lemmatulimk→∞ x(k) = limk→∞ Hk x (0) + limk→∞ (Hk−1 + ... H + E)h= 0 · x (0) + (E − H) −1 h = (E − H) −1 h.Dosazením do (6.4) lze ověřit, že x = lim k→∞ x (k) = (E − A) −1 h je řešenírovnice x = Hx + h. Jeho jednoznačnost je zřejmá.Pro důkaz opačné implikace vycházíme z předpokladu, že posloupnost {x (k) } ∞ k=0konverguje k řešení x pro každé x (0) . Z rovnice (6.4) vyplývá, že x = Hx + h,takže pro každé k platíOdtud mámex − x (k) = T(x − x (k−1) ) = · · · = T k (x − x (0) ).lim T k (x − x (0) ) = lim (x −k→∞ k→∞ x(k) ) = 0.Důsledkem předcházejících úvah je, že položíme-li x (0) = x−z, kde z je libovolné,dostávámelim T k z = lim T k (x − (x − z)) = 0,k→∞ k→∞což podle předcházejícího lemmatu znamená, že ρ(H) < 1.6.3.2 Jacobiova a Gaussova-Seidelova metodaV tomto odstavci se seznámíme se dvěma nejpoužívanějšími iteračními metodamipro řešení systému lineárních rovnic. Už v předcházejícím odstavci jsme uvedli,že dané iterační techniky se liší tvarem iterační matice H ve vztahu (6.4). Odvodímenejdříve tvar iterační matice pro Jacobiovu metodu. Předpokládejme opět, žematice A je regulární a zapišme ji ve tvaruA = D + L + U, (6.5)kde D je diagonální matice, L je dolní trojúhelníková matice s nulovou diagonáloua U je horní trojúhelníková matice s nulovou diagonálou. Předpokládejme, že D⋄85


je regulární. Pokud má hlavní diagonála matice A nulový prvek, pak regularitu Ddostaneme přerovnáním řádků matice A. Soustavu (6.1) pak zapíšeme ve tvaru:(D + L + U)x = bDx = −(L + U)x + bx = −D −1 (L + U)x + D −1 b.Označíme-li ve vztahu (6.4) H = −D −1 (L + U) a h = D −1 b, získáme vztahy,kterými je určena Jacobiova iterační metoda, někdy také nazývaná metoda postupnýchaproximací.Modifikací Jacobiovy metody dostaneme tzv. Gauss-Seidelovu metodu. Při výpočtu(k + 1)-ní iterace neznámé x j (j-tá složka vektoru x (k+1) ) použijeme užznámé (spočítané) hodnoty (předchozí složky) x (k+1)1 ,x (k+1)2 ,... ,x (k+1)j−1 . Protose tato metoda někdy též nazývá metoda postupných oprav. Popišme tuto metodupodrobněji.Označme j-tou složku vektoru x (k) symbolem x (k)j a napišme soustavu (6.1)ve tvaru ∑ nj=i a ij x j = b i , kde i = 1,... ,n. Abychom určili x (k+1)1 , použijemeprvní rovnici tvaru⎛x (k+1)1 = − 1 ⎝a 11n∑j=2x (k+1)2 = − 1a 22⎛⎝a 21 x (k+1)a 1j x (k)jn∑1 +j=3− b 1⎞⎠. (6.6)Abychom vypočetli x (k+1)2 , použijeme druhou rovnici, ale x (k)1 nahradíme hodnotoux (k+1)1 , kterou jsme vypočetli z rovnice (6.6), tedy⎞a 2j x (i)j − b 2⎠ .Obecně⎛x (k+1)r = − 1a rrr−1 ∑⎝j=1n∑j +j=r+1a rj x (k+1)a rj x (i)j− b r⎞⎠ ,r = 1,... ,n.Zapíšeme-li A ve tvaru (6.5), pakx (k+1) = −D(Lx (k+1) + Ux (k) ) + D −1 b.Tuto rovnici můžeme rozřešit vzhledem k x (k+1) . Tedyx (k+1) = −(D + L) −1 Ux (k) + (D + L) −1 b. (6.7)86


Označíme-li ve vztahu (6.4)H = −(D + L) −1 U a h = (D + L) −1 ,dostáváme Gauss-Seidelův iterační vzorec.Obecně jsme se otázkou konvergence iteračních metod zabývali v minulémodstavci. Nyní uvedem vztahy udávající odhad chyby při použití iteračních metod.Následující tvrzení je důsledkem věty 6.14.Důsledek 6.15. Je-li ‖H‖ < 1. Pak pro odhad chyby iterační metody dané vztahem(6.4) platí‖x (k) − x‖ ≤‖H‖1 − ‖H‖ · ‖x(k) − x (k−1) ‖,kde ‖H‖ je maticová norma přiřazená (souhlasná) s vektorovou normou ‖x‖.Jak víme z předchozího odstavce, nutnou a postačující podmínkou pro konvergenciiteračních metod je, aby spektrální poloměr iterační matice, resp. její norma,byl menší než 1. V praxi však může být výpočet těchto veličin značně komplikovanouzáležitostí. Uvedeme proto jiná kritéria, která jsou snadněji ověřitelná. První znich je založeno na dominanci diagonály matice soustavy Ax = b.Definice 6.16. Matice A typu n × n se nazývá diagonálně dominantní, když platí|a ii | >pro každé i,j = 1,... ,n.n∑|a ik | nebo |a jj | >k=1k≠in∑|a kj |k=1k≠jLze poměrně snadno ukázat, obzvlášt’ pro Jacobiovu metodu, že platí následujícívětaVěta 6.17. Necht’ je matice systému (6.1) diagonálně dominantní. Potom Jacobiovaa Gauss-Seidelova metoda konvergují pro každou počáteční iteraci x (0) .Důkaz. Nastíníme pouze myšlenku a podrobný důkaz přenecháváme čtenáři jakocvičení. Je nutné analyzovat tvar iterační matice H, která je tvořena maticemi L,D a U v závislosti na použité metodě. Je-li např. pro Jacobiovu metodu H =−D −1 (L + U), lze snadno nahlédnout, že ‖H‖ ∞ < 1 právě na základě skutečnosti,že prvky na diagonále matice D převyšují v součtu prvky ležící v řádcích či87


sloupcích matice L + U.⋄V případě Gaussovy-Seidelovy metody je možné zformulovat další kritériumkonvergence.Věta 6.18. Je-li matice A symetrická a pozitivně definitní, tak Gauss-Seidelovametoda konverguje pro každé x (0) .Poznámka 6.19. Mohlo by se zdát, že Gaussova-Seidelova metoda je nadřazenáJacobiově metodě. Už jen proto, že vznikla modifikací Jacobiovy metody, kteráobnáší jisté vylepšení. Ačkoli ve "většině" případů tomu tak skutečně je, neplatítoto tvrzení obecně. Je možné sestrojit příklady systémů rovnic, kdy Jacobiovametoda konverguje a Gaussova-Seidelova diverguje. Toto ovšem platí také naopak.Obecně také není známo, kterou metodu je vhodnější použít, i když v některýchspeciálních případech odpověd’ známe. Např. pro symetrickou pozitivně definitnímatici A je, v případě konvergence obou metod, vhodnější Gaussova-Seidelovametoda, která pro tyto matice konverguje dvakrát rychleji.Příklad 6.20. S přesností ˆε = 10 −3 řešte Jacobiho a Gauss-Seidlovou metodousystém10x 1 − 3x 2 + 4x 3 = 5s počáteční aproximací x (0) = (1,1,1) ⊤ .Řešení.2x 1 + 12x 2 − 8x 3 = 34x 1 + 3x 2 − 16x 3 = −1(i) Nejprve oveříme, zda je matice systému diagonálně dominantní. Tato maticeje řádkově i sloupcově diagonálně dominantní.(ii) Jacobiova metoda.Matici soustavy A rozepíšeme ve tvaru A = D − (L + U), kde⎛⎞⎛ ⎞10 0 00 −3 4D = ⎜ 0 12 0 ⎟⎝⎠ a L + U = ⎜ 2 0 −8 ⎟⎝ ⎠ .0 0 −164 3 0Určíme matici H = −D −1 (L+U) a vektor h = D −1 b. Dostaneme iteračnírovnici⎛⎞ ⎛ ⎞30 10− 4 10x (k+1) = ⎜ − 1 2⎝ 60 ⎟3 ⎠ x(i) + ⎜ ⎟⎝ ⎠ .143160881214116


Výpočet uspořádáme do tabulky:i (x (i) ) ⊤ ‖x (i) − x (i−1) ‖0 (1,1,1)1 (0,4, 0,75, 0,5) 0,7458972 (0,525, 0,516667, 0,303125) 0,08781423 (0,53375, 0,364583, 0,290625) 0,04621524 (0,493125, 0,354792, 0,264297) 0,04621525 (0,500719, 0,34401, 0,252305) 0,004682346 (0,502281, 0,33475, 0,252182) 0,003643717 (0,499552, 0,334408, 0,250836) 0,002788078 (0,499988, 0,333965, 0,25009) 0,000179792Přibližná hodnota řešení s danou přesností jex (8) = (0,499988, 0,333965, 0,25009) ⊤ .( ⊤Poznamenejme, že přesné řešení má hodnotu x = 12 , 1 3 4) , 1 .(iii) Gaussova-Seidelovou metoda.Iterační předpis má tvar:x (k+1)1 = − 1 10x (k+1)2 = − 1 12x (k+1)3 =116Výpočet uspořádáme do tabulky:(−3x (i) )2 + 4x(i) 3(− 5 2x (k+1)1 − 8x (i) )3(− 3 4x (k+1)1 + 3x (k+1) )2 + 1i (x (i) ) ⊤ ‖x (i) − x (i−1) ‖0 (1,1,1)1 (0,4, 0.85, 0,321875) 0,7390232 (0,62625, 0,360208, 0,286602) 0,2158023 (0,493422, 0,358831, 0,253136) 0,1166944 (0,506395, 0,334358, 0,251791) 0,003546685 (0,499591, 0,334595, 0,250134) 0,005746076 (0,500325, 0,333369, 0,250088) 0,000083675189


Přibližná hodnota je x (6) = (0.500325,0.333369,0.250088) ⊤ .6.4 Kontrolní otázky a cvičeníCvičení 6.1. Rozhodněte. zda jsou následující výroky pravdivé.(i) Jacobiho metoda je vždy konvergentní.(ii) Výběr pivota urychluje konvergenci Gaussovy eliminace.(iii) Konvergence Gauss-Seidlovy metody závisí jen na počáteční aproximacix (0) .(iv) Platí-li u Jacobiovy a Gauss-Seidelovy metody x (k) = x (k+1) , pak jsmenalezli přesné řešení.Cvičení 6.2. Metodou LU-rozkladu řešte následující systémy:(i)(ii)2x 1 + x 2 + 3x 3 = 2x 1 − 2x 2 + 5x 3 = 03x 1 + 2x 2 + x 3 = 1x 1 + x 2 − x 3 = 32x 1 − x 2 + 3x 3 = 0-x 1 − 2x 2 + x 3 = -5Cvičení 6.3. Gaussovou eliminační metodou bez výběru pivota a se zaokrouhlovánímna dvě číslice řešete lineární systémy: (Přesné řešení systémů je: x =(1, −1,3) ⊤ )(i)(ii)4x 1 − x 2 + x 3 = 82x 1 + 5x 2 + 2x 3 = 3x 1 + 2x 2 + 4x 3 = 112x 1 + 4x 2 − x 3 = -5x 1 + x 2 − 3x 3 = -94x 1 + x 2 + 2x 3 = 990


Cvičení 6.4. Se zaokrouhlováním na 3 číslice řešte systém0,03x 1 + 58,9x 2 = 59,25,31x 1 − 6,10x 2 = 47,0(i) Gaussovou eliminační metodou se zpětnou substitucí,(ii) Gaussovou eliminační metodou s výběrem pivota.Cvičení 6.5. Se zaokrouhlováním na 3 číslice řešte systém0,832x 1 + 0,448x 2 + 0,193x 3 = 1,000,784x 1 + 0,421x 2 − 0,207x 3 = 0,000,784x 1 − 0,421x 2 + 0,279x 3 = 0,00(i) Gaussovou eliminační metodou se zpětnou substitucí,(ii) Gaussovou eliminační metodou s výběrem pivota.Cvičení 6.6. Určete první dvě iterace Jacobiovy a Gauss-Seidelovy metody propočáteční aproximaci x (0) = 0:(i)(ii)2x 1 − x 2 + x 3 = -13x 1 + 3x 2 + 9x 3 = 03x 1 + 3x 2 + 5x 3 = 42x 2 + 4x 3 = 0x 1 − x 2 − x 3 = 0,375x 1 − x 2 + 2x 3 = 0Cvičení 6.7. Upravte matici soustavy tak, aby byla zaručena konvergence Gauss-Seidelovy metody:2x 1 − x 2 = -33x 1 + x 3 = -6-2x 1 + 2x 2 + 4x 3 = 291


6.5 VýsledkyCvičení 6.1.(i) Ne(ii) Ne(iii) Ne(iv) AnoCvičení 6.2.(i) y =(2, −1, − 11 5) ⊤, ( ) ⊤x = − 1314 , 3 2 , 1114(ii) y = (3, −6,0) ⊤ , x = (1,2,0) ⊤Cvičení 6.3.(i) x = (1,1, −0,95, 2,8) ⊤(ii) x = (1, −1,3) ⊤Cvičení 6.4.(i) x = (30,0, 0,990) ⊤(ii) x = (10,0, 1,00) ⊤Cvičení 6.5.(i) Jacobiho metoda: x (2) = (−0,9, −1,9, 1,1) ⊤Gauss-Seidlova metoda: x (2) = (−0,65, −1,75, 1,89) ⊤(ii) Metody nelze aplikovat.Cvičení 6.6. Podmínky konvergence nejsou splněny. Soustavu můžeme vynásobitmaticí A ⊤ . Tím získáme soustavu, jejíž matice je symetrická a pozitivně definitní.Tedy Gauss-Seidlova metoda konverguje.17x 1 − 6x 2 − 5x 3 = -28-6x 1 + 5x 2 + 8x 3 = 7-5x 1 + 8x 2 + 17x 3 = 292


7 NUMERICKÉ INTEGROVÁNÍ... co by Vám měla přinést tato kapitola:V praktických úlohách může před námi často vyvstat potřeba alespoň přibližnéhovyjádření hodnoty nějakého určitého integrálu. Mohou k tomu vést dva důvody.Prvním z nich je, že primitivní funkci nejsme schopni vyjádřit explicitně. Ale i vpřípadech, kdy je možné získat explicitní tvar primitivní funkce, může být výslednáfunkce vyjádřena složitými výrazy. V těchto a podobných případech určujeme danýurčitý integrál přibližnými metodami.Obsah této kapitoly úzce souvisí s kapitolou o interpolaci. Metody, se kterýmise v ní seznámíme, jsou totiž založeny na nahrazení integrované funkce Lagrangeovýminterpolačním polynomem. Obecně nesou tyto metody název Newtonovy-Cotesovy vzorce, přičemž náplní kapitoly je pojednat o nejužívanějších z nich, kterýmijsou obdélníkové, lichoběžníkové a Simpsonovo (parabolické) pravidlo.V této kapitole se budeme zabývat numerickými metodami výpočtu určitého integrálu∫bf(x) dx,akde a < b jsou reálná čísla, přičemž integrál vždy chápeme v Riemannově smyslu.Numerickým integrováním rozumíme tedy proces výpočtu bez použití primitivnífunkce. V případě, že máme funkci f(x) danou tabulkou, ztrácí pojem primitivnífunkce smysl. I když známe analytický předpis pro funkci f(x), může být výpočetprimitivní funkce velmi složitý nebo zcela nemožný, např.∫ bae −x2 dx nebo∫ balog xxZ definice určitého integrálu vyplývá, že za přibližnou hodnotu můžeme vzítněkterou hodnotu integrálního součtu pro dostatečně jemné dělení intervalu 〈a,b〉(numerická kvadratura).Druhý způsob je založený na aproximování integrandu f(x) vhodnou funkcí,např. interpolačním polynomem, kterou umíme integrovat.V praxi se velmi často kloubí oba tyto způsoby. Mezi metody využívající tentopřístup patří Newtonovy-Cotesovy kvadraturní vzorce. Tyto vzorce dělíme do dvouskupin:(i) uzavřeného typu, kde krajní body intervalů bereme za uzlové body kvadratury,93dx.


(ii) uzavřeného typu, kde uzlové body kvadratury jsou symetricky rozloženy kolemstředu daného intervalu.My se budeme zabývat Newtonovými-Cotesovými vzorci uzavřeného typu stupněk = 0,1,2.7.1 Newtonovy-Cotesovy vzorce uzavřeného typuNecht’ je interval 〈a,b〉 rozdělen na ekvidistantní uzly, tj.a = x 0 < x 1 < ... < x n = b,tedy krok h = (b − a)/n. Na každém podintervalu 〈x i−1 ,x i 〉, i = 1,... ,n, nahradímeintegrand f(x) Lagrangeovým polynomem L i,k stupně k, tedy∫ x ix i−1f(x) dx ≈∫ x ix i−1L i,k (x) dx.Takto získáme jednoduchý Newtonův-Cotesův vzorec stupněk. Pak na celém intervalu〈a,b〉 platí složený Newtonův-Cotesův vzorec stupněk, tj.∫ baf(x) dx =n∑i=1∫ x ix i−1f(x) dx ≈n∑i=1∫ x ix i−1L i,k (x) dx.K vyjádření chyby integrace R k (f) na intervalu 〈x i−1 ,x i 〉 je potřeba znát vztahpro chybu interpolace. Za předpokladu, že funkce f(x) je (k + 1)-krát diferencovatelná,mámeR i,k (f) ==∫ x ix i−1f(x) dx −∫ x if (k+1) (η i )(k + 1)!x i−1∫ x ix i−1L i,k (x) dx(x − t 0 )(x − t 1 )... (x − t k ) dx, (7.1)kde η i ∈ 〈x i−1 ,x i 〉, t 0 = x i−1 ,t 1 = x i−1 +l,... ,t k = x i−1 +kl = x i , jsou vnitřníuzlové body intervalu 〈x i−1 ,x i 〉 potřebné pro konstrukci Lagrangeova polynomuL i,k (x). Tedy l = x i−x i−1k. Dále je potřeba provést netriviální úvahy zvlášt’ pro ksudé, resp. liché, jejichž výsledkem je následující věta.94


Věta 7.1. Existuje číslo η i ∈ 〈x i−1 ,x i 〉 takové, že pro chybu jednoduchého Newtonova-Cotesova vzorce k-tého stupně platíR i,k (f) = f(k+1) (η i )(k + 1)!pro k liché a pro k sudé platíR i,k (f) = f(k+2) (η i )(k + 2)!∫ x ix i−1(x − t 0 )(x − t 1 )... (x − t k ) dx, (7.2)∫ x ix i−1(x − t 0 ) 2 (x − t 1 )... (x − t k ) dx. (7.3)Při praktických výpočtech (odhadu chyby) ohraničíme číslo f (m) (η i ) hodnotouM i,m =maxx∈〈x i−1 ,x i 〉 |f(m) (x)|,kde m = k + 1, resp. m = k + 2.Protože složený vzorec je součtem jednoduchých vzorců, je celková chyba integraceR k (f) součtem dílčích chyb, tj.n∑R k (f) = R i,k (f). (7.4)i=1Je-li funkce f (m) (x) spojitá na intervalu 〈a,b〉, pak existuje bod η ∈ 〈a,b〉 takový,žen∑f (m) (η i ) = nf (m) (η). (7.5)i=1Tohoto využijeme pro odvození celkové chyby integrace pro jednotlivé metody,přičemž f (m) (η) při praktických výpočtech (zejména odhadů) nahrazujeme číslemM m = maxx∈〈a,b〉 |f(m) (x)|. (7.6)Poznámka 7.2. Numerický výpočet neurčitého integrálu ∫ f(x) dx spočívá vnalezení funkce g(x) = ∫ xx 0f(t) dt. Tato úloha je ekvivalentní s Cauchyho počátečnímproblémem g ′ = f(x), g(x 0 ) = 0. Metodám numerického řešení diferenciálníchrovnic se budeme věnovat v další kapitole.95


7.2 Obdélníková metodaFunkci f(x) nahradíme na každém podintervalu polynomem 0-tého stupně (konstantou).Jedná se tedy o uzavřený Newtonův-Cotesův vzorec prok = 0.Na podintervalu 〈x i−1 ,x i 〉 nahradíme integrand f(x) polynomemtedy∫ x ix i−1f(x) dx ≈∫ x iL i,0 = f(x i−1 ),x i−1f(x i−1 ) dx = f(x i−1 )(x i − x i−1 ) = hf(x i−1 ). (7.7)Dostáváme tak jednoduché (elementární) obdélníkové pravidlo. Určitý integrál jepřibližně roven obsahu obdelníku, viz obrázek.f(x)x ix i+1Na celém intervalu 〈a,b〉 pak platí,∫ baf(x) dx ≈n∑∫ x in∑∫ x iL i,0 (x) dx = f(x i−1 )i=1x i−1i=1x i−1=n∑n∑f(x i−1 )(x i − x i−1 ) = h f(x i−1 ). (7.8)i=1i=1Vztah (7.8) nazýváme složené obdélníkové pravidlo (viz. následující obrázek).f(x)a= 0...x x1x 2 x n-2 xn-1x=b n96


K odvození chyby integrace využijeme vztahů (7.1), (7.4) a (7.5). Ve výpočtupoužijeme substituciPlatíR 0 (f) ==h = (b − a)/n,x = x i−1 + th, kde t ∈ 〈0,1〉,dx = h dt.∫bn∑n∑∫ x if(x) dx − h f(x i−1 ) = f ′ (η i ) (x − x i−1 ) dxai=1 i=1 x i−1n∑i=1Pro odhad chyby platí∫1f ′ (η i )h 2kde podle (7.6) je M 1 = maxx∈〈a,b〉 |f ′ (x)|.7.3 Lichoběžníková metoda0t dt = nf ′ (η)h 2 1 2 .|R 0 (f)| ≤ M 1 n h22 = M (b − a) 21 ,2nU lichoběžníkové metody (Newtonova-Cotesova vzorce 1. stupně) nahradíme nakaždém podintervalu 〈x i−1 ,x i 〉 integrand f(x) Lagrangeovým polynomemL i,1 (x) = f(x i−1 ) x − x ix i−1 − x i+ f(x i ) x − x i−1x i − x i−1,i = 1,... ,n.Nejprve na intervalu 〈x i−1 ,x i 〉 odvodíme jednoduché lichoběžníkové pravidlo.OznačmePakh = x i − x i−1 . (7.9)∫ x ix i−1f(x) dx ≈∫ x ix i−1L i,1 (x) dx == f(x i−1)−h∫ x i∫ x if(x i−1 ) x − x i−h + f(x i) x − x i−1hx i−1(x − x i ) dx + f(x i)hx i−1∫ x ix i−1(x − x i−1 ) dx.dx97


Zavedeme substitucix = x i−1 + th, kde t ∈ 〈0,1〉,dx = h dt. (7.10)Tedy∫ x ix i−1f(x) dx ≈f(x i−1)−h= f(x i−1)−h∫10∫ 10= −f(x i−1 )h= −f(x i−1 )h(x i−1 + th − x i )hdt + f(x i)hh 2 (t − 1) dt + f(x i)h∫ 10[t2(t − 1) dt + f(x i )h2 − t ] 10= h 2 (f(x i−1) + f(x i )).Na celém intervalu 〈a,b〉 platí∫ bakde a = x 0 ,b = x n .f(x) dx ==n∑i=1n∑i=1∫ x i+ f(x i )hx i−1f(x) dx ≈∫ 10∫ 10[ ]t2 120n∑i=1h2 (f(x i−1) + f(x i ))= h n−12 [f(a) + 2 ∑i=2∫ x i∫10th 2 dtt dtx i−1L i,1 (x) dx(x i−1 + th − x i−1 )hdtf(x i ) + f(b)], (7.11)Vztah (7.2) pro chybu integrace má pro jednoduché lichoběžníkové pravidlotvarR i,1 (f) =f ′′ (η)2∫ x ix i−1(x − x i−1 )(x − x i ) dx98


= f ′′ (η)2= f ′′ (η)2∫th 30h 3 (−16t(t − 1) dt)= − 1 12 h3 f ′′ (η),přičemž jsme využili označení (7.9) a substituce (7.10). Chybu integrace lze tedyodhadnout takto|R i,1 (f)| ≤ 112 h3 M 2 .Potom odhad chyby pro složené lichoběžníkové pravidlo jePříklad 7.3.a odhadněte chybu.|R 1 (f)| ≤ n h312 ¯M 2 = ¯M 212n 2 (b − a)3 .Řešte pomocí složeného lichoběžníkového pravidla∫ 30x √ 1 + x 2 dx, pro n = 6Nejprve spočteme krok h = b−an= 3−06= 1 2. Pak určíme uzly a spočtemefunkční hodnoty v uzlových bodech. Výpočet uspořádáme do tabulky:Nyní již můžeme dosadit do (7.11),∫30i x i x i√1 + x 2 i f(x i )0 0 0√1 112 21 + 1 14 4√52 1 1 √ √1 + 1 2√3 332 21 + 9 34 4√134 2 2 √ 1 + 4 2 √ 5√5 552 21 + 25 54 4√296 3 3 √ 1 + 3 2 3 √ 10x √ 1 + x 2 dx ≈ h n−12 (f(x ∑0) + 2 f(x i ) + f(x n )i=2= 1 ( 1 √ √ 3√ √ 5√ √)5 + 2 2 + 13 + 4 5 + 29 + 3 104 2 2 2.= 10,312202.99


Pro odhad chyby musíme spočítat druhou derivaci funkce f(x) = x √ 1 + x 2 anajít její maximum na intervalu 〈0,3〉.af ′′ (x) = 3x(1 + x 2 ) −1 2 − x 3 (1 + x 2 ) −3 2 =max f ′′ (x) = f ′′ (3) = 63 √10 < 2x∈〈0,3〉 100Odhad chyby je| ¯R 1 (f)| ≤ 212 · 6 2(3 − 0)2 = 0,125.Spočteme-li integrál analyticky, dostaneme( )x√ 3 − x21 + x 2 1 + x 2∫ 30x √ 1 + x 2 dx =[ 13√(1 + x 2 ) 3 ] 30.= 10,20759.Vidíme, že analytický výsledek leží v intervalu7.4 Simpsonova metoda(10,312202 − 0,125, 10,312202 + 0,125).Simpsonova metoda nebo-li metoda parabol spočívá v nahrazení integrandu f(x)na každém podintervalu polynomem druhého stupně.Nejprve odvod’me jednoduché Simpsonovo pravidlo. Pro jednoduchost označmetento podinterval 〈c,d〉. K sestrojení interpolačního polynomu druhého stupně jetřeba znát tři body. Proto jako třetí bod vezmeme střed s intervalu 〈c,d〉. Označmepakc = t 0 , s = t 1 , d = t 2 ,∫dcf(x) dx ≈=∫dcd=t ∫ 2L 2 (x) dx =f(t 0 ) (x − t 1)(x − t 2 )(t 0 − t 1 )(t 0 − t 2 ) dx + f(t 1) (x − t 0)(x − t 2 )(t 1 − t 0 )(t 1 − t 2 ) dxc=t 0+f(t 2 ) (x − t 0)(x − t 1 )(t 2 − t 0 )(t 2 − t 1 ) dx.100


Opět zavedeme substituci o označeníh = t 1 − t 0 ,x = t 0 + th, kde t ∈ 〈0,2〉, (7.12)dx = h dt.Tedy∫ dcf(x) dx ≈∫ 20[f(t0 )2h 2 (t 0 + th − t 1 )(t 0 + th − t 2 )− f(t 1)h 2 (t 0 + th − t 0 )(t 0 + th − t 2 ) ++ f(t ]2)2h 2 (t 0 + th − t 0 )(t 0 + th − t 1 ) h dt ==∫ 20∫2+∫2f(t 0 )2h (th − h)(th − 2h) dt −0= f(t ∫20)h20f(t 2 )(th)(th − h) dt2h∫2(t − 1)(t − 2)dt − hf(t 1 )= h 3 [f(t 0) + 4f(t 1 ) + f(t 2 )].0f(t 1 )(th)(th − 2h) dth0t(t − 2)dt + f(t 2)h2∫20t(t − 1)dtPro odvození složeného Simpsonova pravidla musíme tedy daný interval 〈a,b〉rozdělit na 2n stejných částí. Podintervaly jsou 〈x 2i−2 ,x 2i 〉 se středem s i = x 2i−1 ,i = 1,... ,n a h = b−a2n . Tedy∫ bn∑∫x 2if(x) dx ≈ L i,2 (x) dx = h n∑(f(x 2i−2 ) + 4f(x 2i−1 ) + f(x 2i ))3ai=1x 2i−2i=1= h []n−1 ∑n∑f(x 0 ) + 2 f(x 2i ) + 4 f(x 2i−1 ) + f(x 2n ) (7.13)3i=1 i=1101


K odhadnutí chyby jednoduchého pravidla použijeme vztah (7.3) a substituce(7.12), tedyR 2 (f) =pak pro odhad platíf(4) (η)4!= f(4) (η)24∫ dc∫ 20(x − t 0 ) 2 (x − t 1 )(x − t 2 ) dx =t 2 (t − 1)(t − 2) dt = − 1 90 h5 f (4) (η),|R 2 (f)| ≤ 190 h5 M 4 .Odhad chyby pro složené Simpsonovo pravidlo je|R 2 (f)| ≤ n 90 h5 M 4 = n 90(b − a2n) 5M 4 = M 4(b − a) 52.880 n 4 .Příklad 7.4.Použijte Simpsonova pravidla k výpočtu integrálu∫2π0xsin x dx, pro n = 8.Nejprve spočteme krok h,h = 2π2 · 8 = π 8 .Pak spočteme uzly a funkční hodnoty v těchto bodech. Výsledky uspořádáme dotabulky.102


x 2i f(x 2i ) x 2i−1 f(x 2i−1 )x 0 = 0 0 x 1 = π 80,150279x 2 = π 40,55536 * x 3 = 3 8 π 1,08842x 4 = π 21,570796 * x 5 = 5 8 π 1,814033x 6 = 3 4 π 1,66608 * x 7 = 7 8 π 1,051956x 8 = π 0 * x 9 = 9 8 π −1,352515x 10 = 5 4 π −2,776802 * x 11 = 118 π −3,990873x 12 = 3 2 π −4,712389 * x 13 = 138 π −4,716486x 14 = 7 4 π −3,887523 * x 15 = 158 π −2,254192x 16 = 2π 0V pravé části tabulky jsou funkční hodnoty v uzlových bodech s lichým indexem(středy podintervalů) a ty jsou ve vztahu (7.13) čtyřikrát, hodnoty označenéhvězdičkou dvakrát a funkční hodnoty v koncových bodech jednou, ale ty jsounulové. Tedy∫2π0xsin x dx ≈7.5 Kontrolní otázky a cvičeníCvičení 7.1. Aproximujte integrálπ 7∑24 [2 f(x 2i ) + 4i=18∑f(x 2i−1 )]i=1= π [2(−7,584478) + 4(−8,209378)]24.= −6,284032.π/4 ∫(i) obdélníkovým pravidlem,(ii) lichoběžníkovym pravidlem,(iii) Simpsonovým pravidlem,a odhadněte chybu výpočtu.0sin x dx = 1 −Cvičení 7.2. Následující integrály vypočtěte lichoběžníkovým pravidlem. Výsledkyporovnejte s přesnými hodnotami.103√22


2∫(i) ln x dx,1(ii)(iii)0,1 ∫0Π/3 ∫0x 1/3 dx,(sin x) 2 dx.Cvičení 7.3. Vypočtěte integrály z předcházejícího cvičení pomocí Simpsonovapravidla. Proved’te srovnání výsledků.Cvičení 7.4. Použijte složené lichoběžníkové pravidlo pro výpočet integrálů:(i)(ii)(iii)3∫x √ 1 + x 2 dx,01∫sin Πx dx,01∫x 2 exp x dx,0n=6,n=6,n=8.Získané aproximace porovnejte s přesnými hodnotami.Cvičení 7.5. Vypočtěte integrály z předcházejícího cvičení pomocí Simpsonovapravidla. Proved’te srovnání výsledků.Cvičení 7.6. Uvažujte integrálΠ/4 ∫0tan x dx.(i) Vypočtěte jeho hodnotu pomocí složeného lichoběžníkového pravidla pron = 4 a n = 8.(ii) Odhadněte chybu obou výpočtů a proved’te srovnání vypočtených hodnot spřesnými hodnotami.(iii) Určete hodnotu n, pro kterou bude výsledek dosahovat přesnosti 10 −8 .104


7.6 VýsledkyCvičení 7.1.(i) 0,30055887, chyba 0,00766565,(ii) 0,27768018, chyba 0,01521303,(iii) 0,29293264, chyba 0,00003942.Cvičení 7.2.(i) 0,34657,(ii) 0,023208,(iii) 0,39270.Cvičení 7.3.(i) 0,38583,(ii) 0,032296,(iii) 0,30543.Cvičení 7.4.(i) 10,3122,(ii) 0,62201,(iii) 0,72889.Cvičení 7.5.(i) 10,20751,(ii) -6,284027,(iii) 0,7182830.Cvičení 7.6.(i) 0,3497582; 0,3473746,(ii) 0,0101; 0,0025,(iii) 4019 a větší.105


8 NUMERICKÉ METODY PRO ŘEŠENÍ OBYČEJNÝCHDIFERENCIÁLNÍCH ROVNIC... co by Vám měla přinést tato kapitola:Diferenciální rovnice jsou jedním z nejčastějších matematických prostředků, kterépoužíváme k popisu nejrozmanitějších procesů z oblasti fyziky, biologie, ekonomiea řady dalších oborů. Z velkého množství diferenciálních rovnic, které slouží k popisutěchto procesů, však dovedeme explicitně řešit jen velmi malou část z nich.Jsme proto nuceni velmi často využívat pro řešení diferenciálních rovnic přibližnýchmetod.V této kapitole se budeme nejdříve věnovat těm přibližným metodám, které řadímemezi numerické přibližné metody. Pomocí těchto metod hledáme numerickéřešení jen na zvolené množině bodů v daném intervalu. Interpolací z těchto hodnotpak můžeme najít přibližné hodnoty řešení také pro ostatní body ze zvoleného intervalu.Jedná se o Eulerovu polygonální metodu a metodu Runge-Kuttovu. V závěrukapitoly je pak popsána analytická přibližná metoda, která nese název Picardovametoda postupných aproximací. Jejím zařazením jsme se vlastně dopustili určiténepřesnosti, protože se nejedná o klasickou numerickou metodu. Má však úzkouspojitost s větou o jednoznačnosti řešení, a proto považujeme její zařazení do tétokapitoly za užitečné.8.1 Cauchyho úlohaV tomto odstavci se budeme zabývat numerickými metodami pro obyčejné diferenciálnírovnice 1. řádu s počáteční podmínkou, tj. budeme řešit Cauchyho úlohu.Necht’ G je podmnožina euklidovského prostoru R 2 , bud’ f reálná funkcedefinovaná na G. Cauchyho úloha pro obyčejné diferenciální rovnice 1. řádu mátvary ′ ≡ dydx= f(x,y),y(x 0 ) = y 0 , (8.1)kde [x 0 ,y 0 ] ∈ G.Připomeňme nejprve větu o existenci a jednoznačnosti řešení Cauchyho úlohy.Věta 8.1. Picard-Lindelöfova věta. Necht’ funkce f(x,y) je spojitá na množiněM = {(x,y) : |x − x 0 | ≤ a, |y − y 0 | ≤ b}, kde a,b ∈ R + . Necht’ je funkce106


f(x,y) lipschitzovská vzhledem k y, tzn. že existuje konstanta L > 0 taková, že prokaždé [x,y 1 ],[x,y 2 ] ∈ M platí|f(x,y 1 ) − f(x,y 2 )| ≤ L|y 1 − y 2 |.Pak existuje právě jedno řešení počátečního problému (8.1) definované na intervalu〈x 0 − α,x 0 + α〉, kdepřičemž m = max |f(x,y)|.M{α = min a, b },m8.2 Princip numerických metod pro řešení ODRV tomto odstavci se budeme zabývat principem numerických metod pro obyčejnoudiferenciální rovnici 1. řádu.Při numerickém řešení Cauchyho úlohy na intervalu 〈a,b〉 postupujeme tak, žezvolíme konečnou množinu bodů x i , i = 1,2,... ,n, takových, žea = x 0 < x 1 < x 2 < ... < x n−1 < x n = b.Tuto množinu nazýváme sít’ a její prvky uzly. Krokem sítě v uzlu x i nazveme rozdílh i = x i+1 − x i , i = 0,1,... ,n − 1.Pro ekvidistantní uzly máme tzv. rovnoměrnou (pravidelnou) sít’.Necht’ v každém uzlu najdeme vhodným postupem (numerickou metodou)aproximaci y i přesné hodnoty y(x i ). Množinu hodnot y 0 ,...,y n nazýváme numerickéřešení pro danou sít’.Při konstruování numerických metod vycházíme z přírůstku zobrazeníy i+1 = y i + ∆y i = y i + h i · S(x i ,y i ,h i ), (8.2)kde S(x i ,y i ,h i ) = ∆y ih ije směrnice přímky určená body (x i ,y i ), (x i+1 ,y i+1 ),proto funkci S nazýváme přírůstkové zobrazení nebo směrová funkce.Metodu danou vztahem (8.2) nazýváme jednokroková metoda, protože počítanáhodnota y i+1 závisí jen na y i .Při numerickém řešení se dopouštíme kromě zaokrouhlovacích chyb i chybzpůsobených diskretizací úlohy. Tyto chyby posuzujeme lokálně i globálně.107


Globální (akumulovanou) diskretizační chybou v uzlu x i nazýváme rozdíle i = y(x i ) − y i .Globální chyba je výsledkem diskretizačních chyb z předcházejících kroků. Je totedy celková chyba po i-tém kroku způsobená metodou.Chybu způsobenou diskretizací v jednom kroku nazýváme lokální diskretizačníchyba. Je to nepřesnost, s jakou splňují hodnoty přesného řešení y(x) v uzlech sítěrekurentní vztah (8.2).Necht’ z(x) je přesné řešení úlohypak pro lokální chybu platídydx= f(x,y),y(x i−1 ) = y i−1 ,d i = z(x i ) − y i .iZákladní vlastnost, kterou požadujeme od každé numerické metody je, aby přizmenšování kroku, tj. max(h i ) → 0, posloupnost numerických řešení konvergovalak přesnému řešení. Kvůli jednoduchosti se v dalším omezíme na numerickémetody s konstantním krokem.Říkáme, že numerická metoda je konvergentní, když pro libovolnou počátečníúlohu (8.1) má numerické řešení vlastnostlim y n = y(x)h→0(n→∞)pro všechny x ∈ 〈a,b〉, kde h = (x − x 0 )/n.Rychlost konvergence je pak charakterizována řádem metody.8.3 Eulerova metodaEulerova metoda je nejjednodušší jednokrokovou metodou. (Budeme pracovat sekvidistantními uzly.) Vychází z názorné geometrické představy - aproximace integrálníkřivky (graf řešení y) diferenciální rovnicedydx= f(x,y),lomenou čarou s vrcholy (x i ,y i ), i = 0,1,... ,n. Za směrnici k i úsečky dané body(x i ,y i ), (x i+1 ,y i+1 ) vezmeme tečnu k integrální křivce v bodě (x i ,y i ). Dostávámek i = S(x i ,y i ,h) = y ′ (x i ) = f(x i ,y i )108


a podle (8.2) mámey i+1 = y i + hf(x i ,y i ). (8.3)y 0y(x)yy 4y 321x0x1x2x3x4Vztah (8.3) pro Eulerovu metodu můžeme také získat aproximací hodnoty y i+1Taylorovým polynomem funkce y v bodě x i . Pro dvakrát spojitě diferencovatelnoufunkci y dostávámey i+1 = y i + hy ′ i + 1 2 h2 y ′′ (ξ),kde ξ ∈ 〈x i ,x i+1 〉. Poslední člen zanedbáme, zároveň získáme lokální chybu EulerovymetodyPříklad 8.2.d i = 1 2 h2 y ′′ (ξ) = O(h 2 ).Řešte pomocí Eulerovy metody diferenciální rovnicina intervalu 〈0,1〉 pro n = 4.y ′ = cos x − y,y(0) = 1,Řešení. Nejprve určíme krok h = 1−04= 1 4 a uzly sítě, x 0 = 0, x 1 = x 0 + h =0,25, x 2 = x 1 + h = 0,5, x 3 = 0,75, x 4 = 1. Nyní můžeme podle vztahu (8.3)vypočítat numerické řešení pro danou sít’, tj.y i+1 = y i + 0,25(cos x i − y i ), i = 0,1,2,3.Výpočet uspořádáme do tabulky, přičemž v posledním sloupci jsou hodnoty odpovídajícípřesnému řešení y(x) = 1 2 (cos x + sin x + e−x ):i x i y i y(x i )0 0 1 11 0,25 1 0,9975592 0,5 0,992228 0,9817693 0,75 0,963567 0,9428474 1 0,905597 0,874826109


8.4 Modifikace Eulerovy metodyK dosažení lepších výsledků je nutné použít jinou směrovou funkci, která bude lépevystihovat průběh derivace y ′ (x). Integrujeme-li diferenciální rovnici y ′ = f(x,y)na intervalu 〈x i ,x i+1 〉, dostanemey(x i+1 ) − y(x i ) =x∫i+1f(x,y)dx.Předpokládejme, že y(x i+1 ) ≈ y i+1 a y(x i ) ≈ y i , pak porovnáním se vztahem(8.2) dostávámeS(x i ,y i ,h i ) = 1 x∫i+1h ix ix if(x,y)dx.Použijeme-li k výpočtu určitého integrálu různé numerické metody, získáme různémodifikace.Použijeme-li obdelníkovou metodu (otevřený Newton-Cotesův vzorec), pakS(x i ,y i ,h) = 1 (h hf x i + h (2 ,y x i + h )).2Protože neznáme přesnou hodnotu y(x i + h 2), použijeme Eulerovu metodu k výpočtujejí aproximace,Označme(y x i + h )= y i + h 2 2 f(x i,y i ).k 1 = f(x i ,y i ),(k 2 = f x i + h 2 ,y i + h )2 k 1 ,pak dostaneme modifikovanou Eulerovu metodu ve tvaruy i+1 = y i + hk 2 .Geometrická interpretace (směrová funkce je rovna derivaci ve středu intervalu〈x i ,x i+1 〉):110


y i+1y(x)==y ikk21xixi+h/2x i+1Použijeme-li k integraci lichoběžníkové pravidlo, dostaneme Euler-Cauchyhometodukdey i+1 = y i + 1 2 h(k 1 + k 2 ),k 1 = f(x i ,y i ),8.5 Metody typu Runge-Kuttak 2 = f (x i + h,y i + hk 1 ).Rungovy-Kuttovy metody jsou jedny z nejdůležitějších jednokrokových metod. Dotéto skupiny patří již zmíněná Eulerova metoda i její modifikace. Z výše uvedenýchúvah plyne, že směrovou funkci lze získat jako lineární kombinaci různých směrnicpočítaných ve vhodně zvolených bodech intervalu 〈x i ,x i+1 〉, tj.kdek 1 = f(x i ,y i ),⎛k nS(x i ,y i ,h) = w 1 k 1 + ... + w s k s ,= f ⎝x i + α n h,y i +n−1 ∑j=1β nj k j⎞⎠ , n = 2,... ,s. (8.4)Konstanty w n ,α n ,β nj určujeme tak, že požadujeme rovnost mezi prvními p + 1členy Taylorova rozvoje směrové funkce S(x i ,y i ,h) a prvními p + 1 členy Taylorovarozvoje rozdílu y(x i+1 )−y(x i ). Takto získáme jednokrokovou metodu řádu p.111


Nejčastěji používaná metoda je metoda Runge-Kutta 4. řádu. Pro její jedenkrok platí rekurentní vztahyak 1 = f(x i ,y i ),(k 2 = f x i + h )2 ,y hi + k 1 ,2(k 3 = f x i + h )2 ,y hi + k 2 ,2k 4 = f (x i + h,y i + k 3 h)y i+1S = 1 6 (k 1 + 2k 2 + 2k 3 + k 4 ),= y i + hS.Poznamenejme, že tuto metodu lze získat jako modifikaci Eulerovy metody,x∫i+1použijeme-li k výpočtu určitého integrálu f(x,y)dx Simpsonovo pravidlo.Tato metoda je poměrně přesná. Nevýhodou je, že v každém kroku musímečtyřikrát počítat hodnotu funkce f.x iPříklad 8.3. Řešte Cauchyho úlohu z příkladu 8.2 metodou Runge-Kutta 4. řádu.Řešení. První krok metody provedeme podrobně:k 1 = f(0,1) = 0( ) 1k 2 = f8 ,1 = −0,00780233( ) 1k 3 = f8 , 0,999025 = −0,00682704( ) 1= f4 , 0,998293 = −0,0293808.k 4Tedyy 1 = y 0 + h 1 6 (k 1 + 2k 2 + 2k 3 + k 4 )y 1 = 1 + 0,25 · 1 (−0,2111512 − 2 · 0,00780233 − 2 · 0,00682704 − 0,0293808)6y 1 = 1 − 0,25 · 0,00977326y 1 = 0,997557Zbytek výpočtu zapíšeme do tabulky:112


i x i y i y(x i ) {k 1 ,k 2 ,k 2 ,k 4 }0 0 1 1 {0, -0,00780233, -0,00682704, -0,0293808}1 0,25 0,997557 0,997559 {-0,0286443, -0,0634685, -0,0591155, -0,105195}2 0,5 0,981765 0,981769 {-0,104182, -0,157779, -0,151079, -0,212306}3 0,75 0,94284 0,942847 {-0,211151, -0,275449, -0,267412, -0,335684}4 1 0,874816 0,874826Srováme-li výsledky s Eulerovou metodou, vidíme, že metoda Runge-Kutta dávápřesnější výsledky.8.6 Picardova metoda postupných aproximacíS Picardovou posloupností se setkáváme při důkazu věty o existenci a jednoznačnostiřešení počátečního problémuy ′= f(x,y),y(x 0 ) = y 0 .Těchto aproximací lze také využít k určení přibližného, tj. numerického řešení.Picardova posloupnost je určená vztahem∫xy n (x) = y 0 +x 0f(t,y n−1 (t)) dt. (8.5)Z důkazu věty o existenci a jednoznačnosti dále plyne, že lim n→∞ y n = y(x),kde y(x) je partikulární (přesné) řešení. Omezíme-li se na prvních n členů posloupnosti,dostaneme přibližnou hodnotu y n (x), která je tím přesnější, čím většíje index n.Dále se dá dokázat, že je-li L Lipschitzova konstanta, je-li |f(x,y)| ≤ M naoboru Ω = 〈x 0 + α〉 × 〈y 0 − b,y 0 + b〉, pak pro Lα < 1, α = min{a, b M } platíodhad|y(x) − y k (x)| ≤ Mα(αL)kk!(1 − αL) .Věta 8.4. Funkce f(x,y 1 ,...,y n ) splňuje na (n+1)-uzavřeném oboru Ω Lipschitzovskoupodmínku vzhledem k y 1 ,...,y n , jsou-li na oboru Ω ohraničeny všechny113


parciální derivace podle y i , tj. existuje L > 0 tak, že pro každé P ∈ Ω platí∣ ∂f(P) ∣∣∣∣ ≤ L, i = 1,... ,n.∂y iPříklad 8.5. Řešte Picardovou metodou postupných aproximací diferenciální rovniciy ′ = y 3 , s počáteční podmínkou y(0) = 1, v bodě x = 0,2.Pro jednotlivé aproximace dostaneme vztahy∫x∫xy 1 (x) = y 0 + f(t,y 0 ) dt = 1 +x 0y 2 (x) = y 0 +∫ xx 0f(t,y 1 ) dt = 1 +0∫ x01 3 dt = 1 + x,(1 + t) 3 dt = 1 +[(1 + t)4(1 + x)4= 1 + − 1 (1 + x)4= + 3 4 4 4 4 ,∫x∫x ((1 + t)4y 3 (x) = y 0 + f(t,y 2 ) dt = 1 + + 3 3dt4 4)x 0 0= 1 + 1 ∫ x((1 + t) 4 + 3) 3 dt =S : (1 + t) = z,64∣ dt = dz∣ = ...0= 1 + 1[(1 + t)13+ (1 + t) 9 + 27 ] x64 135 (1 + t)5 + 27(1 + t)0= 1 ((1 + x)13+ (1 + x) 9 + 27 )64 135 (1 + x)5 + 27(1 + x)+ 0,478125.Omezíme-li se na třetí aproximaci, dostaneme y 3 (0.2) . = 1,286606.Pro každé x ∈ 〈0, 0,2〉, pro každé y ∈ 〈 2 3 , 4 3 〉 jea = 0,2, b = 1 3 , ( ) 3|f(x,y)| = |y 3 | ≤ 43 =6427( ) = M,2f y ′ = 3y 2 ≤ 3 43 =16{ } 3 = L,α = min 0,2, 5 364] x0= 5 36 . 114


Tedy pro každé x ∈ 〈0, 0,2〉 je příslušná absolutní chyba|y(x) − y 3 (x)| =( ) 36427 · 5 536 36 · 16 33!(1 − 5 36 · 16 3) ≤ 0,08602.8.7 Kontrolní otázky a cvičeníCvičení 8.1. Eulerovou polygonální metodou aproximujte řešení následujících počátečníchproblémů:(i) y ′ = ( y x )2 + y x; 1 ≤ x ≤ 1,2; y(1) = 1; h = 0,1;(ii) y ′ = sin x + exp (−x); 0 ≤ x ≤ 1; y(0) = 0; h = 0,5;(iii) y ′ = 1 x (y2 + y); 1 ≤ x ≤ 3; y(1) = −2; h = 0,5;(iv) y ′ = −xy + 4x y; 0 ≤ x ≤ 1; y(0) = 1; h = 0,25;Cvičení 8.2. Uvažujte počáteční problémy ′ = 2 x y + x2 exp x ; 1 ≤ x ≤ 2; y(1) = 0; h = 0,1;který má přesné řešení y(x) = x 2 (expx − e):(i) Použijte Eulerovu metodu k aproximaci řešení a obdržené hodnoty srovnejtes přesnými hodnotami.(ii) Na základě odbdržených hodnot proved’te lineární interpolaci hodnot y(1,04);y(1,55); y(1,97).(iii) Vypočtěte velikost kroku h, která zaručuje, že obdržíme výsledky s přesností10 −1 .Cvičení 8.3. Příklady z cvičení 8.1 řešte metodou Runge-Kutta 4.řádu.Cvičení 8.4. Uvažujte počáteční problém daný ve cvičení 8.2.(i) Použijte modifikovanou Eulerovu metodu k aproximaci řešení a obdrženéhodnoty srovnejte s přesnými hodnotami.(ii) Na základě odbdržených hodnot proved’te lineární interpolaci hodnot y(1,04);y(1,55); y(1,97).115


(iii) Použijte Runge-Kuttovu metodu 4. řádu k aproximaci řešení a obdržené hodnotysrovnejte s přesnými hodnotami.(iv) Na základě odbdržených hodnot proved’te po částech kubicko Hermitovuinterpolaci hodnot y(1,04); y(1,55); y(1,97).Cvičení 8.5. Picardovou metodou postupných aproximací řešte počáteční problémy ′ = xy 2 + 1; y(0) = 0.Vypočtěte přibližnou hodnotu řešení v bodě x = 0,5 a určete odhad chyby. Omeztese na druhou aproximaci.8.8 VýsledkyCvičení 8.1.(i)i x i y i1 1,1 1,22 1,2 1,4281(ii)i x i y i1 0,5 0,52 1,0 1,04298(iii)i x i y i1 1,5 −1,02 2,0 −1,03 2,5 −1,04 3,0 −1,0(iv)i x i y i1 0,25 1,00002 0,50 1,18753 0,75 1,46014 1,0 1,7000116


Cvičení 8.2.(i)(ii)i x i y i |y(x i ) − y i |1 1,1 0,271828 0,074095 1,5 3,18744 0,78026 1,6 4,62080 1,1009 1,9 11,7480 2,57510 2,0 15,3982 3,285x aproximace y(x) chyba1,04 0,108731 0,119986 0,011261,55 3,90412 4,78864 0,88451,97 14,3031 17,2793 2,976(iii) h < 0,00064Cvičení 8.3.(i)i x i y i1 1,1 1,214052 1,2 1,46302(ii)i x i y i1 0,5 0,5214892 1,0 1,09531(iii)i x i y i1 1,5 −1,52 2,0 −1,335943 2,5 −1,252464 3,0 −1,20209117


(iv)i x i y i1 0,25 1,0937502 0,50 1,2948513 0,75 1,5114254 1,0 1,692287Cvičení 8.4.(i)i x i y i1 1,1 0,34237715 1,5 3,9364296 1,6 5,6788869 1,9 14,2373810 2,0 18,57879(ii) y(1,04) ≈ 0,1369508, y(1,55) ≈ 4,807658, y(1,97) ≈ 17,27637.(iii)i x i y i1 1,1 0,34590915 1,5 3,9675856 1,6 5,7208549 1,9 14,3228610 2,0 18,68283(iv) y(1,04) ≈ 0,1199692, y(1,55) ≈ 4,788508, y(1,97) ≈ 17,27900.Cvičení 8.5. 0,5156; 0,0509.118


Literatura[1] Burden, R.L., Faires, J.D. Numerical Analysis, PWS-KENT Boston 1985.[2] Děmidovič, B.P., Maron, I.A. Základy numerické matematiky, SNTL Praha1966.[3] Fajmon, B., Růžičková, I. Matematika 3,http://www.umat.feec.vutbr.cz/∼fajmon/bma3/matematika3.pdf.[4] Havel, V., Holenda, J., Lineární algebra, SNTL Praha 1984.[5] Horová, I., Numerické metody, PřF MU Brno 1999.[6] Cheney, W., Kincaid, D. Numerical Mathematics and Computing, Brooks/ColePublish. Company, California 1985.[7] Kubíček, M., Numerické algoritmy řešení chemicko-inženýrských úloh,SNTL Praha 1983.[8] Ralston, A., Základy numerické matematiky, Academia Praha 1978.[9] Riečanová, Z. a kolektív, Numerické metódy a matematická štatistika, AlfaBratislava 1987.[10] Segethová, J., Základy numerické matematiky, Karolinum Praha 1998.[11] Škrášek, J., Tichý, Z., Základy aplikované matematiky I, SNTL Praha 1989.[12] Škrášek, J., Tichý, Z., Základy aplikované matematiky II, SNTL Praha 1986.[13] Škrášek, J., Tichý, Z., Základy aplikované matematiky III, SNTL Praha 1990.[14] Vitásek, E., Numerické metody, SNTL Praha 1987.119

More magazines by this user
Similar magazines