IntegralLab kolik se toho nasbíralo

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Adaptivní kvadratura — a kde je slepá

Rovnoměrná mřížka utrácí stejně na místech, kde je funkce nudná, jako tam, kde se láme. To je plýtvání — a v úloze, kde jedno vyhodnocení znamená spustit simulaci, plýtvání drahé.

Adaptivní metoda si mřížku volí sama: spočítá interval jednou celý a jednou po polovinách, a když se výsledky liší víc, než je dovoleno, půlí dál. Rozdíl mezi hrubým a jemným odhadem je odhad zbývající chyby — je to Richardsonova extrapolace z DerivLabu, jen použitá jako kritérium místo jako oprava.

0,00,30,50,81,01/(1 + 400(x−0,4)²)intervalů28vyhodnocení113nejužší/nejširší1 : 16rel. chyba8.0e-8tmavší pruh = víc dělení; každý pruh je jeden interval, který metoda uznala za dost dobrý
Přepni na úlohu „peak": intervaly kolem špičky jsou mnohonásobně užší než po krajích, přestože si to nikdo nenaplánoval. Přepni na „wave" a čti červené číslo.
|I_hrubý − I_jemný| / 15 ≈ chyba jemného odhaduRichardson jako kritérium (h⁴ ⇒ 2⁴−1 = 15)

Na špičaté úloze to funguje přesně tak, jak má: testy měří, že intervaly u vrcholu jsou jedenáctkrát kratší než ty na okrajích, a nikdo to metodě neřekl.

Nález: adaptivní metoda může být naprosto přesvědčená a naprosto vedle

Přepni obrázek na úlohu wave, tedy sin(12x)·e^(−x/2) na intervalu [0, π]. Adaptivní Simpson vrátí 4,4·10⁻¹⁶ po pěti vyhodnoceních. Správná odpověď je 0,0659.

Důvod: první, co metoda udělá, je vyhodnocení v bodech 0, π/4, π/2, 3π/4 a π. Při frekvenci 12 je sin(12x) v každém z nich přesně nula. Metoda tedy vidí nulu všude, kam se podívá, usoudí, že integrál je nula, odhadne chybu jako nulovou — a skončí. Naprosto konzistentně. Jenom se to netrefilo.

Tohle není chyba implementace. Je to cena, kterou platí každá metoda, jejíž odhad chyby je postavený ze vzorků: vzorky nemohou vidět to, co padne mezi ně. Žádné zpřísnění tolerance nepomůže — v obrázku to jde zkusit, chyba se nezmění, protože metoda si myslí, že tolerance je splněna s rezervou.

Praktický důsledek: u periodické nebo oscilující funkce se nikdy nespoléhej na automatiku. Buď se ví, jaká je nejvyšší frekvence, a mřížka se volí ručně (viz FourierLab, vzorkovací věta), nebo se výsledek ověří druhou metodou s jinými uzly — Gauss má uzly jinde než Simpson, takže obě naráz nesednou na nuly.

Vzorce v této kapitole

ε̂ — odhad chyby půlením
(I_jemný − I_hrubý) / (2^p − 1) [—] kap. 6