4
Numerické derivování a integrace
4
Numerické derivování a integrace Břetislav Fajmon, UMAT FEKT, VUT Brno
Téma je podrobně zpracováno ve skriptech [1], kapitola 7, strany 85-94. Jedná se o úlohu výpočtu (první či druhé) derivace či o výpočet určitého integrálu jinými metodami, než klasickým analytickým stylem. K VÝPOČTU DERIVACE ČI INTEGRACE POTŘEBUJEME ZNÁT POUZE FUNKČNÍ HODNOTU DERIVOVANÉ ČI INTEGROVANÉ FUNKCE V NĚKOLIKA BODECH V OKOLÍ BODU DERIVACE ČI NA INTERVALU INTEGRACE. bEd b@d
OBSAH
1/22
4
Numerické derivování a integrace 4.1 Numerické derivování
4.1
Numerické derivování
Uloha: je dána funkce f (x) – vypočtěte její derivaci (většinou první či druhou) v zadaném bodě x0. I když jsou zatím v kursu probrány jen některé metody, vzorce v této celé kapitole je možné odvodit pomocí nich. Základní myšlenka: Nahradíme funkci f v okolí bodu x0 interpolačním polynomem, který zderivujeme. Numerická hodnota první derivace funkce . f v bodě x0 = přesné hodnotě derivace daného interpolačního polynomu v bodě x0.
bEd b@d
OBSAH
2/22
4
Numerické derivování a integrace 4.1 Numerické derivování
Čím vyšší je stupeň interpolačního polynomu, tím přesnějšího výsledku dosáhneme. Celkem uspokojivý výsledek dává první derivace už pro přímku, která nahrazuje na intervalu hxi; xi + hi funkci f : Sestavme interpolační polynom pro zadané body [xi, f (xi)], [xi + h, f (xi + h)] (v Lagrangeově tvaru): L1(x) = f (xi)
x − xi x − (xi + h) + f (xi + h) . xi − (xi + h) xi + h − xi
Jmenovatele v tomto výrazu lze ještě zjednodušit: L1(x) = f (xi)
x − (xi + h) x − xi + f (xi + h) . −h h
Grafem funkce L1(x) je přímka. Nyní derivací bEd b@d
OBSAH
3/22
4
Numerické derivování a integrace 4.1 Numerické derivování
funkce L1 Podle proměnné x dostaneme 1 L01(x) = · (f (xi + h) − f (xi)) , h a odtud plynou vzorce . f x1 − f x0 f 0(x0) = ; h . f x1 − f x0 f 0(x1) = . h Příklad Vypočtěte derivaci funkce f (x) = x0 = 2 a pro h = 0,2:
(1) (2) 1 x
pro
Víme, že f 0 = −1 , tedy f 0(2) = −0,25. Dejme x2 tomu, že bychom přesnou derivaci analyticky nebyli bEd b@d
OBSAH
4/22
4
Numerické derivování a integrace 4.1 Numerické derivování
schopni zjistit nebo používali programové prostředí, které analytickou derivaci spočítat neumí. Lze nyní použít numerickou metodu a vzorec 1 . f (2,2) − f (2) = −0,2273; f 0(xi) = 0,2 nebo vzorec 2 . f (2) − f (1,8) f 0(xi+1) = = −0,2778. 0,2 Výsledky se liší na druhém desetinném místě, a to jsme použili ten nejjednodušší vzorec, co jsme použít mohli. Odvodíme nyní ještě vzorec pro přesnější výpočet – tento vzorec vychází z náhrady funkce interpolač bEd b@d
OBSAH
5/22
4
Numerické derivování a integrace 4.1 Numerické derivování
ním polynomem řádu 2, tj v bodech s x-ovými souřadnicemi xi − h, xi, xi + h: (x − xi)(x − xi − h) L2(x) = f (xi − h) (xi − h − xi)(xi − h − xi − h) (x − xi + h)(x − xi − h) +f (xi) (xi − xi + h)(xi − xi − h) (x − xi + h)(x − xi) +f (xi + h) . (xi + h − xi + h)(xi + h − xi) Úpravou tohoto výrazu do mocnin (x − xi) dostaneme (x − xi)2 (f (xi − h) − 2f (xi) + f (xi + h)) L2(x) = 2h2 x − xi + · (f (xi + h) − f (xi − h)) + f (xi). 2h bEd b@d
OBSAH
6/22
4
Numerické derivování a integrace 4.1 Numerické derivování
Nyní derivujeme podle x a dostaneme L02 (x) =
1 [f (xi − h) (2(x − xi ) − h) − 2f (xi ) · 2(x − xi ) + f (xi − h) (2(x − xi ) + h)] . 2h2
A teď do vyjádření pro L02(x) dosaďme po řadě body xi, (xi − h), (xi + h) a dostaneme vztahy 1 (−3f (xi − h) + 4f (xi) − f (xi + h)), 2h 1 L02(xi) = (f (xi + h) − f (xi − h)), 2h 1 L02(xi + h) = (f (xi − h) − 4f (xi) + 3f (xi + h)). 2h Přeznačením x0 = xi − h, x1 = xi, x2 = xi + h dostaneme L02(xi − h) =
bEd b@d
OBSAH
7/22
4
Numerické derivování a integrace 4.1 Numerické derivování
vzorce . 1 f 0(x0) = (−3f (x0) + 4f (x1) − f (x2)), (3) 2h . 1 (f (x2) − f (x0)), f 0(x1) = (4) 2h . 1 (f (x0) − 4f (x1) + 3f (x2)). f 0(x2) = (5) 2h Důležitý pro běžné výpočty je vzorec 4. Vzorce 3 a 5 se používají tehdy, pokud nejsme schopni vypočítat funkční hodnotu nalevo od našeho klíčového bodu, ve kterém nás derivace zajímá (vzorce pro derivaci vk onkrétním bodě totiž užívají funkční hodnoty ve třech různých bodech). Příklad Vypočtěme první derivaci funkce f (x) = bEd b@d
OBSAH
1 x
8/22
4
Numerické derivování a integrace 4.1 Numerické derivování
pro x0 = 2 a pro h = 0,2 podle vzorce 4: 1 (f (2,2) − f (1,8)) = −0,2525; 2 · 0,2 To je lepší výsledek, přesný už na dvě desetinná místa. A to je ještě krok h velmi velký vzhledem k funkčním hodnotám funkce. Pro h = 0,1 dostaneme f 0(2) =
f 0(2) =
bEd b@d
1 (f (2,1) − f (1,9)) = −0,2506. 2 · 0,1
OBSAH
9/22
4
Numerické derivování a integrace 4.1 Numerické derivování Pokud L02(x) zderivujeme ještě jednou,
1 (f (xi − h) − 2f (xi) + f (xi + k)), h2 dostaneme dosazením x1 = xi dobrý vzorec pro přibližný výpočet druhé derivace funkce f v bodě x1: L002 (x) =
. 1 f 00(x1) = 2 (f (x2) − 2f (x1) + f (x0)) h
(6)
Příklad Vypočtěme DRUHOU derivaci funkce f (x) = x1 pro x = 3 a pro h = 0,2 podle vzorce 6: Přesně analyticky je f 00 = x23 , tedy v bodě x = 3 máme f 00(3) = 0,07407. Kdybychom tento přesný výpočet ne bEd b@d
OBSAH
10/22
4
Numerické derivování a integrace 4.1 Numerické derivování
měli k dispozici, tak numericky podle vzorce 6 dostaneme . 1 (f (3,2) − 2 · f (3) + f (2,8)) = 0,0744, f 00(3) = 0,04 velmi dobrý odhad druhé derivace. Pro h = 0, 1 dokonce . 1 f 00(3) = (f (3,1) − 2f (3) + f (2,9)) = 0,074156. 0,01
bEd b@d
OBSAH
11/22
4
Numerické derivování a integrace 4.1 Numerické derivování
Vzorce numerických derivací jsou potřeba nejen při samotném výpočtu derivací, ale rovněž v dalších numerických metodách, jako například v metodě sítí = metodě konečných diferencí (network method), kdy touto úpravou převádíme DIFERENCIÁLNÍ rovnici na systém LINEÁRNÍCH ROVNIC (viz první přednáška)!!!
bEd b@d
OBSAH
12/22
4
Numerické derivování a 4.2integrace Numerické integrování
4.2
Numerické integrování
Protože Z
b
f (x) dx a
má zřetelný geometrický význam, lze určitý Riemannův integrál dobře určit i přibližnými (= numerickými) metodami. Projdeme opět dvě metody, nejprve složená lichoběžníková metoda: interval ha; bi rozdělíme na m stejně velkých podintervalů hxi; xi+1i s krokem b−a xi+1 − xi = h = m (dělicích bodů je (m + 1): x1, x1, . . . , xm) a funkci f na bEd b@d
OBSAH
13/22
4
Numerické derivování a 4.2integrace Numerické integrování
intervalu nahradíme úsečkou spojující body [xi, f (xi)], [xi+1, f (xi+1)]. Pak obsah podgrafu funkce f na intervalu hxi; xi+1i se přibližně rovná obsahu lichoběžníka určeného touto úsečkou, kolmicemi na osu x. Pro tento obsah lichoběžníka platí 1 P = (xi+1 − xi)(f (xi) + f (xi+1)); 2 sečtením obsahů těchto obdélníčků na všech m intervalech dostaneme přibližně obsah celého podgrafu funkce f (x) na intervalu ha; bi (ve vzorci je opět využito h = xi+1 − xi): f (x0) f (xm) + f (x1) + f (x2) + · + f (xm−1) + (7). Lm = h · 2 2 bEd b@d
OBSAH
14/22
4
Numerické derivování a 4.2integrace Numerické integrování
Opět jsme vlastně dělali to, že funkci f (x) jsme na intervalu hxi; xi+1i nahradili interpolačním polynomem stupně 1 (tedy „částí přímkyÿ), vypočetli přesný integrál z tohoto interpolačnínomu a všechny tyto integrálky sečetli (odtud název „složená lichoběžníková metodaÿ – že se složily = sečetly obsahy lichoběžníků). Lze matematicky odvodit též odhad chyby = rozdíl mezi přesnou a přibližnou hodnotou tohoto integrálu u složené lichoběžníkové metody: (b − a)3 00 |Em| ≤ · max |f (x)|. ha;bi 12m2
bEd b@d
(8)
OBSAH
15/22
4
Numerické derivování a 4.2integrace Numerické integrování
Než se dostaneme k příkladům, tak ještě vysvětlení té druhé metody přibližné integrace: Složená Simpsonova metoda: jedná se jen o zobecnění předchozí složené lichoběžníkové metody o jednu mocninu interpolačního polynomu výše: Interval ha; bi rozdělíme s krokem h = xi+1 − xi = b−a m na sudý počet dílků. Tj. musí platit m = 2n – je to proto, abychom mohli rozdělit intervaly do dvojic a pro každou dvojici intervalů měli zadané body [xi − h, f (xi − h)], [xi, f (xi)], [xi + h, f (xi + h)]; těmito třemi body na daném páru intervalů proložíme interpolační polynom řádu 2 (jeho grafem je zpravidla parabola),
bEd b@d
OBSAH
16/22
4
Numerické derivování a 4.2integrace Numerické integrování
tento polynom zintegrujeme na intervalu hxi−1; xi+1i, a přes všechny páry intervalů tyto integrály sečteme (= „složímeÿ) a položíme přibližně rovno integrálu z funkce f (x) na intervalu ha; bi. Ještě jednou pomaleji:
bEd b@d
OBSAH
17/22
4
Numerické derivování a 4.2integrace Numerické integrování
Interpolační polynom pro dané tři body napíšeme, jmenovatele upravíme do konstant obsahujících krok h, čitatele upravíme do mocnin (x − xi); celkově vzato jej pak můžeme psát ve tvaru (x − xi)2 [f (xi − h) − 2f (xi) + f (xi + h)] + L2(x) = 2h2 x − xi + [f (xi + h) − f (xi − h)] + f (xi). 2h Nyní L2(x) integrujeme na intervalu hxi−1; xi+1i, a protože xi+1 − xi = h = xi − xi−1, po dosazení mezí do zintegrované funkce dostaneme
bEd b@d
OBSAH
18/22
4
Numerické derivování a 4.2integrace Numerické integrování
Z
xi+1
xi−1
x=xi+1 f (xi−1) − 2f (xi) + f (xi+1) (x − xi)3 L2(x) dx = 2h2 3 x=xi−1 x=x i+1 f (xi+1) − f (xi−1) (x − xi)2 + 2h 2 x=xi−1 +f (xi)(xi+1 − xi−1)
(a také platí xi+1 − xi−1 = 2h), což lze upravit do vzorce Z
xi+1
. f (x) dx =
xi−1
bEd b@d
Z
xi+1
L2(x) dx = xi−1
h (f (xi−1) + 4f (xi) + f (xi+1)) . 3
OBSAH
19/22
4
Numerické derivování a 4.2integrace Numerické integrování
Sečtením těchto výsledků přes všechny páry malých m intervalů máme Z b h . f (x) dx = Sm = (f (x0) + 4f (x1) + 2f (x2) + 4f (x3) + · · · 3 a (9) +2f (xm−2) + 4f (xm−1) + f (xm)) (první a poslední koeficient je roven jedné, pak se střídají čtyřky a dvojky s tím, že druhý a předposlední koeficient musí být roven čtyřem).
bEd b@d
OBSAH
20/22
4
Numerické derivování a 4.2integrace Numerické integrování
Existuje též vzorec pro odhad chyby přesného minus přibližného výpočtu tohoto integrálu: (b − a)5 (iv) |Em| ≤ · max |f (x)| ha;bi 180m4
(10)
(f (iv) znamená čtvrtou derivaci funkce f ). Řešené příklady 7.1/str.92 a 7.2/str,93, 7.3/str.93 jsou tak dobré a ilustrativní, že je dobré je projít všechny a beze zbytku – viz skripta [1].
bEd b@d
OBSAH
21/22
Literatura
V rámci procvičení tohoto tématu můžete vypočíst ze skript [1], str. 95-96, příklady 7.1 a 7.2 na numerické derivování, 7.6, 7.7, 7.8 a 7.9 na integrování.
Literatura [1] Fajmon, B., Růžičková, I.: Matematika 3. Skriptum FEKT VUT v elektronické formě, Brno 2003. Počet stran 257 (identifikační číslo v informačním systému VUT: MAT103). http://www.rozhovor.cz/souvislosti/matematika3.pdf.
bEd b@d
OBSAH
22/22