6. Інтерполювання функцій
6.1. Постановка задачі інтерполювання
Література:
- СГ, стор. 151–155
Нехай функція задана своїми значеннями , , , причому для .
Означення: Функція називається інтерполюючою для на сітці , якщо , .
Задача інтерполювання функції має не єдиний розв’язок.
Означення: Виберемо систему лінійно незалежних функцій , і побудуємо лінійну комбінацію
\begin{equation} \label{eq:6.1.1} \Phi(x) = \Phi_n(x) = \Sum_{k = 0}^n c_k \cdot \varphi_k(x), \end{equation}
яка називається узагальненим багаточленом.
Умови інтерполювання дають СЛАР
\begin{equation} \label{eq:6.1.2} \Sum_{k = 0}^n c_k \cdot \varphi_k(x_i) = y_i, \quad i = \overline{1, n} \end{equation}
розв’язком якої є .
Якщо
\begin{equation} D(x_0, \ldots, x_n) = \begin{vmatrix} \varphi_0(x_0) & \cdots & \varphi_n(x_0) \newline \vdots & \ddots & \vdots \newline \varphi_0(x_n) & \cdots & \varphi_n(x_n) \end{vmatrix} \ne 0, \end{equation}
то система \eqref{eq:6.1.2} має єдиний розв’язок.
Означення: Система функцій називається системою Чебишова, якщо таких, що і при виконується .
Приклади систем Чебишова:
— алгебраїчна система.
Визначник є визначником Вандермонда:
\begin{equation} \begin{aligned} D(x_0, \ldots, x_n) &= \begin{vmatrix} 1 & x_0 & \cdots & x_0^n \newline \vdots & \vdots & \ddots & \vdots \newline 1 & x_n & \cdots & x_n^n \end{vmatrix} = \newline &= \Prod_{0 \le k \le m \le n} (x_k - x_m) \ne 0,
\end{aligned} \end{equation}— ортогональні багаточлени Лежандра;
— ортогональні багаточлени Чебишова.
: , , , , , .
Тоді
\begin{equation} \begin{aligned} \Phi_n(x) &= T_n(x) = \newline &= a_0 + \Sum_{k = 1}^n (a_k \cdot \cos(k x) + b_k \cdot \sin(k x)) \end{aligned} \end{equation}
— тригонометричний багаточлен.
6.2. Інтерполяційна формула Лагранжа
Література:
-
СГ, стор. 127–129;
-
БЖК, стор. 38–42.
Якщо , то
\begin{equation} \Phi_n(x) = P_n(x) = \Sum_{k=0}^n c_k \cdot x^k. \end{equation}
Задача інтерполювання функції алгебраїчним, багаточленом полягає в знаходженні коефіцієнтів , для яких виконується умова , .
Представимо інтерполяційний багаточлен у вигляді
\begin{equation} \label{eq:6.2.1} P_n(x) = L_n(x) = \Sum_{k = 0}^n f(x_k) \cdot \Phi_k^{(n)}(x). \end{equation}
Означення: Тут — інтерполяційний поліном; — поліноми -го степеня, які називають множниками Лагранжа.
З умови випливає, що множник Лагранжа повинен задовольняти умови
\begin{equation} \label{eq:6.2.2} \Phi_k^{(n)} (x_i) = \delta_{i,k}. \end{equation}
Оскільки — багаточлен степеня , то він має вигляд
\begin{equation} \Phi_k^{(n)}(x) = A_k (x - x_0) \ldots (x - x_{k-1}) (x - x_{k+1}) \ldots (x - x_n), \end{equation}
де — число.
Знайдемо його з умови :
\begin{equation} A_k = \frac{1}{(x_k - x_0) \ldots (x_k - x_{k-1}) (x_k - x_{k + 1}) \ldots (x_k - x_n)}. \end{equation}
Таким чином багаточлен мають вигляд:
\begin{equation} \label{eq:6.2.3} \Phi_k^{(n)} (x) = \frac{(x - x_0) \ldots (x - x_{k-1}) (x - x_{k+1}) \ldots (x - x_n)}{(x_k - x_0) \ldots (x_k - x_{k-1}) (x_k - x_{k+1}) \ldots (x_k - x_n)} \end{equation}
Позначивши
\begin{equation} \omega_n(x) = \Prod_{i = 0}^n(x - x_i), \end{equation}
маємо
\begin{equation} \Phi_k^{(n)}(x) = \frac{\omega_n(x)}{(x - x_k) \cdot \omega_n’(x_k)}. \end{equation}
Остаточно формула Лагранжа має вигляд
\begin{equation} \label{eq:6.2.4} L_n(x) = \Sum_{k = 0}^n f(x_k) \cdot \frac{\omega_n(x)}{(x - x_k) \cdot \omega_n’(x_k)} \end{equation}
6.3. Залишковий член інтерполяційного полінома
Література:
-
СГ, стор. 132–133;
-
БЖК, стор. 42.
В заданих точках (точки інтерполювання) значення функції та полінома співпадають, але в інших точках в загальному випадку не співпадають. Отже доцільно розглянути питання про похибку інтерполювання.
Означення: Замінюючи функцію на ми допускаємо похибку . Це залишковий член інтерполювання.
З означення випливає, що, , . Оцінимо похибку у кожній точці . Введемо допоміжну функцію:
\begin{equation} g(t) = f(t) - L_n(t) - K \cdot \omega_n(t), \end{equation}
де , і для .
Знайдемо таке , щоб , в деякій точці , , . Легко бачити, що
\begin{equation} K = \frac{f(x) - L_n(x)}{\omega_n(x)}. \end{equation}
Припустимо що , тоді . Функція в -х точках, а саме , , . З теореми Ролля випливає, що існує -а точка, де , . Продовжуючи цей процес, отримаємо, що існує хоча б одна така, що . Оскільки
\begin{equation} g^{(n+1)}(t) = f^{(n+1)} - 0 - K \cdot (n+1)!, \end{equation}
то , що
\begin{equation} g^{(n+1)}(\xi) = f^{(n+1)}(\xi) - (n+1)! \cdot \frac{f(x) - L_n(x)}{\omega_n(x)} = 0. \end{equation}
Звідси
\begin{equation} \label{eq:6.3.1} r_n(x) = f(x) - L_n(x) = \frac{f^{(n+1)}(\xi)}{(n + 1)!} \cdot \omega_n(x). \end{equation}
Оскільки невідомо, то використовують оцінку залишкового члена:
\begin{equation} \label{eq:6.3.2} |r_n(x)| = |f(x) - L_n(x)| \le \frac{M_{n + 1}}{(n + 1)!} \cdot |\omega_n(x)|, \end{equation}
де .
6.4. Багаточлени Чебишова. Мінімізація залишкового члена інтерполяційного полінома
Література:
-
СГ, стор. 103–108;
-
БЖК стор. 56–63.
Як вибрати вузли інтерполяції щоб похибка інтерполювання була мінімальною? Спочатку обґрунтуємо теоретичний апарат, завдяки якому будемо досліджувати це питання.
Означення: Багаточленом Чебишова (-того степеня, 1–го роду) називається поліном, який задається такими рекурентними співвідношеннями
\begin{equation} \label{eq:6.4.1} T_{n + 1}(x) - 2 x \cdot T_n(x) + T_{n - 1}(x) = 0, \end{equation}
де початкові значення
\begin{equation} \label{eq:6.4.2} T_0(x) = 1, \quad T_1(x) = x. \end{equation}
Знайдемо явний вигляд багаточлена Чебишова. Будемо шукати розв’язок рівняння \eqref{eq:6.4.1} у вигляді , де . Підставивши в \eqref{eq:6.4.1}, отримуємо характеристичне рівняння . Тоді при , а при , .
Розглянемо обидва випадки детальніше:
-
при : . З \eqref{eq:6.4.1} випливає , і тому
\begin{equation} \label{eq:6.4.3} T_n(x) = \cos(n \arccos (x)). \end{equation}
-
при :
\begin{equation} \label{eq:6.4.4} T_n(x) = \frac{1}{2} \left( \left(x + \sqrt{x^2 - 1}\right)^n + \left(x - \sqrt{x^2 - 1} \right)^n \right). \end{equation}
Знайдемо нулі та екстремуми багаточлена Чебишова: , , , , .
Отже нулі багаточлена Чебишова:
\begin{equation} x_k = \cos \left( \frac{(2 k + 1) \pi}{2 n} \right) \in [-1,1], \quad k = \overline{0,n-1}. \end{equation}
Локальні екстремуми багаточлена Чебишова на :
\begin{equation} x_k’ = \cos \left( \frac{k\pi}{2n} \right), \quad k = \overline{0,n}. \end{equation}
Коефіцієнт при старшому члені багаточлена дорівнює .
Означення: Введемо нормований багаточлен Чебишова .
Тоді
\begin{equation} \left| \overline T_n \right|\void_{C([-1,1])} = \Max_{x \in [-1,1]} |T_n(x)| = 2^{1-n}. \end{equation}
Означення: Відхиленням двох функцій та називається величина
\begin{equation} \Delta (f, \Phi) = | f(x) - \Phi(x)|\void_{C([a,b])}. \end{equation}
Теорема (Чебишова): Серед усіх багаточленів -го степеня з коефіцієнтом при старшому степені найменше відхиляється від на , тобто
\begin{equation} \left|\overline T_n(x) - 0 \right|\void_{C([-1,1])} = \Inf_{\overline P_n(x)} \left|\overline P_n(x)\right|\void_{C([-1,1])} = 2^{1-n}. \end{equation}
Доведення: Будемо доводити від супротивного: припустимо, що існує багаточлен, такий, що
\begin{equation} \overline Q_n(x) < 2^{1-n}. \end{equation}
Тоді — поліном степеня не вище і не рівний тотожньо нулю. Дослідимо його знаки:
\begin{equation} \begin{aligned} \text{sgn} \left( Q_{n - 1}(x_k’) \right) &= \text{sgn} \left( \overline T_n(x_k’) - \overline Q_n(x_k’) \right) = \newline &= \text{sgn} \left( \overline T_n(x_k’) \right) = \alpha \cdot(-1)^k, \end{aligned} \end{equation}
де .
Значить , таке, що . Це протиріччя, бо — поліном степеня .
Тепер узагальнимо наш багаточлен Чебишова на довільний проміжок. Нагадаємо , . Від змінної перейдемо до . Запровадимо заміну
\begin{equation} t = \frac{2 x}{b - a} - \frac{b + a}{b - a}, \quad x = \frac{b + a}{2} + \frac{b - a}{t}. \end{equation}
Тоді
\begin{equation} \begin{aligned} T_n^{[a,b]}(t) &= \overline T_n \left( \frac{2 x}{b - a} - \frac{b + a}{b - a} \right) = \newline &= 2^{1 - n} \cos \left(n \arccos \left( \frac{2 x - (b + a)}{b - a} \right) \right). \end{aligned} \end{equation}
Побудований нами багаточлен Чебишова на не є нормованим.
Нормований багаточлен Чебишова на :
\begin{equation} \overline T_n^{[a,b]}(x) = \frac{(b - a)^n}{2^{2 n - 1}} \cos \left(n \arccos \left( \frac{2 x - (b + a)}{b - a} \right) \right). \end{equation}
Відповідно його нулі
\begin{equation} x_k = \frac{a + b}{2} - \frac{b - a}{2} \cdot t_k, \quad t_k = \cos \left( \frac{(2 k + 1) \pi}{2 n} \right), \end{equation}
де , а точки екстремуму
\begin{equation} x_k’ = \frac{a + b}{2} - \frac{b -a }{2} \cdot t_k’, \quad t_k’ = \cos \left( \frac{k \pi}{n} \right), \quad k = \overline{0,n}. \end{equation}
Теорема Чебишова вірна і у випадку . Тепер
\begin{equation} \left|\overline T_n^{[a,b]}\right|\void_{C([a,b])} = \frac{(b-a)^n}{2^{2n-1}}. \end{equation}
Перейдемо до питання мінімізації залишкового члена. Нагадаємо, що
\begin{equation} \label{eq:6.4.5} |r_n(x)| = |f(x) - L_n(x)| \le \frac{M_{n + 1}}{(n + 1)!} \cdot |\omega_n(x)|, \end{equation}
де ,
Поставимо задачу
\begin{equation} \Inf_{\overline P_n(x)} \Max_{x \in [a,b]} |\omega_n(x)|. \end{equation}
З теоремою Чебишова поліном Чебишова. Якщо співпадають поліноми, то співпадають їх нулі. Отже: — вузли інтерполяції співпадають з нулями багаточлена Чебишова
\begin{equation} x_k = \frac{a + b}{2} - \frac{b - a}{2} \cdot t_k, \quad t_k = \cos \left( \frac{(2 k + 1) \pi}{2 (n + 1)} \right), \end{equation}
де .
В цьому випадку
\begin{equation} \label{eq:6.4.6} |r_n(x)| = |f(x) - L_n(x)| \le \frac{M_{n + 1}}{(n + 1)!} \cdot \frac{(b - a)^{n + 1}}{2^{2 n + 1}}. \end{equation}
Цю оцінку не можна покращити! Так для її похідна дорівнює , тому . Різниця , отже
\begin{equation} \Max_{x \in [a,b]} |f(x) - L_n(x)| = \frac{(b - a)^{n + 1}}{2^{2 n + 1}}. \end{equation}
6.5. Розділені різниці
Література:
-
БЖК, стор. 42–44;
-
СГ, стор. 129–130.
Розділені різниці є аналогом похідної для функції, що задана таблицею.
Означення: Розділеною різницею 1-го порядку для функції називатимемо
\begin{equation} f(x_i; x_j) = \frac{f(x_i) - f(x_j)}{x_i - x_j}. \end{equation}
Розділеною різницею 2-го порядку для функції називатимемо
\begin{equation} f(x_i; x_j; x_k) = \frac{f(x_i; x_j) - f(x_j; x_k)}{x_i - x_k}. \end{equation}
Аналогічно визначаються розділені різниці довільного порядку.
Наведемо деякі властивості розділених різниць:
-
\begin{equation} f(x_0; \ldots; x_n) = \Sum_{i = 0}^n \frac{f(x_j)}{\Prod_{i \ne j}(x_i - x_j)}. \end{equation}
-
Розділена різниця — лінійний функційонал:
\begin{equation} (\alpha_1 f_1 + \alpha_2 f_2)(x_0; x_1) = \alpha_1 f_1(x_0;x_1) + \alpha_2 f_2(x_0;x_1). \end{equation}
-
Розділена різниця — симетричний функціонал:
\begin{equation} \begin{aligned} & f(x_1; \ldots; x_i; \ldots; x_j; \ldots; x_n) = \newline & \quad f(x_1; \ldots; x_j; \ldots; x_i; \ldots; x_n). \end{aligned} \end{equation}
- : : .
Задача 14: Довести першу властивість розділених різниць.
Таблиця розділених різниць має вигляд:
р.р. | р.р. | р.р. | |||
---|---|---|---|---|---|
6.6. Інтерполяційна формула Ньютона
Література:
-
БЖК, стор. 44–47;
-
СГ, стор. 130–132.
Запишемо формулу Лагранжа інтерполяційного багаточлена
\begin{equation} \label{eq:6.6.1} L_n(x) = \Sum_{i = 0}^n f(x_i) \cdot \frac{\omega_n(x)}{(x - x_i) \cdot \omega_n’(x_i)}, \end{equation}
де .
Позначимо . Тоді, оскільки
\begin{equation} \begin{aligned} L_n(x) &= L_0(x) + (L_1(x) - L_0(x)) + \ldots \newline & \quad \ldots + (L_n(x) - L_{n-1}(x)), \end{aligned} \end{equation}
і
\begin{equation} L_j(x_i) = L_{j-1}(x_i) = f(x_i), \quad i = \overline{0,j-1}, \end{equation}
то \begin{equation} \label{eq:6.6.2} \Phi_j(x_i) = A_j \cdot (x - x_0) \cdot \ldots \cdot (x - x_{j-1}), \end{equation}
де визначається з умови . Звідси
\begin{equation} \Phi_j(x) = \frac{f(x_j) - L_{j-1}(x_j)}{(x_j - x_0) \ldots (x_j - x_{j - 1})} \cdot (x-x_0) \ldots (x-x_j). \end{equation}
Тоді \begin{equation} \begin{aligned} A_j &= \frac{f(x_j) - L_{j-1}(x_j)}{(x_j - x_0) \ldots (x_j - x_{j-1})} = \newline & = \frac{f(x_j)}{(x_j - x_0) \ldots (x_j - x_{j-1})} - \newline & \quad - \Sum_{i = 0}^{j - 1} \frac{f(x_i)}{(x_i - x_0) \ldots (x_i - x_{i-1}) (x_i - x_{i + 1}) \ldots (x_j-x_i)} = \newline & = \frac{f(x_j)}{(x_j-x_0) \ldots (x_j - x_{j-1})} + \newline & \quad + \Sum_{i = 0}^{j - 1} \frac{f(x_i)}{(x_i-x_0) \ldots (x_i - x_j)} = \newline & = \Sum_{i = 0}^j \frac{f(x_i)}{(x_i - x_0) \ldots (x_i - x_{i - 1}) (x_i - x_{i + 1}) \ldots (x_i - x_j)} = \newline & = f(x_0;\ldots;x_j). \end{aligned} \end{equation}
Звідси маємо інтерполяційну формулу Ньютона вперед ():
\begin{equation} \label{eq:6.6.3} \begin{aligned} L_n(x) &= f(x_0) + f(x_0;x_1) (x-x_0) + \ldots \newline & \quad \ldots + f(x_0;\ldots;x_n) (x-x_0) \ldots (x - x_{n-1}). \end{aligned} \end{equation}
Аналогічно, інтерполяційна формула Ньютона назад (): \begin{equation} \label{eq:6.18} \begin{aligned} L_n(x) &= f(x_n) + f(x_n;x_{n-1}) (x-x_n) + \ldots \newline & \quad \ldots + f(x_n;\ldots;x_0) (x-x_n) \ldots (x-x_1). \end{aligned} \end{equation}
Маємо рекурсію за степенем багаточлена
\begin{equation} L_n(x) = L_{n-1}(x) + f(x_0;\ldots;x_n) (x-x_0) \ldots (x-x_1). \end{equation}
Звідси
\begin{equation} \begin{aligned} L_n(x) &= f(x_0) + (x - x_0) (f(x_0;x_1) + (x - x_1) (\ldots \newline & \quad \ldots + (x - x_{n-1}) f(x_0;x_1;\ldots;x_n) \ldots )) \end{aligned} \end{equation}
і цю формулу розкриваємо починаючи з середини (це аналог схеми Горнера обчислення значення багаточлена).
Введемо нову формулу для похибки інтерполювання. Для , розглянемо розділену різницю
\begin{equation} \begin{aligned} f(x; x_0; \ldots; x_n) &= \frac{f(x)}{(x - x_0) \ldots (x - x_n)} + \newline & \quad + \Sum_{k = 0}^n \frac{f(x_k)}{\Prod_{i \ne k}(x - x_i)}. \end{aligned} \end{equation}
Звідси
\begin{equation} \begin{aligned} f(x) &= f(x_0) \cdot \frac{(x - x_1) \ldots (x - x_n)}{(x_0 - x_1) \ldots (x_0 - x_n)} + \ldots \newline & \quad \ldots + f(x_n) \cdot \frac{(x - x_1) \ldots (x - x_n)}{(x_n - x_1) \ldots (x_n - x_{n-1})} + \newline & \quad + f(x; x_0; \ldots; x_n) (x - x_0) \ldots (x - x_n) = \newline & = L_n(x) + f(x; x_0; \ldots; x_n) \cdot \omega_n(x). \end{aligned} \end{equation}
Тоді похибка має вигляд \begin{equation} \label{eq:6.19} r_n(x) = f(x) - L_n(x) = f(x;x_0;\ldots;x_n)\cdot\omega_n(x). \end{equation}
Це нова форма для залишкового члена.
Порівнюючи з формулою залишкового члена в пункті , маємо
\begin{equation} f(x; x_0; \ldots; x_n) = \frac{f^{(n + 1)}(\xi)}{(n + 1)!}, \end{equation}
що доводить останню властивість розділених різниць.
Нехай маємо сітку рівновіддалених вузлів: , , , , . Розначимо , , — скінченні різниці.
Запишемо формули Ньютона у нових позначеннях:
\begin{equation} \begin{aligned} L_n(x) &= L_n(x_0 + t h) = \newline &= f_0 + t \Delta f_0 + \ldots \newline & \quad \ldots + \frac{t (t - 1) \ldots (t - n + 1)}{n!}\cdot \Delta^n f_0, \end{aligned} \end{equation}
де .
Це інтерполяційна формула Ньютона вперед по рівновіддалених вузлах.
Задача 15: Побудувати інтерполяційну формулу Ньютона назад по рівновіддалених вузлах.