Matykání: Nekonečné polynomy

Matykání: Nekonečné polynomy

Matematika / článek

Kdo už má nekonečna plné zuby, ať zvedne ruku. Ledva jsme se jakž takž zotavili z nekonečné dimenze, už ho tady máme zase. Ale marná sláva – matematika je v podstatě taková nikdy nekončící party s nekonečnem. Konečně, proč ne?

Myšlení je pěkně zatrachtilá věc. To se vám takhle v hlavě vylíhne nějaký epochální nápad na ponorku kabriolet, ale když se o něj budete chtít podělit s kolegy vynálezci, zjistíte, že si nemůžete jen tak strčit drát do ucha a nahrát myšlenku někam na „cloud“, odkud by si ho členové kutilského politbyra mohli stáhnout (a kloudné myšlenky jinam než na cloud nepatří).

Důležité je, že myšlenky je stále nutné přenášet trochu staromódním způsobem, tedy obléci je do slov a doufat, že z nich při překladu zpátky do myšlenek příjemce neudělá kůlničku na dříví.

A tady je zakopaný pes, ba přímo jádro pudla. Myšlenky jsou povahy éterické a komplexní a aproximovat je slovy není žádná procházka růžovým sadem. Ale není jiného zbytí. Přehodit je vidlema přes plot lebeční dutiny prostě nelze.

Slova jsou takové základní atomy významu: jsou malé a srozumitelné, všichni se na jejich smyslu jakž takž shodneme a dá se s nimi poměrně snadno manipulovat (klidně si je můžete nahrát i na cloud).

Jen musíme mít na paměti, že každá kombinace slov je jen aproximací dané myšlenky a ztráta či zamlžení významu nad námi stále visí jako Damoklův meč. Koneckonců Malý princ to říká celkem jasně: „Řeč je pramenem nedorozumění.“

Samozřejmě bychom mohli slova přidávat a aproximovat myšlenku přesněji a přesněji, ale od určitého okamžiku začne komplexita sdělení fungovat kontraproduktivně. Sáhodlouhé texty se nenosí. Kdo má taky pořád poslouchat, jak se pantáta u mikrofonu vykecává? Myšlenky se proto snažíme odít do slov co nejjednoduším způsobem.

Funkce jsou základním stavebním kamenem matematiky. A stejně jako se myšlenky snažíme aproximovat jednoduchými a všeobecně srozumitelnými slovy, i funkce – které mohou být zatrachtile složité – se občas pokoušíme nahradit (aproximovat) funkcemi, které jsou jednodušší a pocházejí z nějaké předem definované množiny. A protože v té množině žijí povětšinou funkce elementární, budu jim říkat elementy.

Taková aproximace se chová velmi podobně jako původní funkce, ale je skladnější a dá se s ní snadněji manipulovat. Elementy nám vlastně umožní jakoukoliv funkci převést do jednotného a obecně srozumitelného jazyka, ať už je to exponenciála, sinus nebo odmocnina z inverzního hyperbolického kosinu. A podobně jako u slov můžeme zvyšovat přesnost aproximace navýšením jejich počtu.

Mezi nejjednodušší možné funkce patří mocniny a jejich kombinace, tedy polynomy (česky mnohočleny). A ty se nám stanou prvními větami, kterými se pokusíme myšlenky funkcí nějak uchopit (časem poznáme ještě další). Tyto aproximační polynomy jsou v podstatě zobecněním tečen (nejlepší lineární aproximace v bodě), a proto si nejprve budeme muset krátce zopakovat derivace (které jsou kvantifikací tečen, resp. jejich směrnic) a při té příležitosti se podíváme i na derivace vyšších řádů.

Derivace vyšších řádů

Na funkce jsme se kdysi dívali jako na skříňku s trpaslíkem, kam se hodí nějaká vstupní hodnota, trpaslík s ní něco provede a výslednou hodnotu nám vyhodí na výstupu. V klasickém zápisu y = f(x) je x hodnota vstupní a y výstupní.

Na grafu funkce (obrázek vpravo) nám modrá výstupní hodnota f(c) (pro nějaké konkrétní x = c) ukazuje, jak vysoko nad osou x se právě nalézáme. To je sice báječná informace, ale často bychom chtěli vědět nejen hodnotu, ale i tendenci, tedy nejen kde se nalézáme, ale také kam směřujeme, tj. zda se pro vyšší hodnoty x > c budou funkční hodnoty f(x) zvyšovat nebo snižovat (funkce na obrázku v bodě c roste, tj. zvýšení x bude mít za následek zvýšení y).

Číslo, které tuto „tendenci“ popisuje, je směrnice zelené tečny k funkci v bodě c. Je-li směrnice kladná, funkce roste, je-li záporná, klesá. V našem případě je směrnice k < 0 a funkce tedy klesá (a to zhruba tak, že při posunutí o nějaký infinitesimální krok dx doprava klesne funkční hodnota o hodnotu k * dx). Směrnice nám tedy udává momentální rychlost změny funkční hodnoty (v závislosti na x).

A protože toto důležité číslo k se dá (až na nějaké ty patologické výjimky) spočítat v každém bodě x, můžeme si z těchto směrnic sestavit novou, sekundární funkci, která funguje takto: do skříňky s trpaslíkem hodíme hodnotu x, trpaslík si spočítá směrnici tečny k původní funkci v tomto bodě a vyhodí nám ji na výstupu. Takto definované sekundární funkci říkáme derivace (původní) funkce f a značíme ji f'(x).

Takže ještě jednou: f(c) nám ukazuje, jak vysoko funkce v bodě c leží, a f'(c) nám ukazuje, jak rychle funkce v bodě c roste. A protože derivace f'(x) je sama o sobě také jen celkem obyčejná funkce (na derivaci není nic magického, například se dá ukázat, že derivace sinu je pouhopouhý kosinus), nic nám nebrání ji zderivovat ještě jednou. Tedy spočítat derivaci derivace. Vyneseme si její graf (rozuměj graf té derivace) na milimetrový papír a v každém bodě spočítáme směrnici její tečny (a nenechte se zmást, že hledáme směrnici tečny ke grafu funkce, která sama o sobě vznikla ze směrnice tečny). Této funkci říkáme druhá derivace a značíme ji f''(x).

Jeden ze způsobů, jak si ji představit, je tento. Derivace nám obecně říká, jak rychle daná funkce roste. Pokud je danou funkcí je f'(x) (tj. směrnice tečny), pak nás druhá derivace pouze informuje, jak rychle tato směrnice roste nebo klesá. Na obrázku vpravo vidíme, že pokud se ze zeleného bodu x = 1.0 přesuneme do modrého bodu x = 2.0, směrnice tečny o něco klesne (funkce stoupá stále povlovněji). A to tedy zhruba znamená, že f'(x) mezi oběma body klesá, a bude tedy mít zápornou derivaci: f''(c) < 0.

Všimněte si, že toto pozorování jsme byli schopni učinit pouze z definice a z geometrie, aniž bychom znali jakoukoliv metodu, jak druhou derivaci spočítat. Obdobně si můžete rozmyslet, že pokud by se směrnice tečny pro zvyšující se x zvětšovala, druhá derivace by byla kladná f''(c) > 0.

Funkcím, kde směrnice roste rychleji a rychleji, říkáme konvexní (např. y = x2), zatímco funkcím, kde se směrnice zmenšuje, říkáme konkávní (jako ta červená na obrázku). A to je v podstatě geometrickým významem druhé derivace.

Takže ještě pro zopakování: funkční hodnota f(x) nám ukazuje, zda jsme v bodě x nad osou anebo pod a jak vysoko/hluboko. Derivace f'(x) nám ukazuje, zda funkce v bodě x roste anebo klesá a jak rychle. A druhá derivace f''(x) nám ukazuje, zda je funkce v bodě x konvexní anebo konkávní a jak moc se křiví. Na dalším šestiobrázku je graf funkcí f(x) = sin(x) a g(x) = x2 s tím, že na prvním řádku je vykreslen graf funkce, na druhém řádku graf derivace a na třetím graf druhé derivace. Všimněte si, že tam, kde je derivace kladná (druhý řádek), je funkce na prvním řádku rostoucí. Tam, kde je druhá derivace kladná, je funkce na prvním řádku konvexní.

Když se s tím člověk setká poprvé, tak je nutně trochu zmaten, protože musí žonglovat se třemi funkcemi najednou (f, f' a f'') a tyto tři funkce v podstatě vypovídají tři příběhy o jedné a té samé (původní) funkci f(x). Příběh o výšce, tendenci a zakřivení.

Pokud nejste zmateni dostatečně, rozmyslete si, že druhá derivace je derivací derivace první, a proto tam, kde je funkce na třetím řádku kladná, je funkce na druhém řádku rostoucí.

Kdo má rád fyziku, může si toto matoucí trio představit jako polohu (f), rychlost (f') a zrychlení (f'').

I druhá derivace je v zásadě obyčejná funkce, takže nám nic nebrání zderivovat ji ještě jednou a získat třetí derivaci f'''. Její derivací se pak získá čtvrtá derivace f'''' a takhle se dá pokračovat do aleluja. V aplikacích si naštěstí většinou vystačíme se dvěma derivacemi, ale je dobré vědět, že se tento proces dá opakovat bez omezení.

To je všechno moc hezké, ale nic nám to neříká o tom, jak se derivace vlastně počítají.

Pokud se chcete potýrat, můžete si je spočítat z definice (přes limitu h --> 0)

f'(x) = lim (f(x + h) - f(x)) / h

tj. sledovat, jak se chová funkční nárůst pro velmi malé změny nezávisle proměnné.

Reálně vzato se ale pomocí limit odvodí pouze derivace základních funkcí a z nich se pak pomocí kombinačních vzorců (ty se také musí dokázat přes limity) odvodí derivace složitějších funkcí. Např. pro derivaci součinu dvou funkcí platí

(fg)' = f' * g + f * g'
(* znamená krát a argument x pro jednoduchost vypouštím)

takže víme-li, že derivace sinu je kosinus a derivace x je 1 (lineární funkce f(x) = x má směrnici stále stejnou a rovnou 1), můžeme si spočítat, že

(x sin(x))' = 1 * sin(x) + x * cos(x)

Zbytek diferenciálního počtu je pak de facto jen drezúra, aby se studenti derivace základních funkcí našprtali a kombinační vzorečky uměli hbitě používat.

Pro většinu praktických aplikací si stačí pamatovat, že derivace exponenciály je exponenciála, sinus a kosinus se prohodí (ale bacha na znaménka) a že derivace mocniny xn je n * x(n-1). Např. derivace x2 je 2x.

Nekonečné polynomy

Představme si, že máme co do činění s funkcí

f(x) = sin(x) * (x2 - 1)/cosh(x)

a budeme se zajímat pouze o malé hodnoty x.

Z obrázku vpravo je patrné, že v okolí nuly se funkce f chová přibližně jako přímka procházející počátkem (vyznačená zeleně), a není tudíž nutno pro malá x pracně počítat celou komplikovanou funkci. Z výpočetního pohledu je daleko snazší a rychlejší vyčíslit lineární funkci než komplikovaně dosazovat do celé funkce f, kde číhají dvě transcendentní funkce: sinus a hyperbolický kosinus.

Přímka procházející počátkem má obecně rovnici y = kx a metodou pokusů a omylů se přesvědčíme, že solidní aproximaci dává přímka y = -3x. Můžete si zkusit dosadit pár malých hodnot x a ověřit si, že chyba je celkem snesitelná (a čím menší x, tím bude chyba menší). A to v aplikacích často stačí. Aproximace, pochopitelně, funguje pouze lokálně – jakmile se od nuly příliš vzdálíte, chyba začne převládat a podobnost mezi modrou funkcí a zelenou aproximací se vytratí.

Když se vrátím k úvodní analogii, modrá funkce je naše myšlenka a zelená aproximace je věta, do které jsme ji převtělili. Přesněji, převtělili jsme do ní část myšlenky. Otázkou je, jaké „elementy“ si pro aproximaci obecně zvolit, tedy v jaké množině funkcí máme zelenou aproximační funkci hledat.

Smyslem celé operace je nahradit danou komplikovanou funkci lokálně něčím jednodušším, takže přirozeným kandidátem pro naše „elementy“ budou mocniny x a jejich lineární kombinace, tedy polynomy. Nejvyšší mocnině polynomu se říká stupeň. Konstantní polynomy y = a mají nulový stupeň, lineární y = ax + b mají stupeň 1, kvadratické y = ax2 + bx + c jsou polynomy stupně 2 atd.

Podívejme se na dalším obrázku na nějakou obecnou funkci f(x) a položme si otázku, jak by se modrá funkce dala v okolí bodu x = 0 nahradit polynomem.

Pro polynomy nultého stupně – tj. konstanty – je náhrada nabíledni. Funkci aproximujeme červeným konstantním polynomem, který s funkcí sdílí v bodě 0 funkční hodnotu. Z obrázku je ale patrné, že tato aproximace nám moc užitečná nebude. Proto zkusíme funkci aproximovat přímkou (oranžová). Přímka bude pochopitelně procházet modrým bodem B = (0,f(0)) a její směrnice bude taková, aby co nejpřesněji kopírovala růst funkce v bodě x = 0. Směrnice proto bude přesně derivací v nule: tedy k = f'(0). Najít rovnici přímky se směrnicí k a procházející modrým bodem B je snadná středoškolská úloha, ze které dostaneme

y = f(0) + f'(0) * x

Vidíte, že tento polynom sdílí s funkcí nejen funkční hodnotu v bodě 0, ale i derivaci v 0 (tak jsme ho zvolili).

A takto můžeme pokračovat.

Oranžová přímka (což je pochopitelně tečna) už chování funkce v okolí bodu 0 jakž takž vystihuje, ale nemá žádnou křivost. Proto můžeme k polynomu přidat kvadratický člen a hledat polynom druhého stupně, který bude s funkcí sdílet nejen funkční hodnotu f(0) a derivaci f'(0), ale i druhou derivaci f''(0), která popisuje, jak se funkce v okolí bodu 0 křiví.

Hledání kvadratického polynomu je jen variace na předchozí diskusi: budeme ho hledat ve tvaru

p(x) = ax2 + bx + c

Dosazením x = 0 zjistíme, že pouze c = f(0) zaručí, že p(0) = f(0). Derivací získáme

p'(x) = 2ax + b

a aby měl polynom v bodě 0 stejnou derivaci jako funkce, musí být b = f'(0). Podle očekávání. A konečně požadavek na rovnost druhých derivací (tj. aby se polynom křivil stejně jako funkce) nás dovede k rovnici

p(0) = 2a = f(0)

takže a = f''(0)/2 a můžeme si ten aproximační kvadratický polynom zapsat explicitně:

p(x) = f(0) + f'(0)x + f''(0)x2/2

Pokud ani tento fialový polynom není dostatečně přesný, můžeme přihodit kubický člen, spočítat stejným způsobem nejlepší kubickou aproximaci a po určité námaze dostaneme

p(x) = f(0) + f'(0)x + f''(0)x2/2 + f'''(0)x3/6
(ta 6 je tam proto, že derivace x3 je 3x2 a dalším derivováním pak získáme 6x a 6)

Takto získaným polynomům se říká Taylorovy polynomy pro aproximaci funkce f(x) v bodě 0 (proto jsem je na předchozím obrázku označil T0, T1 a T2). Čím více členů do polynomu přihodíme, tím bude lokální aproximace přesnější. Taylorův polynom 1. stupně je prostě tečna (tj. nejlepší lineární aproximace v bodě x = 0). Pokud potřebujeme něco přesnějšího, plácneme se přes kapsu a začneme do polynomu přidávat členy vyšších řádů, tj. vyšší mocniny x, které odpovídají porovnávání vyšších derivací. Taylorovy polynomy vyšších stupňů ale naleznete v aplikacích jen zřídka – lineární, kvadratický nebo kubický je obvykle dostačující.

Všechny tyto polynomy funkci aproximují pouze v okolí nuly. Dříve nebo později se s ní rozejdou. Pokud však máme dostatek času a členy do polynomu přihazujeme obouruč, bude to rozcházení stále méně a méně zřetelné. A v limitním případě, kdy se nám do polynomu podaří naházet všechny mocniny, dostaneme nekonečný polynom pro rozvoj funkce f(x) v bodě 0. A ten bude funkci „stínovat“ přesně.

(Nekonečno nafingujeme aplikací Cimrmanova trojtečkového operátoru na pravé straně.)

f(x) = f(0) + f'(0)x/1! + f''(0)x2/2! + f'''(0)x3/3! + ...

Tento nekonečný polynom už je potvůrka trochu jiného kalibru. Oficiálně se mu říká Taylorova řada (nebo též MacLaurinova řada, pokud jsou všechny derivace vyčísleny v nule). Každý člen odpovídá jedné derivaci a faktoriály pochází z derivování klesajících mocnin (viz závěr předchozí sekce). Pravá strana nám de facto ukazuje, jakým způsobem se funkce dá poskládat z mocnin.

Protože pro každé konkrétní x dostaneme napravo nekonečnou řadu, měli bychom si začít lámat hlavu s tím, pro jaké hodnoty x ta řada vůbec konverguje, tedy za jakých okolností z ní vyždímáme konečné číslo. Pro potřeby Matykání ale tuto starost přenecháme koňům, kteří na to mají větší mozkovnu.

Důležité je, že pokud nedojde k nějakým konvergenčním karambolům, výsledný nekonečný polynom (tj. Taylorova řada) funkci f(x) nejen aproximuje, ale je s ní totožný. Na obrázku z Wikipedie vidíte, že čím vyšší stupeň polynomu použijete, tím je aproximace přesnější. No a pokud těch členů přidáme nekonečně mnoho, všechny aproximační chybky se vypaří jako na objednávku. Takto obdržíme známé rozvoje (stačí si vyčíslit příslušné derivace):

exp(x) = 1 + x/1! + x2/2! + x3/3! + ...
sin(x) = x - x3/3! + x5/5! - x7/7! + ...
cos(x) = 1 - x2/2! + x4/4! - x6/6! + ...

které se (pokud si dáme práci sečíst všech nekonečně mnoho členů) rovnají funkcím na levé straně pro všechny hodnoty x.

Jako příklad řady, která nekonverguje všude, se můžeme podívat na součet geometrické řady

1/(1-x) = 1 + x + x2 + x3 + ...

Řada vpravo konverguje pouze pro x z intervalu (-1, 1) a to není překvapující, protože funkce nalevo není v jedničce definovaná (vystřelí tam do nekonečna), takže dál se prostě nedostaneme. Zajímavé je, že funkce nalevo je definovaná i „za jedničkou“. Řada už v jedničce ale konvergovat nebude (součet nekonečně mnoha jedniček je nekonečno) a pro x > 1 tuplem ne.

Rozvoj funkcí do mocninných řad je jedním z nejdůležitějších nástrojů komplexní analýzy.

Aproximace: Lokální vs. globální

V předchozí sekci jsme se zabývali problémem, jak aproximovat funkci v okolí bodu x = 0. Někdy nás ale zajímá chování v okolí nějakého jiného bodu, řekněme x0, a pak se celá výše popsaná diskuse musí do tohoto bodu „posunout“. V podstatě celou analýzu zopakujeme, jen budeme místo mocnin x uvažovat mocniny členu (x-x0). Analogie je zjevná: tak jako nám x říká, jak jsme daleko od nuly (včetně znaménka), člen (x-x0) nám říká, jak jsme daleko od x0. Proto se polynomy v okolí tohoto bodu vyjadřují pomocí takto „posunutých“ mocnin (namísto absolutních), protože je přehledněji vidět struktura celého výrazu (ale můžete si je pochopitelně roznásobit a pracovat se standardní formou).

Zkusme si najít kvadratickou aproximaci exponenciály f(x) = exp(x) v bodě x = 1. Aproximující polynom budeme hledat ve tvaru:

p(x) = a(x-1)2 + b(x-1) + c

Požadavek na rovnost funkčních hodnot v bodě x0 = 1 nám dá

p(1) = f(1) a tedy c = e (kde e = 2.71828...)

Derivace polynomu je p'(x) = 2a(x-1) + b, takže rovnost derivací nám dá:

p'(1) = f'(1) a tedy b = e (derivace exponenciály je ta samá exponenciála)

a konečně pro druhou derivaci máme: p''(x) = 2a, takže

p(1) = f(1) nám dá a = e/2

tím pádem nejlepší kvadratická aproximace v okolí bodu x = 1 bude

p(x) = e(x-1) 2/2 + e(x-1) + e

popřípadě po roznásobení:

p(x) = ex2/2 + e/2

Obecná formulka pro Taylorovu řadu v bodě x0 vypadá takto:

T(x) = f(x0) + f'(x0)(x-x0)/1! + f''(x0)(x-x0)2 / 2! + f'''(0)(x-x0) 3/3! + ...

a opět platí, že čím více členů vyčíslíme, tím přesnější aproximaci dostaneme.

Zatím jsme aproximovali pouze v okolí jednoho konkrétního bodu. To je pro spoustu aplikací příliš restriktivní požadavek, protože nás mnohdy zajímá nejlepší aproximace (řekněme opět polynomem) na nějakém intervalu. Pak by nebylo příliš jasné, ve kterém z nekonečně mnoha bodů tohoto intervalu Taylorův rozvoj vlastně hledat.

Podívejme se třeba na funkci sinus na intervalu [-1, 1]. Její kvadratické Taylorovy polynomy v-1 a 1 jsou naznačeny fialovou a oranžovou křivkou. Taylor v nule je polynom T(x) = x (to je kvadratická část nekonečného polynomu, který jsem citoval výše – tím, že tam chybí kvadratický člen se nenechte zmást, to je proto, že příslušná derivace byla 0).

Všechny tři polynomy se ve svých bodech k funkci přimykají opravdu těsně, ale mimo bod rozvoje na funkci kašlou, zatímco my bychom chtěli najít „tak něco mezi“. Tj. kvadratický polynom, který bude fungovat na celém intervalu (i za cenu, že v těch třech bodech už nebude tak přesný jako ten Taylorův).

Jedním ze způsobů, jak tuto „intervalovou“ aproximaci najít, je podívat se na problém náhledem lineární algebry. Pokud máme vektor u a nějaký podprostor P (třeba rovinu), pak se v té rovině dá najít nejlepší aproximace tohoto vektoru ortogonální projekcí (viz obrázek).

Výsledný vektor u' je součástí podprostoru P a nejlépe aproximuje vektor u v tom smyslu, že vzdálenost mezi uu' je nejmenší možná, tj. žádný jiný vektor z podprostoru P neleží k vektoru u blíže (vzdálenost mezi vektory se změří jako norma jejich rozdílu):

d(u,u') = || u - u' ||
(ten podprostor P tedy obsahuje naše elementy – prvky, kterými chceme aproximovat daný objekt, zde vektor u)

Jen teď musíme tyto úvahy místo klasických vektorů namontovat na funkce z intervalu [-1, 1], a to tak že na ně budeme pohlížet jako na prvky (nekonečně rozměrného) vektorového prostoru (tento přístup už jsme viděli v závěru tohoto Matykání). Jako příklad si vezmeme funkci y = exp(x), která bude hrát roli vektoru u. Roli podprostoru P bude hrát množina všech kvadratických polynomů na intervalu [-1, 1]. Ověřte si, že je to skutečně lineární podprostor, tj. při provádění součtu či skalárního násobku z této množiny nevypadneme.

Exponenciála (na zvoleném intervalu) bude tedy vektorem našeho prostoru. A protože není prvkem podprostoru P (exponenciála není polynom), „trčí“ z něho ven a dá se do něho zpátky promítnout stejně jako vektor, tedy tak že najdeme polynom, který je jí nejblíže ve smyslu normy.

Na prostoru funkcí si zavedeme skalární součin jako integrál (spojitý součet) přes interval [-1, 1].

(f,g) = ∫ f(x) g(x) dx

a z něho dostaneme standardní normu (což bude integrál přes stejný interval)

|| f ||2 = ∫ |f(x)|2 dx

Důležité na posledním vzorečku je, že velikost vektoru (funkce) je v něm vyjádřena jako integrál, tedy hodnota neukotvená v nějakém konkrétním bodě, ale akumulovaná přes celý interval. Pokud budeme hledat kvadratický polynom p, který bude nejlepší možnou aproximací exponenciály exp přes celý tento interval, výsledek bude „stínovat“ exponenciálu globálně, nikoliv jen lokálně.

Budeme tedy minimalizovat výraz:

d(exp,p) = || exp - p ||

Výsledný polynom bude projekcí vektoru (funkce) exp(x) do podprostoru P generovaného třemi nezávislými vektory 1, x a x2 (každý kvadratický polynom je jejich lineární kombinací). Ten podprostor je z definice třírozměrný.

A jak na to? Máme-li ortonormální bázi podprostoru P, pak se dá projekce do něho vyjádřit explicitním způsobem jako kombinace skalárních součinů (projekci samu o sobě označím také P).

P(exp) = (exp,p1)p1 + (exp,p2)p2 + (exp,p3)p3

Polynomy 1,x a x2 však bohužel ortonormální bázi vzhledem k našemu skalárnímu součinu netvoří, takže si vypůjčíme o něco sofistikovanější bázi, které se říká Legendreovy polynomy (na konstrukci těchto speciálních polynomů se můžete dívat jako na aplikaci Gram-Schmidtovy ortonormalizace).

p1(x) = 1/sqrt(2)
p2(x) = x * Sqrt[3/2]
p3(x) = (3 * x^2 - 1) * Sqrt[5/8]

Pokud rádi integrujete, můžete si ověřit, že ve smyslu výše uvedených norem a skalárních součinů jsou tyto tři polynomy opravdu ortonormální. A s nimi můžeme začít vyčíslovat předchozí formulku, která nám říká, jaké budou koeficienty rozvoje:

P(exp) = 1.66199 p1 + 0.901117 p2 + 0.226302 p3

A teď ty mysteriózní Legendreovy polynomy p převedeme zpět na prosté mocniny x (podle výše uvedených vztahů):

P(exp) = 0.996294 + 1.10364 x + 0.536722 x2

A toto je nejlepší kvadratický polynom (na obrázku v oranžovém trikotu), který modrou exponenciálu aproximuje globálně na intervalu (-1, 1).

Vidíte, že na krajích se to trochu rozjelo, ale to vyplývá z toho, že exponenciála není polynom, takže nemůžeme čekat, že se nám podaří ji globálně „vystínovat“ na celém intervalu. To „rozjetí“ je ale podstatně menší, než když jsme nahoře aproximovali sinus Taylorem v bodě -1 nebo 1.

Také si všimněte, že koeficienty oranžového polynomu nejsou zase tak úplně daleko od Taylora v nule, tedy 1 + x + x2/2. Upřímně řečeno, pokud se vám do téhle projekční habaďůry moc nechce, tak Taylor v prostředním bodě intervalu vám většinou dá poměrně snesitelné řešení.

Tento přístup mimochodem nadhazuje celkem zajímavou otázku: nedal by se i ten Taylorův polynom (který jsme dostali tak, že jsme porovnávali derivace) přeformulovat jako optimalizační úloha pro nějakou vhodně zvolenou normu na prostoru funkcí? Koho to zajímá, může se mrknout sem.

Článek je redakčně upravenou verzí blogového příspěvku na serveru iDNES.cz. Publikováno s laskavým svolením autora. Další díly a původní texty jsou dostupné na blogu Jana Řeháčka.

Další články k tématu