Hermiteova interpolacija

3.3. Hermiteova interpolacija#

Ako za zadanu funkciju \(f\) tražimo interpolacijski polinom \(h\) za koji zahtijevamo

\[ h(x_k) = f(x_k), \quad h'(x_k) = f'(x_k), \quad k=0, 1, \ldots, n, \]

onda govorimo o Hermiteovoj interpolaciji. Dakle, osim standardnog uvjeta da se polinom mora podudarati s funkcijom u čvorovima, potrebno je i dodatno podudaranje derivacija polinoma i funkcije u tim istim čvorovima.

Ponovno je potrebno diskutirati egzistenciju i jedinstvenost takvog polinoma.

Teorem 3.23 (Egzistencija i jedinstvenost Hermiteovog interpolacijskog polinoma)

Neka su \(x_0, x_1, \ldots, x_n\) međusobno različite točke, te \(f_0, \ldots, f_n\), \(f_0', \ldots, f_n'\) zadani realni brojevi.

Tada postoji jedinstveni polinom \(h_{2n+1}\) stupnja najviše \(2n+1\) takav da vrijedi

\[ h_{2n+1}(x_k) = f_k, \quad h_{2n+1}'(x_k) = f_k', \quad k=0, 1, \ldots, n. \]

Polinom \(h_{2n+1}\) zovemo Hermiteov interpolacijski polinom.

Dokaz.

Konstruiramo bazu analognu onoj kod Lagrangeovog oblika „običnog” interpolacijskog polinoma. Pokažimo da postoje polinomi \(h_{k, 0}\) i \(h_{k, 1}\), \(k=0, \ldots, n\) takvi da vrijedi:

(3.11)#\[\begin{split}h_{k, 0}(x_i) = \left\{\begin{array}{ll} 0, & \text{ za } i \neq k, \\ 1, & \text{ za } i = k, \\ \end{array}\right. \quad\quad h'_{k, 0}(x_i) = 0, \text{ za sve } i,\end{split}\]

te

(3.12)#\[\begin{split}h_{k, 1}(x_i) = 0, \text{ za sve } i, \quad\quad h'_{k, 1}(x_i) = \left\{\begin{array}{ll} 0, & \text{ za } i \neq k, \\ 1, & \text{ za } i = k. \\ \end{array}\right.\end{split}\]

Ako nađemo takve polinome, onda je očito

\[ h_{2n+1}(x) = \sum_{k=0}^n ( f_k h_{k, 0}(x) + f_k' h_{k, 1}(x) ) \]

traženi Hermiteov interpolacijski polinom koji zadovoljava uvjet iz iskaza teorema:

\[\begin{split} \begin{align*} h_{2n+1}(x_i) &= \sum_{k=0}^n ( f_k h_{k, 0}(x_i) + f_k' h_{k, 1}(x_i) ) = f_i h_{i, 0}(x_i) = f_i, \\ h_{2n+1}'(x_i) &= \sum_{k=0}^n ( f_k h_{k, 0}'(x_i) + f_k' h_{k, 1}'(x_i) ) = f_i' h_{i, 1}'(x_i) = f_i'. \end{align*} \end{split}\]

Lako se vidi da polinome \(h_{k, 0}\) i \(h_{k, 1}\) možemo definirati ovako:

\[\begin{split} \begin{align*} h_{k, 0}(x) &:= \left( 1 - 2(x-x_k) \ell_k'(x_k) \right) \ell_k^2(x), \\ h_{k, 1}(x) &:= (x-x_k) \ell_k^2(x), \\ \end{align*} \end{split}\]

pri čemu je \(\ell_k\) odgovarajući polinom Lagrangeove baze za „običnu” interpolaciju samo funkcijskih vrijednosti \(f_k\) u čvorovima \(x_k\), \(k=0, \ldots, n\). Direktnim uvrštavanjem točaka \(x_k\) provjerite da zaista vrijedi (3.11) i (3.12).

Kako je svaki od polinoma \(\ell_k\) stupnja \(n\), slijedi da su \(h_{k, 0}\) i \(h_{k, 1}\) polinomi stupnja \(2n+1\), pa je onda \(h_{2n+1}\) polinom stupnja \(\leq 2n+1\). Time smo pokazali egzistenciju traženog polinoma.

Da pokažemo jedinstvenost, pretpostavimo da postoji neki drugi polinom \(q_{2n+1}\) stupnja \(\leq 2n+1\) sa svojstvima iz iskaza teorema. Tada je razlika \(e(x) := h_{2n+1}(x) - q_{2n+1}(x)\) ponovno polinom stupnja \(\leq 2n+1\) za koji vrijedi

\[\begin{split} \begin{align*} e(x_k) &= h_{2n+1}(x_k) - q_{2n+1}(x_k) = f_k - f_k = 0, \\ e'(x_k) &= h_{2n+1}'(x_k) - q_{2n+1}'(x_k) = f_k' - f_k' = 0, \quad k=0, 1, \ldots, n. \end{align*} \end{split}\]

Stoga su \(x_0, \ldots, x_n\) nultočke kratnosti \(2\) polinoma \(e\), tj. \(e\) ima ukupno \(2n+2\) nultočki. Slijedi da je \(e\) nul-polinom, odnosno, \(q_{2n+1} = h_{2n+1}\) i Hermiteov interpolacijski polinom je jedinstven.

Izraze za grešku kod Hermiteove interpolacije možemo izvesti posve analogno kao kod „obične” (tzv. Lagrangeove) interpolacije. Pojavit će se ponovno polinom čvorova kod kojeg se sada svaki čvor javlja dva puta, tj. ima dvostruke nultočke:

\[ \omega_h(x) := (x-x_0)^2 (x-x_1)^2 \ldots (x-x_n)^2 = \omega(x)^2. \]

Ovdje je \(\omega\) polinom čvorova Lagrangeove interpolacije koji koristimo i u donjem teoremu.

Teorem 3.24 (Greška Hermiteove interpolacije)

Neka je \(f : [a, b] \to \R\) zadana funkcija, te:

  • neka su \(x_0, \ldots, x_n \in [a, b]\) međusobno različiti čvorovi interpolacije;

  • neka prva derivacija \(f'(x_k)\) postoji u čvorovima \(x_0, \ldots, x_n\).

Označimo sa \(e_h(x) := f(x) - h_{2n+1}(x)\) grešku Hermiteovog interpolacijskog polinoma \(h_{2n+1}\) za funkciju \(f\) na mreži čvorova \(x_0, \ldots, x_n\).

Za svaki \(x \in [a, b]\) koji nije čvor interpolacije vrijedi:

\[ e_h(x) = \omega^2(x) f[x_0, x_0, x_1, x_1, \ldots, x_n, x_n, x]. \]

Dodatno, ako na \([a, b]\) postoji \(f^{(2n+2)}\), onda za svaku točku \(x \in [a, b]\) postoji točka \(\xi \in \langle x_{\min}, x_{\max} \rangle\) takva da je

\[ e_h(x) = \omega^2(x) \frac{f^{(2n+2)}(\xi)}{(2n+2)!}. \]

Ovdje je \(x_{\min} = \min\{x, x_0, \ldots, x_n\}\), \(x_{\max} = \max\{x, x_0, \ldots, x_n\}\).

Uočite da su dobiveni izrazi za grešku posve identični kao kad bismo radili Lagrangeovu interpolaciju u čvorovima \(x_0, x_0+h, x_1, x_1+h, \ldots, x_n, x_n+h\) i onda pustili \(h \to 0\).

Uz bazu koju smo koristili u dokazu Teorema 3.23, Hermiteov intepolacijski polinom možemo zapisati i u Newtonovoj bazi. To ponovno radimo kao kod i ranije, pri čemu:

  • Uzimamo kao da se svaki čvor interpolacije javlja dva puta: \(x_0, x_0, x_1, x_1, \ldots, x_n, x_n\).

  • Podijeljene razlike s dvostrukim čvorom računamo proširenjem po neprekidnosti: \(f[x_k, x_k] = \lim_{h \to 0} f[x_k, x_k+h] = \lim_{h \to 0} \frac{f(x_k + h) - f(x_k)}{h} = f'(x_k)\).

Vidimo da će se u tablici pojaviti upravo vrijednosti \(f'(x_k) = f_k'\) koje su nam i zadani podaci za interpolaciju!

\[\begin{split}\begin{array}{c|ccccc} t_j & f[t_j] & f[t_j, t_{j+1}] & f[t_j, t_{j+1}, t_{j+2}] & \ldots & f[t_0, \ldots, t_{2n+1}] \\ \hline x_0 & \red{f[x_0]} & & & & \\ & & \red{f'(x_0)} & & & \\ x_0 & f[x_0] & & \red{f[x_0, x_0, x_1]} & & \\ & & f[x_0, x_1] & & \ddots & \\ x_1 & f[x_1] & & f[x_0, x_1, x_1] & & \red{f[x_0, x_0, \ldots, x_n, x_n]} \\ & & f'(x_1) & & & \\ x_1 & f[x_1] & & f[x_1, x_1, x_2] & & \\ \vdots & \vdots & \vdots & \vdots & & \\ x_{n} & f[x_n] & & f[x_{n-1}, x_{n}, x_{n}] & & \\ & & f'(x_n) & & & \\ x_n & f[x_n] & & & & \end{array}\end{split}\]

Sada Hermiteov interpolacijski polinom dobivamo kao:

\[\begin{split} \begin{align*} h_{2n+1}(x) &= \red{f[x_0]} + \red{f'(x_0)}(x-x_0) + \red{f[x_0, x_0, x_1]} (x-x_0)^2 \\ &\quad + \red{f[x_0, x_0, x_1, x_1]} (x-x_0)^2 (x-x_1) + \ldots \\ &\quad + \red{f[x_0, x_0, \ldots, x_n, x_n]} (x-x_0)^2 (x-x_1)^2 \ldots (x-x_{n-1})^2 (x-x_n). \end{align*} \end{split}\]

Općenita Hermiteova interpolacija

Naziv Hermiteova interpolacija koristi se i u općenitijem slučaju: zadana je funkcija \(f : [a, b] \to \R\) i različiti čvorovi \(x_0, x_1, \ldots, x_n\) te je potrebno pronaći interpolacijski polinom \(p\) takav da vrijedi:

\[ p(x_k) = f(x_k), \quad p'(x_k) = f'(x_k), \quad p''(x_k) = f''(x_k), \quad \ldots, \quad p^{(\alpha_k-1)}(x_k) = f^{(\alpha_k-1)}(x_k), \]

tj. za svaki čvor \(x_k\), polinom se mora podudarati s vrijednosti funkcije u tom čvoru te sa svim njenim derivacijama do uključivo one reda \(\alpha_k - 1\). Za svaki čvor \(x_k\) može biti zadana proizvoljna vrijednost \(\alpha_k\).

Može se pokazati da uvijek postoji jedinstveni takav interpolacijski polinom \(p\) stupnja \(\leq \alpha_1 + \alpha_2 + \ldots + \alpha_n - 1\).

Na primjer, ako imamo samo jedan čvor \(x_0\) i želimo da se polinom \(p\) podudara s funkcijom \(f\) u točki \(x_0\) i sa njenih prvih \(n\) derivacija u toj točki, onda dobivamo

\[\begin{split} \begin{align*} p(x) &= f[x_0] + f[x_0, x_0](x-x_0) + f[x_0, x_0, x_0](x-x_0)^2 + \ldots + f[\underbrace{x_0, x_0, \ldots, x_0}_{n+1}](x-x_0)^n \\ &= f(x_0) + f'(x_0)(x-x_0) + \frac{f''(x_0)}{2!}(x-x_0)^2 + \ldots + \frac{f^{(n)}(x_0)}{n!}(x-x_0)^n, \end{align*} \end{split}\]

što je upravo Taylorov polinom stupnja \(n\) za funkciju \(f\) oko točke \(x_0\)! Ovdje smo iskoristili tvrdnju iz Propozicije 3.14: \(f[\underbrace{x_0, \ldots, x_0}_{k+1}] = \frac{f^{(k)}(x_0)}{k!}\).

Kod općenite Hermiteove interpolacije ne smijemo preskakivati derivacije u nekom čvoru (npr. ne smijemo tražiti \(p(x_1) = f(x_1)\) i \(p''(x_1) = f''(x_1)\) bez da tražimo i \(p'(x_1) = f'(x_1)\)) jer u protivnom može postojati i više interpolacijskih polinoma, tj. gubimo jedinstvenost.