Modelování funkcí


Definice

Je-li dána nějaká funkce, potom jejím modelem nazveme funkci, která se jí v něčem podobá.

Model funkce často používáme jako náhradu původní funkce.

V dalším textu si ukážeme dva druhy modelů.


Lineární interpolace
  • Nechť je dána nějaká funkce (na obrázku zakreslena azurově) a dva její body pro různá x, například [x1, y1] a [x2, y2].
  • Potom se jako její model nabízí lineární funkce y = k * x + q proložená těmito dvěma body. Takový model se nazývá lineární interpolace (na obrázku je zakreslen zeleně).
  • Skutečnost, že proložená přímka prochází oběma body, můžeme zapsat takto:
           y1 = k * x1 + q a současně y2 = k * x2 + q.
  • Na tyto dva vztahy se můžeme dívat jako na dvojici rovnic s proměnnými k a q a parametry y1, x1, y2, x2.
  • Tyto rovnice můžeme řešit:
Nejdříve výpočteme k:
      y1 - k * x1 = q                   // spočteme z obou rovnic q
      y2 - k * x2 = q
      y1 - k * x1 = y2 - k * x2    // jelikož se rovnají pravé strany, rovnají se i levé
      k * x2 - k * x1 = y2 - y1    // přesuneme y1 vpravo a  - k * x2 vlevo
      k * (x2 - x1) = y2 - y1        // vytkneme k
      k = (y2 - y1 ) / (x2 - x1)     // podělíme (x2 - x1), což můžeme, jelikož je x1 ≠ x2

Potom výpočteme q:

     K tomu stačí dosadit známé hodnoty třeba do y1 = k * x1 + q.

Příklad

O funkci víme, že prochází body [1,6; 1,4] a [3,2; 4] - oba body jsou vzaty z obrázku nahoře.

Výpočet k: k = (y2 - y1 ) / (x2 - x1) = (4 - 1,4) / (3,2 - 1,6) = 2,6 / 1,6 = 1,625
Výpočet q: q = y1 - k * x1 = 1,4 - 1.625 * 1,6 = -1,2

Řešením je tedy funkce s předpisem y = 1,625 * x  - 1,2



Interpolace polynomem
  • Nechť je dána nějaká funkce a jejích n bodů pro různá x, například 
    [x1, y1], ... [xn, yn].
  • Potom jako její model můžeme vzít polynom proložený těmito body. Tento model se nazývá interpolační polynom.
  • Napohled je jeho nalezení složité, ale existuje chytrá úvaha, která nám pomůže:
    • Pro každý ze zadaných bodů [xi, yi] umíme zapsat polynom pi(x), který:
      • pro x = xi nabývá hodnoty y = yi,
      • pro ostatní x = x1, ... xn nabývá hodnoty y = 0.
      • Je to polynom n-tého stupně
             pi(x) = yi * ((x - x1) * ... * (x - zn)) / ((xi - x1) * ... * (xi - zn))
    • Součet polynomů p1(x) + ... + pn(x) dává funkci s potřebnými vlastnostmi.
    • Jeho ruční výpočet je zdlouhavý, ale to příliš nevadí, protože v praxi se používají hotové matematické programy.
Animace interpolace polynomem
  • Z počátku jsou zadány pouze dva body A, B, postupně lze stiskem tlačítka "Add point" přidávat další.
  • Body lze libovolně posunovat.
  • Interpolační polynom je zakreslen modře.
  • Tečkovaně je zakreslena jeho 1. derivace.
  • Čárkovaně je zakreslena jeho 2. derivace.

Zdroj