Rungeho jev je problém v numerické matematice, který objevil v roce 1901 německý matematik Carl Runge, když zkoumal chování chyb při aproximaci funkcí pomocí interpolačních polynomů na množině ekvidistantních interpolačních bodů.[1] Runge zjistil, že použití polynomu vyššího stupně vždy nezlepšuje přesnost; naopak, na okrajích intervalu se objevují oscilace. Jev je podobný Gibbsově jevu při aproximaci Fourierovou řadou.
Weierstrassova věta o aproximaci říká, že ke každé spojité funkci f(x) definované na uzavřeném intervalu existuje posloupnost polynomiálních funkcí Pn(x) pro n=0, 1, 2, …, stupně nejvýše n, které aproximují funkci f(x), a na intervalu k ní konvergují stejnoměrně, tj.
Chceme funkci f(x) interpolovat v n+1 ekvidistantních bodech polynomem Pn(x) n-tého stupně, který těmito body prochází, můžeme na základě Weierstrassovy věty očekávat, že při použití více bodů bude rekonstrukce funkce f(x) přesnější. Ale tato určitá množina polynomiálních funkcí Pn(x) nezaručuje stejnoměrnou konvergenci; věta pouze tvrdí, že taková sada polynomiálních funkcí existuje. Věta sama neříká, jak najít takovou posloupnost polynomů; k tomu je možné použít Bernsteinovy polynomy.
Řada funkcí Pn(x) vytvořená tímto způsobem může pro rostoucí n divergovat od f(x); typicky se to projeví výskytem oscilací, které se v blízkosti koncových interpolačních bodů zvětšují. Objev tohoto jevu je připisován Rungemu.[2]
Uvažujme Rungeho funkci
(zvětšená verze Agnesiny křivky). Runge zjistil, že při interpolaci této funkce v ekvidistantních bodech xi na intervalu −1 a 1 tak, že:
polynomy Pn(x) stupně nejvýše n, výsledná interpolační funkce kmitá na konci intervalu, tj. blízko k −1 a 1. Dokonce lze dokázat, že interpolační chyba se při zvyšování stupně polynomu zvětšuje (bez omezení):
To ukazuje, že interpolace polynomem vysokého stupně v ekvidistantních bodech může být problematická.
Rungeho jev je důsledkem dvou vlastností tohoto problému:
Jev je graficky dobře viditelný, protože obě vlastnosti se kombinují a zvyšují řád oscilace.
Chyba mezi vytvořující funkcí a interpolačním polynomem řádu n je
pro nějaké z intervalu (−1, 1). Tedy
Označíme-li symbolem nodální funkci
a nechť je maximální řád funkce :
Je jednoduché dokázat, že pro ekvidistantní uzly
kde je velikost kroku.
Pokud navíc předpokládáme, že (n+1)-tá derivace funkce je omezená:
Proto
Ale řád (n+1)-té derivace Rungeho funkce se zvyšuje s rostoucím n, protože . Důsledkem je, že výsledná horní mez se blíží k nekonečnu, když n se blíží k nekonečnu.
Fakt, že horní mez chyby jde k nekonečnu, i když je často používán pro vysvětlení Rungeho jevu, samozřejmě neznamená, že samotná chyba také diverguje s rostoucím n.
Oscilaci lze zmírnit použitím zahušťováním uzlů na okrajích intervalu. Například na intervalu ⟨−1,1⟩ lze použít body s asymptotickou hustotou danou vzorcem[3] . Standardním příkladem takové sady uzlů jsou Čebyševovy uzly, u nichž maximální chyba v aproximaci Rungeho funkce zaručeně klesá s rostoucím řádem polynomu. Jev ukazuje, že polynomy vysokého stupně jsou pro interpolaci s ekvidistantními uzly obecně nevhodné.
Když převzorkování[ujasnit] na rozumné množině uzlů není proveditelné, je možné vyzkoušet S-Rungeho algoritmus.[4] Při tomto přístupu je původní množina uzlů mapovaná na množinu Čebyševových uzlů, poskytujících stabilní polynomiální rekonstrukci. Zvláštností této metody je, že není potřeba převzorkování na mapovaných uzlech, které se také nazývají umělé uzly. Na github je implementace tohoto postupu v jazyce Python.
Popsanému problému se lze vyhnout použitím spline křivek, které jsou po částech polynomiální. Pro zmenšení interpolační chyby můžeme místo zvyšování stupně použitého polynomu zvyšovat počet polynomiálních částí, které se používají pro konstrukci spline křivky.
Můžeme také proložit polynom vyššího stupně (například pro bodů použít polynom řádu místo ) a použít takový interpolační polynom, jehož první (nebo druhá) derivace má minimální normu.
Podobným přístupem je minimalizace omezené verze vzdálenosti mezi m-tou derivací polynomu a střední hodnotou jeho m-té derivace. Explicitně pro minimalizaci
kde a , vzhledem ke koeficientům polynomu a Lagrangeovým multiplikátorům . Pro omezující rovnice generované Lagrangeovými multiplikátory omezují na minimální polynom, který prochází všemi body. Na opačném konci se bude blížit tvaru velmi podobnému po částech polynomiální aproximaci. Speciálně pro se blíží po částech lineárním polynomům, tj. propojuje interpolační body úsečkami.
Při procesu minimalizace má za úkol omezovat velikost odchylek od střední hodnoty. Čím je větší, tím více jsou penalizovány větší odchylky v porovnání s malými. Hlavní výhodou Eukleidovské normy je, že umožňuje analytické řešení a zaručuje, že bude mít pouze jediné minimum. Pro může ve existovat více minim, kvůli čemuž je obtížné zjistit, zda nalezené minimum je globálním minimem.
Další metodou je proložení polynomu nižšího stupně použitím metody nejmenších čtverců. Obecně při použití ekvidistantních bodů, kde pak aproximace metodou nejmenších čtverců je dobře podmíněná.[5]
Bernsteinovy polynomy umožňují stejnoměrně aproximovat každou spojitou funkci na uzavřeném intervalu. Tato metoda je však poněkud výpočetně náročná.[zdroj?]
Pro každou předdefinovanou tabulku interpolačních uzlů existuje spojitá funkce, pro kterou posloupnost interpolační polynomů na těchto uzlech diverguje.[6] Pro každou spojitou funkci existuje tabulka uzlů, na kterých interpolační proces konverguje.[zdroj?] Čebyševova interpolace (na Čebyševových uzlech) konverguje stejnoměrně pro každou absolutně spojitou funkci.
V tomto článku byl použit překlad textu z článku Runge's phenomenon na anglické Wikipedii.