Splajnová interpolácia

Na stránke SHMÚ nájdeš klimatologické mapy Slovenska. Hovoria o priemernej teplote, zrážkach, či vyparovaní vlahy zo zeme. Nie je to predpoveď toho, aká bude teplota alebo zrážky v budúcnosti. Sú to mapy aktuálneho stavu a stavu v blízkej minulosti (ako to vyzeralo v predošlom mesiaci).
klimatologická mapa Slovenska
Obr. 1.: Klimatologická mapa
Existuje veľa oblastí, pre ktoré sú tieto údaje dôležité. Napríklad vodohospodári na základe nich regulujú vodné nádrže, poľnohospodári sú informovaní o vlahe v pôde, hasiči vedia, že posledné dni je veľmi sucho a tak hrozia požiare, alebo mestá vedia podľa toho navrhnúť, kde je najlepšie vysadiť nejakú tú zeleň.

Po území Slovenska je umiestnených veľa meteorologických staníc merajúcich teplotu, zrážky, vlhkosť vzduchu, silu vetra a ďalšie meteorologické veličiny. Dozvedieť sa klimatologické podmienky v ich okolí nie je ťažké. No predstav si, že si predseda družstva, máš siať na poliach pod Rakycami, ale nevieš či tam dať niečo, čo má rado sucho alebo vlhko. Rád by si si pozrel aká je po zime vlhkosť pôdy, ale stanice sú ďaleko a ty nemáš informácie.

Našťastie pre teba je tu matematika, ktorá ťa zachráni. Pomocou nej sa dajú dosť dobre odhadnúť hodnoty veličín aj na miestach, kde nie sú namerané. Z týchto odhadov sa spraví klimatologická mapa, ty sa na ňu pozrieš a vieš, čo máš pod Rakycami zasadiť.

Jeden zo spôsobov, ako robiť odhady je interpolácia a tú si teraz ukážeme. Aby to nebolo iba nudné čítanie, nachystali sme ti taký malý príkladíček s teplotou, ktorý môžeš s nami rátať. Sľubujeme, že je to veľmi zjednodušený príklad, aby si sa vyhol ohavnej matematike, ktorá tam v realite na človeka striehne. Celý nasledovný článok je taká úvaha, ako sa k danej metóde výpočtu dostaneme, tak sa nezľakni, keď miestami odbočíme.

Interpolácia

Ako sme už vyššie spomenuli, interpolácia sa používa na odhadovanie chýbajúcich hodnôt. Údaje môžu chýbať medzi nameranými veličinami, no takisto ich môže byť treba odhadnúť mimo rozsahu nameraných hodnôt. Preto si v krátkosti predstavíme dva pojmy - interpoláciu a extrapoláciu. Extrapoláciou sa zaoberať nebudeme. Vo zvyšku článku sa povenujeme iba interpolácii.

Predstav si, že od rána 8:00 do večera 19:00 meriaš každú hodinu teplotu. Teraz chceš zistiť teplotu o 12:30. Tú nameranú nemáš, takže to musíš odhadnúť. Aby to bolo presnejšie ako číslo, ktoré si len tak vymyslíš, treba to nejak zrátať. Presne na toto slúži interpolácia. Ona slúži na to, aby sa čo najviac presne dali určiť hodnoty medzi nameranými hodnotami. Extrapolácia je zasa metóda, pomocou ktorej sa určuje hodnota, ktorá už nie je v rámci nameraných údajov. Extrapoláciu by si použil, keby chceš vedieť teplotu o 19:53.

My sa budeme baviť ďalej iba o teplote, ale v skutočnosti môžeš interpolovať hocičo. Napríklad geodeti interpolujú nadmorskú výšku alebo v počítačoch sa niekedy takto dopočítava farba pixelov.
rozdiel medzi interpoláciou a extrapoláciou
Obr. 2.: Od 10:00 do 14:00 je každú hodinu odmeraná teplota. Pomocou interpolácie sa zisťujú neznáme hodnoty medzi nameranými údajmi. Extrapoláciou sa zisťujú neznáme hodnoty, ktoré sú už mimo nameraných údajov.
Ďalej sa budeme zaoberať už iba interpoláciou. Existuje viacero spôsobov, ako zinterpolovať hodnotu medzi bodmi. Najjednoduchšia je lineárna interpolácia. To sa z údajov vypočíta lineárna funkcia a hodnoty sa určujú podľa nej. Problémom je, že je to dosť nepresné, pretože nie všetky namerané údaje ležia na nej.

Iný spôsob interpolácie je polynomiálna interpolácia. Pri nej sa hľadá polynóm, o stupeň menší, ako je údajov (keď je napr. 10 údajov, tak polynóm bude stupňa 9). Táto funkcia už dokáže trafiť namerané body, no nevýhoda je, že okolo nameraných bodov začne robiť blbosti (osciluje okolo nich).

Spôsob, ktorý rieši tieto problémy sa nazýva splajnová interpolácia. Funguje to tak, že na tie namerané hodnoty akokeby spustíš gumovú hadicu. Ona ostane zavesená na tých nameraných údajoch, ale sa tak jemne poohýba. Tvrdosť alebo mäkkosť hadice sa dá regulovať. Od toho závisí, ako veľmi bude pri nameraných bodoch ovísať.

Od tohto poetického opisu splajnovej interpolácie poďme k matematike. V praxi to funguje tak, že sa zo susedných bodov spraví nejaká funkcia a tá je definovaná na intervale medzi týmito bodmi. Môže to byť napríklad polynóm prvého, druhého alebo tretieho stupňa (teda lineárna, kvadratická alebo kubická funkcia). Najčastejšie to býva polynóm tretieho stupňa, pretože pri ňom sa výsledná funkcia najlepšie približuje k údajom a je čo najhladšia, hlavne na zlomoch. Pretože keď sa to robí napríklad lineárnou funkciou, tak sa to na nameraných bodoch prudko mení. No svet tak nefunguje. Medzi teplotami o 11:59 a 12:01 nie je veľká zmena.
interpolačné metódy
Obr. 3.: Lineárna interpolácia - nevie trafiť údaje presne. Polynomiálna interpolácia - pri polynómoch vysokého stupňa začne vystrájať a tak by sme medzi teplotami 10°C a 15°C mohli v pohode dostať teplotu 35°C. Spline interpolácia (lineárna funkcia) - keď sa hodnoty medzi dvomi bodmi odhadujú pomocou lineárnej funkcie, môže sa stať, že v okolí nameraných bodov bude prudká zmena teploty. Spline interpolácia (kubická funkcia) - v praxi sa používa polynóm stupňa tri. On má v okolí nameraných bodov "hladší" priebeh, a tak tie funkcie na seba oveľa lepšie nadväzujú. Vo výsledku to dá jednu veľkú funkciu, ktorá trafí údaje a je pekná hladká.

Naozajstný problém

Ak ťa už z tohto bolí hlava, tak sa bež na chvíľu prejsť na vzduch lebo toto bol len začiatok 😊. Skutočný problém, ktorý sa musí riešiť, je trochu zložitejší. Predstav si naše Slovensko. Po rôznych miestach na ňom sú rozostavané meteorologické stanice merajúce teplotu a iné rozličné veci. Aby sme sa na každom kroku o ne nepotkýnali, nie sú zas nastavané každé dva metre. No teplotu chceme vedieť na hociktorom mieste medzi nimi.
kúsok z mapy Slovenska
Obr. 4.: Meteorologické stanice sú v dedinách Dobrá Niva, Babiná, Bzovská Lehôtka, Pliešovce a Podskalka. Teplotu by radi vedeli aj obyvatelia Sásy, lenže tam stanica nie je. Treba ju preto dopočítať.
V naozajstnej praxi by sme dostali zoznam meteorologických staníc, ich polohu a nameranú teplotu. Zobrali by sme zemepisnú šírku, zemepisnú dĺžku a nadmorskú výšku každej stanice a snažili sa nájsť funkciu, ktorá by uhádla nameranú teplotu nielen na každej stanici, ale aj na akomkoľvek mieste medzi nimi.

Táto funkcia sa tiež nazýva splajnová, ale funguje inak ako splajnová funkcia spomenutá vyššie. Podobné sú iba v tom, že obe funkcie chcú čo najlepšie trafiť namerané hodnoty a zároveň byť čo najhladšie.

Pri teplote nameranej každú hodinu bolo ľahké povedať, že teplota o 13:16 bude medzi teplotami o 12:00 a 14:00. Pri viacrozmerných vstupných údajoch je už problém nájsť dvoch susedov, pretože ktorí z nich sú tí správni? Ktoré sú tie dve dediny, ktoré susedia so Sásou? Pliešovce a Bzovská Lehôtka alebo Babiná a Dobrá Niva? Či Pliešovce a Dobrá Niva? Ťažko určiť. Preto splajnová funkcia vo viacrozmernom priestore funguje inak a s tou, čo sme si vysvetlili má spoločné len meno a to, že chce čo najlepšie trafiť údaje a byť čo najhladšia.

Hľadanie najdokonalejšej funkcie

Najdokonalejšia funkcia, akú vieme dostať musí teda spĺňať dve kritériá. Musí čo najlepšie trafiť údaje a byť čo najhladšia. Hľadanie tej pravej, dokonalej ❤ funkcie sa v matematike nazýva variačný problém. Ide o to, nájsť funkciu, ktorá bude čo najlepšie spĺňať obe podmienky.
$$ \sum_{j=1}^{N}(z_j - S(x_j))^2 \, w_j \;+\; w_0 \, I(S) \;=\; \min $$
Máme N nameraných hodnôt. Nameraná hodnota je označená písmenom $z$. Písmenom $x$ sú označené body, v ktorých bola teplota meraná. Môžu to byť napríklad hodiny alebo miesto na mape v GPS súradniciach. Funkcia, ktorú hľadáme je označená písmenom $S$.

Chceme nájsť chybu, ktorá je medzi skutočnými hodnotami $z$ a ich odhadom pomocou funkcie $S$. Pomocou rozdielu $z_j - S(x_j)$ zistíme, ako sa odhadnuté údaje líšia od skutočnosti. Umocnenie rozdielu $(z_j - S(x_j))^2$ zamedzí tomu, aby sa chyby navzájom vynulovali (jeden rozdiel bude 2, druhý -2, celková chyba je 0. Niečo tu trošku smrdká.) a zároveň väčšie chyby zvýrazní viac. Váha $w_j$ býva číslo medzi 0 a 1 a hovorí o tom, na koľko percent chybe dôverujeme (napríklad o 10:00 sme teplomer zabudli v tieni, takže nameraná teplota nebude natoľko výpovedná ako ostatné). Suma $\sum_{j=1}^{N}(z_j - S(x_j))^2 \, w_j$ iba spočíta všetky rozdiely medzi skutočnosťou a odhadom dokopy.

Druhý člen $w_0 \, I(S)$ ráta to, ako veľmi je funkcia hladká. O chybe hladkosti hovorí konkrétne funkcia $I(S)$. Je to pestrá zmes integrálov a derivácií, takže tým ťa zaťažovať nebudeme. Váha $w_0$ vyjadruje akúsi rovnováhu medzi hladkoťou funkcie a tým, ako presne triafa údaje.

Na konci výrazu je $=\; \min$, čím chceme povedať, že chyba zložená z chyby odhadnutých údajov a chyby hladkosti funkcie má byť čo najmenšia.


🦉 ÚLOHA

Vyskúšaj si, či by si vedel nájsť optimálny model ty. Uľahčíme ti to a budú na výber iba dva modely. Stačí, keď na to použiješ iba prvú časť chyby: $\sum_{j=1}^{N}(z_j - S(x_j))^2 \, w_j$. Teplota je "nameraná" o 10:00, 11:00, 12:00

x 10 11 12
meranie 10 20 16


Váhy sú nasledovné: $w_1=0.5$, $w_2=0.9$ a $w_3=0.75$.


Tento problém našťastie už vyriešili pred nami. Vyšla im z toho funkcia, o ktorej si teraz povieme. Na svojom vstupe berie troj a viacrozmerné údaje a to je príliš komplikované na vysvetľovanie. Preto si problém zľahčíme. Prenesieme sa do sveta iba 1D vstupných údajov.

"Nameranie" údajov

Príklad treba na niečom vysvetliť, tak sme od rána do večera každú hodinu merali teplotu. Zaujímala by nás však aj teplota medzi meraniami. Tú nemáme a tak si ju skúsime dopočítať splajnovou interpoláciou.

Teraz ti prezradíme veľké tajomstvo, ale nikomu to nehovor 😉. Teplotu sme v skutočnosti nemerali, ale na jej nasimulovanie sme použili kvadratickú funkciu.

🦉 ÚLOHA

Skús nájsť takú kvadratickú funkciu $f(x) \;=\; a\,x^2+b\,x+c$, ktorá nasimuluje pekný májový deň. Ráno bude chladné, okolo 6°C. Na obed vystúpi teplota na 22°C a na večer klesne na 14°C. Ideálne keď si to najprv premyslíš sám, v hlave, bez počítača a až potom si výsledok overíš.





My sme použili nasledovnú funkciu: $f(x) \;=\; -0.1\,x^2+0.5\,x+20$. Pripočítali sme k nej aj náhodné čísla od 0 po 2, aby sme vniesli trochu šumu do údajov. Veď ani naozajstná teplota nesleduje kvadratickú funkciu do bodky presne.
naša nasimulovaná teplota
Obr. 5.: Naša nasimulovaná teplota.

Prvý pokus o interpoláciu

Ideme dať prvý pokus o dopočítanie údajov medzi nameranými hodnotami. O 10:00 je nameraných 10°C a o 11:00 bude teplota 20°C.

🦉 ÚLOHA

Akú teplotu by si tipoval o 10:30, 10:45, 10:15 a 10:20?

🌡️ Riešenie (klikni na mňa)



Všimni si, že výsledná teplota v bode, v ktorom ju rátame, závisí od toho, ako ďaleko je daný bod od bodov s nameranými hodnotami. Keď bol bližšie k 10:00, viac teploty sa bralo z 10:00 a keď bol bližšie k 11:00, viac teploty sa bralo odtiaľ.

O 12:00 teplota klesne na 16°C.

🦉 ÚLOHA

Nakresli si to na papier. O 10:00 je teplota 10°C, o 11:00 je 20°C a o 12:00 je 16°C.

Zakresli si tam aj teploty o 10:15, 10:20, 10:30, 10:40. Rátal si ich v minulej úlohe. Ešte tam doplň teploty o 11:20, 11:30 a 11:45. Tie nemáš nikde, musíš ich vypočítať.


Spôsob, ktorým si teraz rátal teploty sa nazýva lineárna interpolácia. Mal by si z toho dostať nejaký takýto graf:
lineárna interpolácia teploty
Obr. 6.: Graf teploty, ktorý si dostal lineárnou interpoláciou.

Zjemnenie prechodov medzi nameranými bodmi

O 11:00 vidíš, ako sa teplota láme. Rozdiel medzi teplotami o 10:59 a o 11:01 je pomerne veľký. V krátkom časovom okamihu sa teplota v reálnom svete mení viac plynulo. Navyše teplota sa dá vyskladať iba z dvoch susedných bodov. V budúcnosti sa to stane problémom, lebo teplotu budeme rátať z viacerých susedov.

Prechod chceme plynulejší a do výpočtu chceme brať viacero susedov. Vedci zistili, že je fajn dávať vzdialenosť medzi bodmi do funkcie $e^{-r^2}$. Za písmenko $r$ sa dosádza absolútna hodnota vzdialenosti medzi bodmi.
Graf funkcie e na mínus r na druhú
Obr. 7.: Graf funkcie $e^{-r^2}$. Na ňom je vidno, že blízko nuly hodnoty funkcie (váhy) rastú/klesajú viac pozvoľne. Potom začnú rásť/klesať strmo až sa dostanú do bodu, odkiaľ znova rastú/klesajú mierne. To dáva funkcii "zaoblený" tvar a ten vďaka násobeniu funkcia prenesie aj na vyrátané teploty.


🦉 ÚLOHA

Zober si svoje obľúbené časy (ty vieš ktoré) a vyrátaj pre ne váhy pomocou funkcie $e^{-r^2}$

Nech nás neohováraš po susedoch, že sme na teba zlí, tu je tabuľka s vyrátanými vzdialenosťami. Nech je tvoj život ľahší. A nech je ešte ľahší, stačí, keď vyrátaš ľubovoľných päť váh.
10 11 12
10:15 0.25 0.75 1.75
10:20 0.33 0.66 1.66
10:30 0.5 0.5 1.5
10:45 0.75 0.25 1.25
11:20 1.33 0.33 0.66
11:30 1.5 0.5 0.5
11:45 1.75 0.75 0.25


🕙 Riešenie (klikni na mňa)



Odbočka - násobenie funkcií

Už vieš, ako vyrátať hodnoty funkcie $e^{-r^2}$. Teraz si trochu odskočíme a pozrieme sa na to, ako vzájomné násobenie funkcií ovplyvňuje ich tvar. Chceme ti tým ukázať, že keď sa na vzdialenosti použije funkcia $e^{-r^2}$, tak ovplyvní tvar výslednej splajnovej funkcie.

Na ukážku použijeme jednoduchú lineárnu funkciu $y=r$. Jej hodnoty sa prenásobia hodnotami funkcie $e^{-r^2}$. Prv než si to pozrieš na grafe, skús si pár hodnôt vyrátať.

🦉 ÚLOHA

Tu je pár hodnôt lineárnej a $e^{-r^2}$ funkcie. Vyrátaj ich súčin a nakresli si to do grafu.
r 0 0.25 0.5 0.75 1
$y=r$ 0 0.25 0.5 0.75 1
$y=e^{-r^2}$ 1 0.94 0.78 0.57 0.37
$y=r*e^{-r^2}$


📈 Riešenie (klikni na mňa)



Násobenie funkcií
Obr. 8.: Zelená funkcia je výsledok násobenia funkcií $y=e^{-r^2}$ a $y=r$. Na grafoch všetkých funkcií sú vyznačené guličky. To sú ich hodnoty v bodoch 0, 0.25, 0.5, 0.75 a 1.

Problém pri viacrozmerných údajoch

Pri viacrozmernom vstupe narazíme na problém. Na obrázku má Dobrá Niva 25°C. Okrem nej sú tam aj ďalšie dediny s nameranou teplotou a váhou, ktorou prispievajú do teplôt ostatných dedín. Každá dedina samozrejme prispieva sama sebe 100% teploty, čiže sama so sebou má tento násobok 1. Ak by sme pomocou nich chceli vyrátať teplotu v Dobrej Nive, mala by nám vyjsť tiež 25°C, nie?
vyrátaj teplotu v Dobrej Nive
Obr. 9.: Vyrátaj teplotu v Dobrej Nive. Farebné čiary a čísla sú váhy, akými na seba vplývajú jednotlivé dediny.
Ak ti vyšla teplota 77.6°C, nie je to tým, že v Dobrej Nive pálili pneumatiky a úplne si zničili klímu. Nesprávny je spôsob, akým sa rátala výsledná teplota:
$23\cdot0.7+22\cdot0.5+19\cdot0.5+20\cdot0.8+25\cdot1=77.6$


Vedci našli spôsob, ako sa vyhnúť tomuto problému. Namiesto nameraných teplôt treba nájsť iné čísla, a to také, že keď sa vynásobia s váhou, tak dajú dokopy nameranú teplotu. Tieto čísla sú neznáme a treba ich vyrátať. Od vedcov dostali označenie gréckym písmenom lambda $\lambda$. Jednotlivé čísla sú označené ako $\lambda_1, \lambda_2, \lambda_3, ..., \lambda_n$.

🦉 ÚLOHA

Vrátime sa k jednoduchému príkladu s tromi teplotami, lebo na takom sa to najľahšie ráta:
x 10 11 12
meranie 10 20 16


Z teplôt o 10:00 a 12:00 vyrátaj teplotu o 11:00. Logicky by to malo sedieť s tým, čo je namerané. Sedí to? Nebudeme ťa dlho napínať, nesedí to. Vyrátaná teplota je (klikni sem): Chceli sme ti len ukázať, že doterajší spôsob uvažovania nebude fungovať ani na takomto jednoduchom príklade.

🏡 Chceme znova vyrátať teplotu o 11:00 a tento raz už dobre. Skús prísť na to, ako by si tieto neznáme čísla $\lambda$ našiel.

🏡 Riešenie (klikni na mňa)



To neznáme číslo $\lambda$ tu slúži ako niečo, čo zachytáva správanie údajov. Pohľadali sme také čísla, ktoré spolu s váhami vzdialeností dávajú namerané teploty.

Trendová funkcia

Lenže to nie je všetko. Náš príklad je príliš jednoduchý a tak lambda jednoducho zachytí trend. Na Slovensku je veľa meteorologických staníc a tak lambda sa nemusí naučiť všetko a potom bude dávať zlé výsledky. Preto jej pomôžeme niečím, čo sa volá trendová funkcia.

Na nameraných teplotách si môžeš všimnúť, že majú akýsi trend/tendenciu vo všeobecnosti nejako rásť či klesať. Naše do obeda rastú a po obede klesajú.
naša nasimulovaná teplota má tendenciu
Obr. 10.: Naša nasimulovaná teplota do obeda najprv rastie a po obede klesá. Úplne vo všeobecnosti majú údaje tendenciu rásť.
Tento trend sa odhadne jednoduchým polynómom, lineárnym, kvadratickým alebo kubickým.

🦉 ÚLOHA

Vrátime sa k úlohe, kde si hľadal ideálny model pre namerané hodnoty. Určite si zistil, že je to model $3x-18$. Úlohu ti trochu uľahčíme a hodnoty, ktoré vracia model vyrátame za teba:
x 10 11 12
meranie 10 20 16
$3x-18$ 12 15 18


Na papier si nakresli graf, kde zaznačíš namerané hodnoty aj aj hodnoty modelu. Máš? Dobre. Teraz odčítaj hodnoty modelu od tých nameraných a nakresli to na papier. Vidíš ten rozdiel? Čísla, ktoré si dostal po odčítaní sú si podobné a sú oveľa menej rozptýlené.


Takto to vyzerá na našich údajoch.
naša trendová funkcia
Obr. 11.: Takto vyzerajú naše údaje, cez ktoré je preložená trendová funkcia. Použili sme polynóm druhého stupňa. Dole sú namerané údaje, od ktorých je odrátaná trendová funkcia.
Vidno, že údaje sú menej rozptýlené a tak sa lambda má menej učiť. V skutočnosti teda neriešime rovnice $$ \begin{aligned} v_{11}\lambda_1 + v_{12}\lambda_2 + \cdots + v_{1n}\lambda_n &= z_1 \\ v_{21}\lambda_1 + v_{22}\lambda_2 + \cdots + v_{2n}\lambda_n &= z_2 \\ \vdots \\ v_{n1}\lambda_1 + v_{n2}\lambda_2 + \cdots + v_{nn}\lambda_n &= z_n \end{aligned} $$ V správnom riešení sa od nameraných hodnôt odčíta trendová funkcia $$ \begin{aligned} v_{11}\lambda_1 + v_{12}\lambda_2 + \cdots + v_{1n}\lambda_n &= z_1-T(x_1) \\ v_{21}\lambda_1 + v_{22}\lambda_2 + \cdots + v_{2n}\lambda_n &= z_2-T(x_2) \\ \vdots \\ v_{n1}\lambda_1 + v_{n2}\lambda_2 + \cdots + v_{nn}\lambda_n &= z_n-T(x_n) \end{aligned} $$ Minule sme pri rátaní $\lambda$ nepoužili trendovú funkciu, tak si $\lambda$ vyrátame ešte raz, už aj spolu s ňou.

🦉 ÚLOHA

Skús túto opravu aplikovať na príklad s teplotami o 10:00, 11:00 a 12:00, aby si tento raz už naozaj našiel tie správne $\lambda$.

🎆 Riešenie (klikni na mňa)



Trendovú funkciu musíme ale znovu prirátať a tak výsledný model bude mať nasledovnú podobu:

P.S.: skús si zodpovedať otázku, že prečo sa tá trendová funkcia musí prirátať naspäť?
$$ S(x) \;=\; T(x)+\sum_{j=1}^{N}\lambda_j\,R(x,x_j) $$
$S$ je výsledný model. $S(x)$ je výsledok modelu pre konkrétne $x$.

$T$ je trendová funkcia. Je to polynóm nízkeho stupňa, ktorý zachytáva všeobecný vývoj údajov (či celkovo stúpajú, klesajú alebo idú rovno). $T(x)$ je výsledok trendovej funkcie pre dané $x$.

$R(x,x_j)$ je funkcia, ktorá sa nazýva "radial basis" funkcia. Do nej sa dáva $x$, pre ktoré sa meria teplota a nejaké susedné $x_j$. Vyráta sa vzdialenosť medzi nimi a pomocou "radial basis" funkcie sa vyráta, ako veľmi budú tieto x-ká na seba vplývať. Čím sú bližšie, tým na seba vplývajú viac. My sme použili $e^{-r^2}$, ale dá sa použiť ľubovoľná funkcia.

$\sum_{j=1}^{N}\lambda_j\,R(x,x_j)$ nám hovorí o tom, že všetky body prispievajú do výslednej teploty v $x$. Prechádzajú sa teda všetky body, pre každý bod sa zoberie jeho $\lambda$ a $R(x,x_j)$ funkcia, ktorá vráti násobok, akým $x_j$ prispeje do výslednej teploty $x$.

Trendová funkcia zachytáva celkové správanie údajov. Tým, že sa k trendovej funkcii pripočíta $\sum_{j=1}^{N}\lambda_j\,R(x,x_j)$, tak sa každý bod upraví tak, aby čo najlepšie sedel s nameranými hodnotami. Vďaka tomu sa trendová funkcia prispôsobí čo najlepšie údajom a snaží sa zostať čo najviac hladká.


🦉 ÚLOHA

Vo vzorci $S(x) \;=\; T(x)+\sum_{j=1}^{N}\lambda_j\,R(x,x_j)$ je zhrnuté všetko, čo sme doteraz robili. Over si, že či je postup správny a vyrátaj teploty pre 10:00, 11:00 a 12:00. Mali by sa rovnať tým nameraným.

⛅ Riešenie (klikni na mňa)



Odhadovanie teplôt

Overené je a funguje to. Teraz už môžeme model použiť na odhadovanie teplôt v akomkoľvek čase medzi 10:00 a 12:00. Vyráta sa vzdialenosť medzi časom a každým nameraným bodom. Tieto vzdialenosti sa prejdú funkciou $e^{-r^2}$ a prenásobia sa vyrátanými lambdami. Teplota v danom bode je hotová.

🦉 ÚLOHA

Vyrátaj teplotu o 10:15, 10:20, 10:30 a 10:45.

☀️ Riešenie (klikni na mňa)



🦉 ÚLOHA

Skús sa z tohto celého vymotať a napíš si celý postup interpolácie. Od bodu, kedy máš namerané hodnoty v nejakom čase až po bod, kedy vieš dorátať teploty medzi týmito nameranými bodmi.

🌪 Riešenie (klikni na mňa)



To je už všetko. Musíš si nájsť nejaké nové príklady na počítanie. Ak po tomto článku nevieš dokonale rátať splajnovú interpoláciu a sem-tam sa našla drobnosť, ktorej si nerozumel, nevadí. Pointou bolo ukázať využitie funkcií v reálnom živote.

Budeme radi, ak si odnesieš poznanie, že tie pochabosti, ktoré sa musíš učiť, nie sú úplne na nič. Nepriamo sa s nimi stretávaš denne, či už pri pozeraní počasia, dopestovanom jedle alebo pri zabránených požiaroch, ktoré mohli prepuknúť a neprepukli. Možno sa raz stretneš s nimi aj priamo, ako človek tvoriaci potrebné podklady pre ďalších ľudí. Dúfame, že si si užil matematiku v praxi, a že sme ťa nepotrápili veľa, ale len tak trošku.😊

Zdroje

Originálny článok z SHMÚ.