INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Numerická integrace Mgr. Zdeněk Kříž, Ph. D. a Mgr. Veronika Švandová Obsah 1 Numerické metody integrování 2 1.1 Teorie........................................... 2 1.1.1 Obdélníková metoda............................... 3 1.1.2 Lichoběžníková metoda ............................. 3 1.2 Řešené příklady...................................... 5 1.3 Příklady k procvičení................................... 6 1 Numerické metody integrování Doposud jsme řešili příklady související s hledáním hodnot určitého integrálu analytickou formou. V praxi ale můžeme narazit na případ, kdy neznáme analytické vyjádření integrované funkce, ale známe její funkční hodnoty pro některé body v integrovaném intervalu, a nebo má jak integrovaná funkce f(x), tak funkce primitivní velmi komplikovaný tvar. V tomto případě nám pomůže numerická metoda integrace. Tuto metodu můžeme také úspěšně použít v případech, kdy je nalezená primitivní funkce velmi složitá a nelze s ní běžně pracovat. Numerické metody integrace se řadí mezi přibližné metody určení integrálů. Můžeme ale odhadnout chybu výpočtu a také ji ovlivnit, jak si ukážeme dále v této kapitole. 1.1 Teorie Při numerických metodách integrace můžeme vyjít z definice Riemannova integrálu, kdy interval přes který integrujeme rozdělíme na stejné úseky a plochu ohraničenou osou x a grafem funkce f(x) na intervalu < a;b > rozdělíme na obdélníky, u kterých vypočteme obsah plochy. a a+h a+3h b Obrázek 1: Riemannův integrál - dolní součet a a+h a+3h b Obrázek 2: Riemannův integrál - horní součet Při patřičně jemném rozdělení intervalu, v limitním případu se hodnota h blíží 0, získáme dostatečně přesnou hodnotu integrálu, v tomto případě se hodnota horního i dolního součtu rovnají. Rozdělením intervalu na jiné geometrické útvary jako jsou lichoběžníky můžeme získat přesnější hodnotu určitého integrálu při menším počtu výpočtů. Ve zdejším kurzu si společně ukážeme obdélníkovou metodu integrace a lichoběžníkovou metodu. 2 1.1.1 Obdélníková metoda Tato metoda je nejblíže definici určitého integrálu, jak ji známe z předchozího kurzu. Plochu pod křivkou grafu funkce aproximujeme obdélníkem tak, že interval integrace rozpůlíme a výška obdélníka je rovna funkční hodnotě aproximované funkce v půlce zvoleného intervalu f{g4r). Šířku obdélníka h vypočítáme jako rozdíl b — a. Z obrázku je patrné, že tato aproximace je velmi hrubá a celý integrovaný interval bude třeba rozdělit na velký počet podintervalů tak, aby nedocházelo k velkým odchylkám mezi grafem funkce a jeho aproximací. Počet podintervalů, na které musíme rozdělit integrovaný interval, nazýváme dělení a budeme je značit písmenem m. Výsledný určitý integrál je roven součtu m obsahů různých obdélníků o šířce h a výšce f (i) vykonstruovaných na sledovaném intervalu, kde f (i) = AÍ£^+Íi±iÍ£Í Interval < a;b > rozdělíme na m stejných dílků o šířce h. Funkční hodnotu v bodě a označíme /(xq), funkční hodnotu v bodě b označíme f(xm). Body dělení v intervalu označíme /(xi)m, f{x2), f(xm_i). Potom je určitý integrál roven: I dx = h.{J(^±^) + f(^±^) + ... + f(Xm-\+Xm] - h J] f(Xi) Všimněte si, že zde používáme pouze funkční hodnoty ve vybraných bodech a z matematických operací používáme pouze sčítání a násobení. 1.1.2 Lichoběžníková metoda Při této metodě nahradíme každou část plochy integrovaného intervalu lichoběžníkem. Jak ukazuje následující obrázek aproximace lichoběžníkem nebude vyžadovat tak velký počet dělení integračního intervalu jako u obdélníkové metody integrace, což si ukážeme při řešení příkladu. 3 Nejdříve si zopakujeme vzorec na výpočet obsahu plochy lichoběžníka: S = \-{z\ +22)- Kde v je výška lichoběžníka a z\, z 2 jsou jeho základny. V případě našeho obrázku je výška lichoběžníka rovna délce intervalu b — a, v případě dělení intervalu ji značíme h. Základny odpovídají v našem případě funkčním hodnotám v krajních bodech intervalu. Při aproximaci jedním obdélníkem získáme: \j{x)dx=b-^{f{a)+f{b)) Při aproximaci více lichoběžníky se funkční hodnoty vnitřních uzlových bodů objevují vždy dvakrát. Jednou figurují jako pravá mez jednoho lichoběžníka, podruhé jako levá mez sousedního lichoběžníka. Pro aproximaci třemi lichoběžníky s vnitřními uzlovými body ca d, kde a < c < d < b, dostáváme vzorec: l f{x)dx = ±(f(a) + /(c)) + ^(/(c) + f(d)) + ^(f(d) + f(b)) = ^(f(a) + 2/(c) + 2/(d) + f(b)) obecně pro dělení m dostáváme vzorec: j" f{x)dx = ^{f{xa) + 2[/(x1) + f{x2) + ... + /(Xm_!)] + /(&)) Pro praktické výpočty integrálů je vhodné zapisovat si jednotlivé funkční hodnoty do tabulky. Vlastní sčítání bude potom mnohem přehlednější a rychlejší. 4 1.2 Řešené příklady Příklad 1. Za "použití obdélníkové metody vypočítejte integrál <\llexdx pro dělení m=Jh a m=8 a výsledky porovnejte. Řešení. Pro m = 4 bude šířka podintervalu h = 0.5. Dostáváme tedy uzlové body: xq = — í,xi = —0.5,2ľ2 = 0,aľ3 = 0.5, x4 = 1. Pro výpočet integrálu potřebujeme vypočítat funkční hodnoty v bodech x = —0.75, —0.25, 0.25, 0.75. Hledaný určitý integrál má hodnotu: = 0.5 • [0.472367 + 0.778801 + 1.284025 + 2.117000] = 0.5 • 4.652193 = 2.326097 Pro m = 8 bude šířka podintervalu h = 0.25 a uzlové body budou: xq = —1.00, x\ = —0.75, x2 = —0.50, X3 = —0.25, x4 = 0, x$ = 0.25, x§ = 0.50, x-? = 0.75, x§ = 1.0. Pro výpočet integrálu budeme potřebovat funkční hodnoty v bodech: x = -0.875, -0.625, -0.375, -0.125, 0.125, 0.375, 0.625, 0.875. Integrál má tedy hodnotu: 1 = 0.25 • [e"0'875 + e"0'625 + e"0'375 + e"0'125 + e0'125 + e0'375 + e0'625 + e0'875] = = 0.25-[0.416862+0.535261+0.687289+0.882497+l.133148+1.454991 + 1.868246+2.398875] = 0.25-9.377169 = 2.3442 Vidíme, že oba výpočty se liší už na místě setin. Analyticky vypočítaný určitý integrál má hodnotu e1 - e"1 = 2.3504024. Příklad 2. Za použití lichoběžníkové metody vypočítejte integrál exdx pro dělení m=4 a m=8 a výsledky porovnejte. Řešení. Pro m = 4 bude šířka podintervalu h = 0.5. Dostáváme tedy uzlové body: xq = — í,xi = —0.5,aľ2 = 0,aľ3 = 0.5, x4 = 1. Pro výpočet integrálu potřebujeme vypočítat funkční hodnoty v těchto bodech. Hledaný určitý integrál má hodnotu: 0.5 • -[0.367879 + 2 • 0.606531 + 2 • 1 + 2 • 1.648721 + 2.718282] = 0.25 • 9.596665 = 2.399166 Pro m = 8 bude šířka podintervalu h = 0.25 a uzlové body budou: xq = —1.00, x\ = -0.75, x2 = -0.50, x3 = -0.25, x4 = 0,x5 = 0.25, x6 = 0.50, x7 = 0.75, xs = 1.0. Pro výpočet integrálu budeme potřebovat funkční hodnoty v těchto bodech. Integrál má tedy hodnotu: 5 f = 0.25 • - [e"1 + 2 • (e"0'75 + e"0'5 + e"0'25 + e° + e0'25 + e0'5 + e0'75) + e1] = = 0.125.[0.367879+2(0.472367+0.606531+0.778801 + 1 + 1.284025+1.648721+2.117000)+2.718282] = = 0.125 • 18.901051 = 2.362631 Vidíme, že oba výpočty se liší už na místě setin. Analyticky vypočítaný určitý integrál má hodnotu e1 - e"1 = 2.3504024. 1.3 Příklady k procvičení Příklad 3. 1) Pomocí obdélníkové metody vypočítejte integrál ^ yq^i pro dělení m = 10. 2) Předchozí příklad řešte při stejném dělení pomocí lichoběžníkové metody. 3) Pomocí lichoběžníkové metody vypočítejte integrál ^ x^+ix+s, Pro dělením = 4 a m = 8. 4-) Pomocí obdélníkové i lichoběžníkové metody vypočtěte integrál jje1 dx pro dělením = 10. Výsledky obou výpočtů porovnejte. 5) Pomocí obdélníkové i lichoběžníkové metody vypočtěte integrál ^ cosx^dx pro dělení m = 10. Výsledky porovnejte. Řešení. 1) 0.785606 2) 0.784981 3) 0.0988384; 0.0987329 4) Obdélníková metoda: 1.460393; lichoběžníková metoda: 1.467175. 5) Obdélníková metoda: 0.553752; lichoběžníková metoda: 0.588876. 6