Ilorazy różnicowe

by Jerry Sky

2020-11-10



1. Ilorazy różnicowe

Z Twierdzenie#1 wiemy, że dla różnych węzłów x0,x1,,xnx_0, x_1, \dots, x_n istnieje dokładnie jeden wielomian pΠnp \in \Pi_n interpolujący ff taki, że p(xi)=f(xi)(0in). p(x_i) = f(x_i) \quad (0 \le i \le n).

Wielomian pp można przedstawić jako kombinację liniową wielomianów 1,x,x2,,xn1,x,x^2, \dots, x^n (baza Πn\Pi_n). Jednak takie przedstawienie nie jest zalecane, ponieważ prowadzi do układu z macierzą Vandermonde’a (zadanie źle uwarnukowane).
Przedstawmy pp w innej bazie Πn\Pi_n: q0(x)=1q1(x)=(xx0)q2(x)=(xx0)(xx1)qn(x)=(xx0)(xx1)(xxn1) \begin{aligned} q_0(x) &= 1\\ q_1(x) &= (x-x_0)\\ q_2(x) &= (x-x_0)(x-x_1)\\ \dotsb\\ q_n(x) &= (x-x_0) (x - x_1) \dotsb (x - x_{n-1}) \end{aligned}

Czyli mamy p(x)=j=0ncjqj(x). p(x) = \sum_{j=0}^n c_j q_j(x).

Z faktu, że pp spełnia warunki interpolacji, otrzymujemy układ równań, z którego wyznaczamy c0,c1,,cnc_0, c_1, \dots, c_n: j=0ncjqj(xi)=f(xi)(0in) \sum_{j=0}^n c_j q_j (x_i) = f(x_i) \qquad (0 \le i \le n)


Rozwiązując układ z góry w dół wyznaczamy c0,c1,,cnc_0, c_1, \dots, c_n. Możemy zauważyć, że

Wprowadzimy notację cn=f[x0,x1,,xn]c_n = f[x_0, x_1, \dots, x_n].
f[x0,x1,,xn]f[x_0,x_1,\dots,x_n] jest współczynnikiem przy qnq_n.

Jako, że qn(x)=(xx0)(xx1)(xxn1)=xn+ q_n(x) = (x - x_0) (x - x_1) \dotsb (x - x_{n-1}) = x^n + \dotsb więc f[x0,x1,,xn]f[x_0, x_1, \dots, x_n] jest współczynnikiem przy xnx^n wielomianu stopnia co najwyżej nn interpolującego ff w węzłach x0,x1,,xnx_0, x_1, \dots, x_n. Wielkość f[x0,x1,,xn]f[x_0, x_1, \dots, x_n] będziemy nazywali ilorazem różnicowym opartym na węzłach x0,x1,,xnx_0, x_1, \dots, x_n.

Na przykład f[x0]f[x_0] jest współczynnikiem przy x0x^0 wielomianu stopnia 00 interpolującego ff w x0x_0. f[x0]=f(x0). f[x_0] = f(x_0).

f[x0,x1]f[x_0, x_1] jest współczynnikiem przy xx wielomianu stopnia 1\le 1 interpolującego ff w x0,x1x_0, x_1. p(x)=f(x0)+f(x1)f(x0)x1x0(xx0)=f(x0)+f[x0,x1](xx0). p(x) = f(x_0) + \frac{f(x_1) - f(x_0)}{x_1 - x_0} (x - x_0) = f(x_0) + f[x_0, x_1](x - x_0).

2. Postać Newtona wzoru interpolacyjnego

Ogólnie cic_i wyznaczamy z wcześniejszego układu równań c0=f[x0],c1=f[x0,x1]c_0 = f[x_0], c_1 = f[x_0, x_1] aż do cn=f[x0,x1,,xn]c_n = f[x_0, x_1, \dots, x_n].
Otrzymujemy postać Newtona wzoru interpolacyjnego p(x)=k=0nckqk(x)=k=0nf[x0,x1,,xk]j=0k1(xxj). p(x) = \sum_{k=0}^n c_k q_k (x) = \sum_{k=0}^n f[x_0, x_1,\dots, x_k] \prod_{j=0}^{k-1} (x - x_j).

Oczywiście: f[xi]=f(xi),(0in). f[x_i] = f(x_i), \qquad (0 \le i \le n).


3. Twierdzenie o ilorazach różnicowych wyższych rzędów

Ilorazy różnicowe spełniają równość: f[x0,x1,,xn]=f[x1,x2,,xn]f[x0,x1,,xn1]xnx0. f[x_0,x_1,\dots,x_n] = \frac{f[x_1,x_2,\dots,x_n] - f[x_0,x_1,\dots,x_{n-1}]}{x_n - x_0}.

3.1. D-d

Niech pkΠkp_k \in \Pi_k będzie wielomianem interpolującym ff w węzłach x0,,xkx_0, \dots, x_k. Potrzebujemy wielomianów pnp_n oraz pn1p_{n-1}. Niech będzie wielomianem qΠn1q \in \Pi_{n-1} interpolującym ff w węzłach x1,,xnx_1,\dots,x_n.
Wówczas pn(x)=q(x)+xxnxnx0(q(x)pn1(x)) p_n(x) = q(x) + \frac{x - x_n}{x_n - x_0} \left( q(x) - p_{n-1}(x) \right)

Po obu stronach równości są wielomiany stopnia n\le n. Wartości tych wielomianów w punktach x0,x1,,xnx_0, x_1, \dots, x_n są takie same, co implikuje wielomiany muszą być identyczne. Potrzeba więc mieć po obu stronach identyczne współczynniki przy xnx^n. Współczynnik wielomianu stopnia n\le n interpolującego ff w punktach x0,x1,,xnx_0, x_1, \dots, x_n jest równy f[x0,x1,,xn]f[x_0, x_1, \dots, x_n]. Stąd dostajemy f[x0,x1,,xn]=f[x1,x1,,xn]f[x0,x1,,xn1]xnx0 f[x_0, x_1, \dots, x_n] = \frac{f[x_1, x_1,\dots, x_n] - f[x_0, x_1, \dots, x_{n-1}]}{x_n - x_0}


4. Sposób uzyskiwania współczynników

Jeżeli dana jest tablica wartości funkcji (xi,f(xi))(x_i, f(x_i)), wówczas ilorazy różnicowe łatwo obliczamy konstruując tablicę trójkątną.
Przykład: ilorazy różnicowe rzędów 0,1,2,30,1,2,3 obliczamy:

4.1. Przykład

Skonstruować tablicę ilorazów różnicowych dla wartości z tabeli:

Korzystając z Twierdzenia#3 konstruujemy tablicę ilorazów różnicowych


5. Twierdzenie#4

Ilorazy różnicowe nie zależą od kolejności węzłów. Jeśli (z0,z1,,zn)(z_0,z_1, \dots, z_n) jest permutacją (x0,x1,,xn)(x_0, x_1, \dots, x_n), to f[z0,z1,,zn]=f[x0,x1,,xn]. f[z_0,z_1,\dots,z_n] = f[x_0,x_1,\dots,x_n].

5.1. D-d

Iloraz różnicowy jest równy współczynnikowi przy xnx^n wielomianu stopnia n\le n interpolującego ff w węzłach z0,z1,,znz_0,z_1,\dots,z_n. Podobnie iloraz różnicowy f[x0,x1,,xn]f[x_0,x_1,\dots,x_n] jest równy współczynnikowi przy xnx^n wielomianu stopnia n\le n interpolującego ff w węzłach x0,x1,,xnx_0,x_1,\dots,x_n. Wielomiany oczywiście są równe więc współczynniki są równe.


6. Twierdzenie#5

Niech pΠnp \in \Pi_n interpolującym ff różnych węzłach x0,x1,,xnx_0,x_1,\dots,x_n. Jeżeli txit \neq x_i, wówczas f(t)p(t)=f[x0,x1,,xn,t]j=0n(txj). f(t) - p(t) = f[x_0,x_1,\dots,x_n,t] \prod_{j=0}^n (t-x_j).

6.1. D-d

Niech qΠn+1q \in \Pi_{n+1} będzie wielomianem interpolującym ff w węzłach x0,x1,,xn,tx_0,x_1,\dots,x_n,t. Wielomian qq możemy otrzymać z pp przez dodanie jednego czynnika (postać Newtona) q(x)=p(x)+f[x0,x1,,xn,t]j=0n(xxj). q(x) = p(x) + f[x_0,x_1,\dots,x_n,t] \prod_{j=0}^n (x-x_j).

Ponieważ q(t)=f(t)q(t) = f(t) dla x=tx = t. Zatem f(t)p(t)=f[x0,x1,,xn,t]j=0n(txj). f(t) - p(t) = f[x_0,x_1,\dots,x_n,t] \prod_{j=0}^n (t - x_j).