Prirodzené kubické spajny (Spline)

Dnes pokračujem v štúdiu numverickej matematiky. Ako som si za tie roky učenia uvedomil, je efektívne si teóriu vyskúšať aj v praxi. A tak som sa trocha pohral s kubickými spline-ami. Pre záujmcov jazykovedy: názov spline pochádza z námorníctva, išlo o nástroj, ktorý aproximoval “najhľadšiu” (s minimálnou krivosťou = curvature) krivku cez dané body.

Síce Čebyševové polynómy aproximujú funkcie najpresnejšie zo všetkých polynómov, tak mimo aproximovaného intervalu prichádza k veľkým odchýlkam nazývanými ako

Runge-ov fenomén. A preto sa pre lepšiu aproximáciu používa iný prístup. Spočíva v tom, že rozdelíme interval na časti a na každej časti aproximujeme polynómom (v našom prípade tretieho stupňa – kubický spline). Navyše, chceme aby výsledná funkcia (zložená z čiastkových funkcií na intervaloch) bola spojitá až do druhej derivácie. Spolu s podmienkami pre funkčné hodnoty máme 4*n podmienok, kde n je počet intervalov na ktoré sme delili. Vhodným integrovaním a riešením sústavy nerovníc (ktorá má práve jedno riešenie) dostávame jednotlivé kubické polynómy.

Spline-i sa používajú hlavne v počítačovej grafike. Sú vhodné kvôli výpočtovej nenáročnosti. A navyše “vyzerajú krajšie” ako Beziérové krivky.

V nasledujúcom sme použili spline-i z wikipédie. Čiernou je vykreslený výsledný prirodzený kubický spline a ostatnými farbami sú znázornené čiastkové polynómy. Aproximovali sme normálne rozdelenie. Na vytvorenie grafu sme použili program GNUplot.

Author: Peter Csiba

Software Engineer at Google

One thought on “Prirodzené kubické spajny (Spline)”

Leave a Reply

Your email address will not be published. Required fields are marked *