6. Інтерполювання функцій
6.1. Постановка задачі інтерполювання
Нехай функція задана своїми значеннями , , , причому для .
Означення: Функція називається інтерполюючою для на сітці , якщо , .
Задача інтерполювання функції має не єдиний розв’язок.
Означення: Виберемо систему лінійно незалежних функцій , і побудуємо лінійну комбінацію
\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. Інтерполяційна формула Лагранжа
Якщо , то
\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. Залишковий член інтерполяційного полінома
В заданих точках (точки інтерполювання) значення функції та полінома співпадають, але в інших точках в загальному випадку не співпадають. Отже доцільно розглянути питання про похибку інтерполювання.
Означення: Замінюючи функцію на ми допускаємо похибку . Це залишковий член інтерполювання.
З означення випливає, що, , . Оцінимо похибку у кожній точці . Введемо допоміжну функцію:
\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. Багаточлени Чебишова. Мінімізація залишкового члена інтерполяційного полінома
Як вибрати вузли інтерполяції щоб похибка інтерполювання була мінімальною? Спочатку обґрунтуємо теоретичний апарат, завдяки якому будемо досліджувати це питання.
Означення: Багаточленом Чебишова (-того степеня, 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} \sign \left( Q_{n - 1}(x_k’) \right) = \sign \left( \overline T_n(x_k’) - \overline Q_n(x_k’) \right) = \sign \left( \overline T_n(x_k’) \right) = \alpha \cdot(-1)^k, \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} T_n^{[a,b]}(t) = \overline T_n \left( \frac{2 x}{b - a} - \frac{b + a}{b - a} \right) = 2^{1 - n} \cos \left(n \arccos \left( \frac{2 x - (b + a)}{b - a} \right) \right). \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. Розділені різниці
Розділені різниці є аналогом похідної для функції, що задана таблицею.
Означення: Розділеною різницею 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} f(x_1; \ldots; x_i; \ldots; x_j; \ldots; x_n) = f(x_1; \ldots; x_j; \ldots; x_i; \ldots; x_n). \end{equation}
- : : .
Задача 14: Довести першу властивість розділених різниць.
Таблиця розділених різниць має вигляд:
р.р. | р.р. | р.р. | |||
---|---|---|---|---|---|
6.6. Інтерполяційна формула Ньютона
Запишемо формулу Лагранжа інтерполяційного багаточлена
\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} L_n(x) = L_0(x) + (L_1(x) - L_0(x)) + \ldots + (L_n(x) - L_{n-1}(x)), \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})}= \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})} + \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)} = f(x_0;\ldots;x_j). \end{aligned} \end{equation}
Звідси маємо інтерполяційну формулу Ньютона вперед ():
\begin{equation} \label{eq:6.6.3} L_n(x) = f(x_0) + f(x_0;x_1) (x-x_0) + \ldots + f(x_0;\ldots;x_n) (x-x_0) \ldots (x - x_{n-1}). \end{equation}
Аналогічно, інтерполяційна формула Ньютона назад (): \begin{equation} \label{eq:6.18} L_n(x) = f(x_n) + f(x_n;x_{n-1}) (x-x_n) + \ldots + f(x_n;\ldots;x_0) (x-x_n) \ldots (x-x_1). \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} L_n(x) = f(x_0) + (x - x_0) (f(x_0;x_1) + (x - x_1) (\ldots + (x - x_{n-1}) f(x_0;x_1;\ldots;x_n) \ldots )) \end{equation}
і цю формулу розкриваємо починаючи з середини (це аналог схеми Горнера обчислення значення багаточлена).
Введемо нову формулу для похибки інтерполювання. Для , розглянемо розділену різницю
\begin{equation} f(x; x_0; \ldots; x_n) = \frac{f(x)}{(x - x_0) \ldots (x - x_n)} + \Sum_{k = 0}^n \frac{f(x_k)}{\Prod_{i \ne k}(x - x_i)}. \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 + 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) = 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} L_n(x) = L_n(x_0 + t h) = f_0 + t \Delta f_0 + \ldots + \frac{t (t - 1) \ldots (t - n + 1)}{n!}\cdot \Delta^n f_0, \end{equation}
де .
Це інтерполяційна формула Ньютона вперед по рівновіддалених вузлах.
Задача 15: Побудувати інтерполяційну формулу Ньютона назад по рівновіддалених вузлах.
6.7. Інтерполювання з кратними вузлами
Нехай задана таблицею значень , , , — кратності відповідних вузлів. Побудуємо — інтерполяційний багаточлен Ерміта по кратним вузлах, де
\begin{equation} m = \Sum_{i = 1}^n k_i - 1. \end{equation}
Якщо , то .
Для побудови в загальному випадку для кожної точки введемо точок , , . З умови : можна вибрати .
Нехай . Запишемо інтерполяційну формулу Ньютона:
\begin{equation} \begin{aligned} L_m^\varepsilon &= f \left( x_{0, 0}^\varepsilon \right) + f \left(x_{0, 0}^\varepsilon; x_{0, 1}^\varepsilon \right) \left(x - x_{0, 0}^\varepsilon \right) + \ldots \newline & \quad + f \left( x_{0, 0}^\varepsilon; \ldots; x_{n, k_n - 1}^\varepsilon \right) \left( x - x_{0, 0}^\varepsilon \right) \ldots \left( x - x_{n, k_n - 1}^\varepsilon \right). \end{aligned} \end{equation}
При маємо . Крім того
\begin{equation} f \left( x_{i,0}^\varepsilon; \ldots; x_{i, k_i - 1}^\varepsilon \right) = f (x_i; \ldots; x_i) = \frac{f^{(k_i)}(x_i)}{k_i!}. \end{equation}
Тому та
\begin{equation} R_m(x) = f(x) - H_m(x) = \frac{f^{(m + 1)}(\xi)}{(m + 1)!} \cdot \Omega_m(x), \end{equation}
де .
6.8. Збіжність процесу інтерполювання
Виникає питання, чи буде прямувати до нуля похибка інтерполювання , якщо число вузлів збільшувати?
Введемо норму
\begin{equation} |f(x) - L_n|\void_{C([a,b])} = \Max_{x \in [a,b]} | f(x) - L_n(x) |. \end{equation}
Тоді для довільної справджується оцінка
\begin{equation} \label{eq:6.8.1} | f(x) - L_n(x)|\void_{C([a,b])} \le \frac{M_{n + 1}}{(n + 1)!} |\omega_n(x)|\void_{C([a,b])}, \end{equation}
де , .
А яка оцінка буде для довільної неперервної функції?
Означення: Кажуть, що інтерполяційний процес для функції збігається в точці , якщо
\begin{equation} \forall \{x_i\}^n_{i = 1}: h = \Max_{i = \overline{1,n}} \to 0: \Lim_{n\to\infty} L_n(x) = f(x), \end{equation}
де, як завжди, .
Означення: Якщо , то інтерполяційний процес збігається рівномірно.
Розглянемо приклади поведінки інтерполяційних багаточленів при для деяких функцій.
Приклад 1: Послідовність інтерполяційних багаточленів (сітка рівномірна), побудованих для неперервної функції , (функція неперервна, але негладка), не збігається на , крім точок .
На рисунку дано графіки самої функції (штрихова лінія) та інтерполяційного багаточлена (суцільна лінія) на рівномірній сітці , , для :
Приклад 2: Функція Рунге , (функція аналітична!). Для рівномірної сітки , , маємо графіки: суцільна лінія — інтерполяційного багаточлена; пунктирна — самої функції для :
Пояснити чому рівномірна сітка дає великі похибки інтерполювання біля кінців інтервалу інтерполювання допомагає наступний рисунок. На цьому рисунку суцільною лінією представлено графік функції () для рівномірної сітки. Як бачимо максимальні за модулем значення цієї функції припадають на кінці інтервалу.
Для порівняння на цьому ж рисунку (штрихова лінія) побудовано графік , що відповідає чебишовським вузлам, які мінімізують похибку інтерполювання. Тепер відхилення розподілено рівномірно по всьому проміжку інтерполювання.
Теорема (Фабера): існує , для якої інтерполяційний процес не збігається рівномірно.
Теорема (Марцинкевича): існуюють такі, що послідовність збігається рівномірно до .
Теорема: Стала Лебега
\begin{equation} |P_n| = \Max_j \Sum_{j = 0}^n \left\vert \varphi_j^{(n)}(x) \right\vert, \end{equation}
де
\begin{equation} \varphi_j^{(n)}(x) = \frac{\omega_n(x)}{(x-x_j) \cdot \omega_n’(x_i)}. \end{equation}
Теорема: Для :
\begin{equation} |f(x)-L_n(x)|\void_{C([a,b])} \le (1 + |P_n|) \cdot E_n(f), \end{equation}
де
\begin{equation} E_n(f) = \Inf_{Q_n(x)} |f(x) - Q_n(x)|\void_{C([a,b])} \end{equation}
— відхилення багаточлена -го степеня найкращого рівномірного наближення від .
Теорема: Нехай — оператор інтерполяції на рівномірній сітці, — оператор інтерполяції на чебишовській сітці. Тоді на маємо наближені оцінки:
\begin{equation} |P_n^E|\approx C_1 \cdot 2^n, \quad |P_n^T| \approx C_2 \cdot \ln(n). \end{equation}
Останні оцінки поясняють розбіжність процесу інтерполювання при великих .
6.9. Кусково-лінійна інтерполяція
Інтерполяція багаточленом Лагранжа або Ньютона на відрізку з використанням великої кількості вузлів інтерполяції часто приводить до поганого наближення через розбіжність процесу інтерполювання. Для того щоб уникнути великої похибки, весь відрізок розбивають на частинні відрізки і на кожному з частинних відрізків замінюють функцію багаточленом невисокого степеню. В цьому і полягає кусково-поліноміальна інтерполяція.
Розглянемо найпростішу таку інтерполяцію — лінійну. Нехай задана значеннями , . Побудуємо функцію — лінійну на , що інтерполює ці значення:
\begin{equation} \label{eq:6.9.2} \Phi_1(x) = L_1^i(x) = f(x_{i - 1}) \cdot \frac{x - x_{i - 1}}{x_i - x_{i - 1}} + f(x_i) \cdot \frac{x_i - x}{x_i - x_{i - 1}}, \end{equation}
де .
Представимо її у вигляді
\begin{equation} \label{eq:6.9.3} \Phi_1(x) = \Sum_{i = 0}^n f(x_i) \cdot \varphi_i(x). \end{equation}
З умов інтерполювання маємо
\begin{equation} \Phi_1(x_j) = \Sum_{i = 0}^n f(x_i) \cdot \varphi_i(x_j) = f(x_j). \end{equation}
Звідси
\begin{equation} \varphi_i(x_j) = \delta_{i,j} = \begin{cases} 1, & i = j \newline 0, & i \ne j \end{cases}. \end{equation}
Значить
\begin{equation} \varphi_i(x) = \begin{cases} 0, & a \le x \le x_{i-1} \newline \frac{x-x_{i-1}}{x_i-x_{i-1}}, & x_{i-1} \le x \le x_i \newline \frac{x_{i+1}-x}{x_{i+1}-x_i}, & x_i \le x \le x_{i+1} \newline 0, & x_{i+1} \le x \le b \end{cases} \end{equation}
Теорема: Для довільної справедлива оцінка
\begin{equation} \label{eq:6.9.4} |f(x)-\Phi_1(x)|\void_{C([a,b])} \le \frac{M_2}{8} \cdot |h|^2, \end{equation}
де — кусково-лінійна функція, побудована по значеннях , , , .
Доведення: Маємо для :
\begin{equation} z(x) = f(x) - \Phi_1(x) = f(x) - L_1^i(x) = \frac{f^{\prime\prime}(\xi_i)}{2!} \cdot (x-x_{i-1}) \cdot(x-x_i). \end{equation}
Звідси
\begin{equation} \label{eq:6.9.5} |f(x) - \Phi_1(x)| \le \frac{M_2^i}{2} \cdot |(x - x_{i-1}) (x - x_i)| \le \frac{M_2^i \cdot h_i^2}{8}, \end{equation}
де
\begin{equation} M_2^i = \Max_{x \in [x_{i - 1}, x_i]} | f^{\prime\prim (x) |. \end{equation}
Остання оцінка отримана з нерівності
\begin{equation} \Max_{[x_{i-1},x_i]} |(x-x_{i-1}) \cdot (x - x_i)| = \frac{h_i^2}{4}. \end{equation}
Тоді
\begin{equation} \label{eq:6.9.6} \Max_{i = \overline{1,n}} \Max_{x \in [x_{i-1},x_i]} |z(x)| \le \frac{h^2 M_2}{8}, \end{equation}
де , , що доводить \eqref{eq:6.9.4}.
Задача 16: Довести оцінку .
Отже маємо збіжність процесу інтерполювання за допомогою кусково-лінійної функції
\begin{equation} \left| f(x) - \Phi_1^{(n)}(x) \right|\void_{C([a,b])} \xrightarrow[h \to 0, n \to \infty]{} 0, \end{equation}
тобто
\begin{equation} \left\{\Phi_1^{(n)}(x)\right\} \implies f(x). \end{equation}
Розглянемо деякі простори:
-
— гільбертів простір, в якому скалярний добуток визначається так:
\begin{equation} \langle u, v \rangle = \Int_a^b (u(x) \cdot v(x)) \diff x \end{equation}
а норма .
-
. Тепер скалярний добуток
\begin{equation} \langle u, v \rangle_k = \Sum_{m = 0}^k \Int_a^b \left( u^{(m)}(x) \cdot v^{(m)}(x) \right) \diff x, \end{equation}
а норма .
Теорема: Нехай . Тоді
\begin{equation} \left|f^{(k)} - \Phi_1^{(k)} \right|\void_0 \le \vert h \vert^{2-k} \cdot |f|\void_2, \end{equation}
де .
Зауважимо, що кусково-лінійна інтерполяція негладка, тому на практиці застосовують квадратичні, а найчастіше — кубічні поліноми на кожному проміжку.
6.10. Кусково-кубічна ермітова інтерполяція
Нехай деяка функція задана в точках своїми значеннями та значеннями похідної: , , . Позначимо через функцію, яка буде інтерполювати задану. Тоді
\begin{equation} \label{eq:6.10.1} \Phi_3(x) = H_3^i(x), \quad x \in [x_{i-1},x_i]. \end{equation}
Неважко написати явний вигляд цього багаточлена на проміжку:
\begin{equation} H_3^i(x) = y_i + y_i’(x-x_i) + \frac{y_{i-1,i}-y_i’}{h_i} \cdot (x-x_i)^2 + \frac{y_i’ - 2 y_{i-1,i}+y_{i-1}’}{h_i^2} \cdot (x-x_i)^2 \cdot (x-x_{i-1}) \end{equation}
Можна представити кусково-кубічну функцію і в такому вигляд:
\begin{equation} \label{eq:6.10.2} \Phi_3(x) = \Sum_{i = 0}^n (y_i \cdot \varphi_i^0 (x) + y_i’ \cdot \varphi_i^1(x)). \end{equation}
Умови інтерполювання: , , . Якщо ці умови підставити в \уйref{eq:6.10.2}, то отримаємо умови на базисні функції:
\begin{align} \varphi_i^0(x_j) &= \delta_{i,j}, \newline \left(\varphi_i^0\right)^\prime(x_j) &= 0, \newline \varphi_i^1(x_j) &= 0, \newline \left(\varphi_i^1\right)^\prime(x_j) &= \delta_{i,j}. \end{align}
для .
Ці функції кусково-кубічні, тобто , , ( — множина багаточленів третього степеня), на всіх інших проміжка вони нульові. Нехай , і позначимо , .
-
введемо , , . Побудуємо цю функцію. Вона задовольняє умовам:
\begin{align} \overline \varphi_1^0(0) &= 1, \newline \overline \varphi_1^0(1) &= 0, \newline \left(\overline \varphi_1^0\right)^\prime(0) &= 0, \newline \left(\overline \varphi_1^0\right)^\prime(1) &= 0. \end{align}
Її явний вигляд отримаємо за допомогою таблиці розділених різниць:
\begin{equation} H_3(s) = 1 + 0 \cdot s - 1 \cdot s^2 + 2 s^2(s-1) = 2s^3 - 3s^2 + 1 \equiv \overline \varphi_1^0(s). \end{equation}
Аналогічно
-
, , , ;
-
, , , ;
-
, , , .
А тепер будуємо явний вигляд функцій для довільного проміжку :
\begin{equation} \varphi_i^0(x) = \begin{cases} 0, & a \le x \le x_{i-1}, \newline -2s^3 - 3s^2 + 1, & x_{i-1} \le x \le x_i, \newline 2s^3 - 3s^2 + 1, & x_i \le x \le x_{i+1}, \newline 0, & x_{i+1} \le x \le b, \end{cases} \end{equation}
і
\begin{equation} \varphi_i^1(x) = \begin{cases} 0, & a \le x \le x_{i-1}, \newline hs(s+1)^2, & x_{i-1} \le x \le x_i, \newline hs(s-1)^2, & x_i \le x \le x_{i+1}, \newline 0, & x_{i+1} \le x \le b, \end{cases} \end{equation}
де (якщо сітка нерівномірна, то в формулах замість , буде або на відповідних інтервалах).
Оцінимо . Розглянемо для :
\begin{equation} f(x) - \Phi_3(x) = f(x) - H_3^i(x) = \frac{f^{(4)}(\xi)}{4!} \cdot (x - x_{i-1})^2 (x - x_i)^2. \end{equation}
Зразу потрібно зробити припущення, що . З тих же міркувань, що і для кусково-лінійної функції, максимум знаходиться в точці тому для модуля похибки маємо:
\begin{align} |f(x) - \Phi_3(x)| &\le \frac{M_4^i}{24} \left( \frac{h^2}{4} \right)^2 = \frac{M_4^i h^4}{384}, \newline |f(x) - \Phi_3(x)|\void_{C([a,b])} &\le \frac{M_4 h^4}{384}. \end{align}
Звідси отримаємо теорему:
Теорема: Якщо функція задана в точках своїми значеннями , , , то для кусково-кубічної ермітової інтерполяції
\begin{equation} \Phi_3(x) = \Sum_{i = 0}^n \left( y_i \varphi_i^{(0)} (x) + y_i’ \varphi_i’(x) \right) \end{equation}
має місце оцінка
\begin{equation} \left| f(x) - \Phi_3(x) \right|\void_{C([a,b])} \le \frac{M_4 h^4}{384}. \end{equation}
А для похідної
\begin{equation} \left| f’(x) - \Phi_3’(x) \right|\void_{C([a,b])} \le M \cdot M_4 h^3, \end{equation}
де — стала незалежна від .
Задача 17: Довести оцінку для .
Порівняємо кусково-лінійну та кусково-кубічну інтерполяцію : при згущенні сітки у рази точність лінійної підвищується в рази, а кубічної — у разів, але треба задавати більше даних.
6.11. Кубічні інтерполяційні сплайни
Сплайн (spline) в перекладі означає рейка, якою користувалися креслярі при проведені гладкої кривої, що з’єднувала задані точки на площині.
Означення: Функція називається сплайном степеня і дефекту , якщо
(множина поліномів степеня ) для , .
.
Приклади:
: , ;
: , ;
Зараз ми побудуємо сплайн, для якого , .
Означення: Функція називається кубічним інтерполяційним природнім сплайном, якщо
Кубічність:
\begin{equation} \label{eq:6.11.1} s(x) \in \pi_3, \quad x \in [x_{i-1}, x_i], \quad i = \overline{1,n} \end{equation}
Дефект 1:
\begin{equation} \label{eq:6.11.2} s(x) \in C^{(2)}([a,b]) \end{equation}
Інтерполює :
\begin{equation} \label{eq:6.11.3} s(x_i) = f(x_i), \quad i = \overline{0, n} \end{equation}
Природній:
\begin{equation} \label{eq:6.11.4} s^{\prime\prime}(a) = s^{\prime\prime}(b) = 0. \end{equation}
Умови \eqref{eq:6.11.4}, так звані умови природності, необхідні, щоб разом було умов для знаходження коефіцієнтів сплайну. Замість них можуть бути такі умови:
\begin{align} & s^{\prime\prime}(a) = A, \quad s^{\prime\prime}(b) = B \tag{4.a} \newline & s’(a) = A, \quad s’(b) = B \tag{4.b} \newline & s(a) = s(b), \quad s’(a) = s’(b), \quad s^{\prime\prime}(a) = s^{\prime\prime}(b) \tag{4.c} \end{align}
Умови — це так звані умови періодичності.
Побудуємо природній сплайн. З \eqref{eq:6.11.1} та \eqref{eq:6.11.2} маємо
\begin{equation} \label{eq:6.11.5} s^{\prime\prime}(x) = m_{i-1} \cdot \frac{x_i - x}{h_i} + m_i \cdot \frac{x - x_{i - 1}}{h_i}, \end{equation}
де і вони є невідомими коефіцієнтами: .
Двічі інтегруючи \eqref{eq:6.11.5}, маємо
\begin{equation} \label{eq:6.11.6} \begin{aligned} s(x) &= m_{i-1} \cdot \frac{(x_i - x)^3}{6 h_i} + m_i \cdot \frac{(x - x_{i-1})^3}{6 h_i} + \newline & \quad + \left(f_{i-1} - \frac{m_{i-1}h_i^2}{6}\right) \cdot \frac{x_i - x}{h_i} + \left(f_i -\frac{m_i h_i^2}{6}\right) \cdot \frac{x - x_{i-1}}{h_i}, \end{aligned} \end{equation}
для .
З \eqref{eq:6.11.4} маємо .
Враховуючи, що отримаємо СЛАР для знаходження всіх :
\begin{equation} \label{eq:6.11.7} \left\{ \begin{aligned} & \frac{h_i m_{i-1}}{6} + \frac{(h_i + h_{i+1}) m_i}{3} + \frac{h_{i+1} m_{i+1}}{6} = \newline & \quad = \frac{f_{i+1} - f_i}{h_i} - \frac{f_i - f_{i-1}}{h_i}, \quad i = \overline{1,n-1}, \newline & m_0 = m_n = 0. \end{aligned} \right. \end{equation}
Це тридіагональна СЛАР; її можна розв’язати методом прогонки за арифметичних операцій.
Задача 18: Написати СЛАР для кубічного інтерполяційного сплайну, якщо , та розробити алгоритм її розв’язання (тобто написати формули методу прогонки).
Теорема: Нехай , тоді має місце оцінка
\begin{equation} \left| f^{(k)}(x) - s^{(k)}(x) \right|\void_{C([a,b])} \le M_4 |h|^{4 - k}, \end{equation}
де і , .
Введемо клас функцій
\begin{equation}
U = \left\{ u(x): u(x) \in W_2^2([a,b]) , u(x_i) = f_i, i = \overline{0,n} \right\}
\end{equation}
— це функції досить гладкі і приймають задані значення. Якщо ввести такий функціонал
\begin{equation} \Phi(u) = \Int_a^b (u^{\prime\prime}(x))^2 \diff x, \end{equation}
то
\begin{equation} \Phi(s) = \Inf_{u \in U} \Phi(u), \end{equation}
де — кубічний природній інтерполяційний сплайн.
Оскільки кривизна графіка кривої пропорційна , то це фактично означає, що сплайн має в середньоквадратичному розумінні найменшу кривизну серед всіх функцій , що інтерполюють значення .
Для того, щоб не розв’язувати СЛАР інколи будують наближення до сплайну , яке отримується заміною на
\begin{equation} f_{\bar x, \hat x, i} \equiv \frac{1}{\bar h_i} \left( \frac{f_{i+1}-f_i}{h_{i+1}} - \frac{f_i - f_{i-1}}{h_i} \right) \approx f^{\prime\prime}(x_i) \approx s^{\prime\prime}(x_i), \end{equation}
де , причому ; При цьому і . Відмітимо, що не є сплайном дефекту 1.
Зауваження 1: Складемо матрицю розмірності :
\begin{equation} A = \begin{pmatrix} \frac{h_1 + h_2}{3} & \frac{h_2}{6} & 0 & \ldots & 0 \newline \frac{h_2}{6} & \frac{h_2 + h_3}{3} & \frac{h_3}{6} & \ddots & \vdots \newline 0 & \frac{h_3}{6} & \frac{h_3 + h_4}{3} & \ddots & 0 \newline \vdots & \ddots & \ddots & \ddots & \ddots \newline 0 & \ldots & 0 & \frac{h_{n - 1}}{6} & \frac{h_{n-1} + h_n}{3} \end{pmatrix} \end{equation}
і матрицю розмірності :
\begin{equation} H = \begin{pmatrix} \frac{1}{h_1} & - \left(\frac{1}{h_1} + \frac{1}{h_2}\right) & \frac{1}{h_2} & 0 & \ldots & 0 \newline 0 & \frac{1}{h_2} & - \left(\frac{1}{h_2} + \frac{1}{h_3}\right) & \frac{1}{h_3} & \ddots & \vdots \newline \vdots & \ddots & \ddots & \ddots & \ddots & 0 \newline 0 & \ldots & 0 & \frac{1}{h_{n - 1}} & - \left(\frac{1}{h_{n-1}}+\frac{1}{h_n}\right) & \frac{1}{h_n} \end{pmatrix} \end{equation}
Тоді можна записати СЛАР відносно моментів вигляді:
\begin{equation} A \vec m = F \vec f, \end{equation}
де
\begin{equation} \vec f = (f_0, f_1, \ldots, f_n)^\intercal \end{equation}
Зауваження 2: Нагадаємо формулу для інтерполяційного багаточлена Лагранжа
\begin{equation} L_n(x) = \Sum_{i = 0}^n f(x_i) \Phi_i^{(n)}(x), \end{equation}
де — множники Лагранжа. Це представлення інтерполяційного багаточлена Лагранжа по системі функцій . Для
\begin{equation} \Phi_1 = \Sum_{i = 1}^n f(x_i) \varphi_i(x) \end{equation}
маємо представлення по системі кусково-лінійних функцій . Для
\begin{equation} \Phi_3(x) = \Sum_{i = 1}^n \left( f(x_i) \varphi_i^0(x) + f’(x_i) \left( \varphi_i^1 \right) ‘(x) \right) \end{equation}
— представлення по системі .
Аналогічно, якщо представити кубічний сплайн у вигляді
\begin{equation} s_3(x) = \Sum_{i = 0}^n c_i B_3^i(x), \end{equation}
то відповідна система для кубічного сплайну буде . Тут — так званий кубічний -сплайн. Формула дається, а графік представлено на рис.:
\begin{equation} B_3^i(z) = \frac{1}{6h} \begin{cases} \left(\frac{z - x_{i-2}}{h}\right)^3, & z \in [x_{i - 2}, x_{i - 1}]; \newline - 3 \left(\frac{z - x_{i - 1}}{h}\right)^3 + 3 \left(\frac{z - x_{i-1}}{h}\right)^2 + 3 \left(\frac{z - x_{i-1}}{h}\right) + 1, & z \in [x_{i - 1}, x_i]; \newline - 3 \left(\frac{x_{i + 1} - z}{h}\right)^3 + 3 \left(\frac{x_{i-1} - z}{h}\right)^2 + 3 \left(\frac{x_{i-1} - z}{h}\right) + 1, & z \in [x_i, x_{i + 1}]; \newline \left(\frac{x_{i+2} - z}{h}\right)^3, & z \in [x_{i + 1}, x_{i + 2}]; \newline 0, & z < x_{i - 2} \lor x_{i + 2} < z. \end{cases} \end{equation}
Задача 19: Показати, що є кубічним сплайном дефекту .
Для знаходження коефіцієнтів записується СЛАР з умов інтерполювання.
6.12. Параметричні сплайни
На практиці часто виникає задача побудови кривої по заданим точкам . В цьому випадку використовують сплайни. Якщо відповідна функція однозначна, то сплайн будується за алгоритмом з попереднього пункту.
Окремо розглянемо випадок, коли точки в площині розташовані у довільний спосіб:
В цьому випадку відповідна функція задається параметрично
\begin{equation} \label{eq:6.12.1} x = x(t), \quad y = y(t), \quad t \in [A, B]. \end{equation}
Для значень , побудуємо кубічний сплайн такий, що , , а для , будуємо сплайн , для якого , .
Означення: Тоді параметрична функція
\begin{equation} \label{eq:6.12.2} (s_x(t), s_y(t), \quad t \in [A, B]. \end{equation}
називається параметричним сплайном для функції \eqref{eq:6.12.2}.
Стає питання про вибір параметру . Нехай , , тобто для табличних даних параметром виступає номер точки в площині . Тоді для параметричного сплайну неперервний параметр змінюється на інтервалі .
Побудова сплайнів та здійснюється за алгоритмом наведеним в попередньому пункті по значенням , та , .
Розглянемо тепер побудову замкненої гладкої кривої:
Параметризуємо її як в попередньому випадку. Відмінність полягає в тому, що тепер функції та періодичні з періодом , тобто
\begin{equation} \forall t: \quad x(t) = x(t + n), \quad y(t) = y(t + n). \end{equation}
Наприклад, для значень в точках маємо:
\begin{equation} \label{eq:6.12.3} x_1 = x_{n + 1}, \quad y_1 = y_{n + 1}; \qquad x_0 = x_n, \quad y_0 = y_n. \end{equation}
Побудуємо алгоритм реалізації періодичного параметричного кубічного сплайну. Як і для звичайного сплайну на інтервалі маємо:
\begin{equation} \begin{aligned} s(t) &= \frac{m_{i - 1} (t_i - t)^3}{6 h_i} + \frac{m_i (t - t_{i - 1})^3}{6 h_i} + \newline & \quad + \left(f_{i - 1} - \frac{m_{i - 1} h_i^2}{6}\right) \frac{t_i - t}{h_i} + \newline & \quad + \left(f_i - \frac{m_i h_i^2}{6}\right) \frac{t - t_{i - 1}}{h_i}, \end{aligned} \end{equation}
де — одна з функцій або ; , або , ; . Для знаходження коефіцієнтів сплайну з умови неперервності першої похідної сплайна маємо СЛАР:
\begin{equation} \label{eq:6.12.4} \left\{ \begin{aligned} & \frac{h_i m_{i - 1}}{6} + \frac{(h_i + h_{i + 1}) m_i}{3} + \frac{h_{i + 1} m_{i + 1}}{6} = \newline & \quad = \frac{f_{i + 1} - f_i}{h_i} -\frac{f_i - f_{i - 1}}{h_i}, \quad i = \overline{1,n}, \newline & m_0 = m_n, \quad m_1 = m_{n + 1}, \end{aligned} \right. \end{equation}
Додаткові умови на коефіцієнти випливають з періодичності сплайну та його других похідних.
Системі відповідає матриця розмірності :
\begin{equation} A = \begin{pmatrix} \frac{h_1 + h_2}{3} & \frac{h_2}{6} & 0 & \cdots & 0 & \left\langle\frac{h_1}{6}\right\rangle \newline \frac{h_2}{6} & \frac{h_2 + h_3}{3} & \frac{h_3}{6} & \ddots & & 0 \newline 0 & \frac{h_3}{6} & \frac{h_3 + h_4}{3} & \ddots & \ddots & \vdots \newline \vdots & \ddots & \ddots & \ddots & \ddots & 0 \newline 0 & & \ddots & \ddots & \ddots & \frac{h_n}{6} \newline \left\langle \frac{h_1}{6} \right\rangle & 0 & \cdots & 0 & \frac{h_n}{6} & \frac{h_n + h_1}{3} \end{pmatrix} \end{equation}
яка є майже тридіагональною: «заважають» два елементи матриці, що виділені кутовими дужками.
Для розв’язання таких систем застосовують метод циклічної прогонки.
Розглянемо алгоритм цього методу для більш загальної системи:
\begin{equation} \label{eq:6.12.5} \left\{ \begin{aligned} & a_i y_{i - 1} - c_i y_i + b_i y_{i + 1} = - f_i, \quad i = \overline{1, n}, \newline & y_0 = y_n, \quad y_{n + 1} = y_1, \quad a_1 = a_n, \quad b_{n + 1} = b_1, \end{aligned} \right. \end{equation}
Формули методу [ЛМС, стор. 391–392]:
-
, , ;
-
; ; ; , ;
-
; ;
-
; , ;
-
;
-
,
Метод стійкий (, ), якщо , . Для системи ці умови виконані.
Метод економний, оскільки кількість арифметичних операцій, що витрачається на його реалізацію, .
Розглянуті в цьому пункті параметричні сплайни мають хороші апроксимативні та екстремальні властивості, тому побудовані по ним криві добре відновлюють задані як при малій, так досить великій кількості точок інтерполювання
6.13. Застосування інтерполювання
-
Складання таблиць. Нехай залишковий член лінійної інтерполяції по двох сусідніх точках , :
\begin{equation} r_1^i(x) = f(x) - L_1^i(x) = \frac{f’’(\xi)}{2!} \cdot (x - x_{i - 1}) (x - x_i). \end{equation}
Тоді
\begin{equation} \left|r_1^i(x)\right| \le \frac{M_2^i}{2} \cdot |(x - x_{i - 1}) (x - x_i)| \le \frac{M_2^i h^2}{8}, \quad x \in [x_{i - 1}, x_i]. \end{equation}
Таким чином
\begin{equation} \left| f(x) - L_1^i(x) \right|\void_{C([a,b])} \le \frac{M_2 h^2}{8}. \end{equation}
Ця оцінка може бути використана при складані таблиць функцій, які при відновлення проміжних значень лінійною інтерполяцією сусідніх значень забезпечують точність .
Для того, щоб похибка була меншою за потрібно вибрати
\begin{equation} h \le \sqrt{\frac{8 \varepsilon}{M_2}}. \end{equation}
Аналогічно, для квадратичного інтерполювання маємо
\begin{equation} \left|f(x) - L_2^i(x)\right|\void_{C([a,b])} \le \frac{M_3 h^3}{9 \sqrt{3}} < \varepsilon. \end{equation}
Звідси
\begin{equation} h \le \sqrt[3]{\frac{9 \sqrt{3} \varepsilon}{M_3}}. \end{equation}
-
Розв’язування рівнянь. Нехай необхідно розв’язати рівняння
\begin{equation} \label{eq:6.13.1} f(x) = \bar y. \end{equation}
При маємо рівняння . Нехай корінь рівняння \eqref{eq:6.13.1}.
-
Обернене інтерполювання. Якщо відома обернена функція , то . Нехай функція задана значеннями , . Побудуємо інтерполяційний багаточлен по значеннях де вважаються значеннями аргументу, а — значеннями оберненої функції. Тоді наближення до кореня є .
Оцінимо похибку:
\begin{equation} \label{eq:6.13.2} \left| \bar x - x^\star \right| = \left| x(\bar y) - L_n(\bar y) \right| \le \frac{M_{n+1}}{(n + 1)!} |\omega_n(\bar y)|, \end{equation}
де , .
Недоліком методу є складність обчислення похідних старших порядків оберненої функції.
-
Пряме інтерполювання. Нехай знову відомі , . Тоді замість рівняння \eqref{eq:6.13.1} розв’язуємо рівняння
\begin{equation} L_n(x^\star) = y,
\end{equation}де інтерполяційний багаточлен по значенням .
Недоліками методу є необхідність розв’язування алгебраїчних рівнянь -го степеня та необхідність вибирати шуканий розв’язок серед коренів багаточлена степеня .
Але позитивним є те, що функція є все таки алгебраїчною (а саме багаточленом).
Оцінимо похибку такого способу обчислення кореня. Маємо:
\begin{equation} f(x^\star) - L_n(x) = \frac{f^{(n + 1)}(\xi)}{(n + 1)!} \cdot \omega_n(x). \end{equation}
Далі , звідки
\begin{equation} |f(x^\star) - f(\bar x)| \le \frac{M_{n + 1}}{(n + 1)!} \cdot |\omega_n(x)|. \end{equation}
Тут тепер .
За теоремою Лагранжа .
Припустимо, що . Це означає, що на проміжку функція монотонна. Звідси
\begin{equation} |x^\star - \bar x| \le \frac{|f(x^\star) - f(\bar x)}{\Min_{x \in [a,b]} |f’(x)|} \le \frac{M_{n + 1}}{\Min_{x \in [a, b]} |f’(x)|} \cdot \frac{|\omega_n(x)|}{(n + 1)!}. \end{equation}
-
-
Метод інтерполювання побудови характеристичного багаточлена.
Одним з найпростіших методів побудови характеристичного багаточлена є наступний. Відомо, що багаточлен -го степеня однозначно визначається своїми значеннями в -й точці. Тому для побудови виберемо на проміжку де знаходяться власні значення (наприклад, , де або ) деякі точки , . За допомогою методу Гауса для несиметричних матриць або методу квадратних коренів для симетричних матриць обчислимо і по цих значення за формулою, наприклад, Ньютона побудуємо інтерполяційний багаточлен, який співпадатиме з характеристичним.
Далі розв’язується рівняння одним з відомих методів для нелінійного рівняння. Характерно, що часто для цього використовують метод парабол (обернене інтерполювання по трьох точках, або заміна рівняння -го степеня в околі кореня на квадратне рівняння за допомогою інтерполяційного багаточлена другого степеня).
Зауважимо, що знаходження власних значень за допомогою характеристичного багаточлена пов’язана з проблемою нестійкості коренів характеристичного багаточлена відносно похибок обчислення коефіцієнтів цього багаточлена. Тому застосовують цей метод для невеликих розмірностях матриці .
6.14. Тригонометрична інтерполяція
Інтерполяція відбувається за системою функцій
\begin{equation} \label{eq:6.14.1} 1, \sin (x), \cos(x), \sin(2x), \cos(2x), \ldots, \sin(kx), \cos(kx), \ldots \end{equation}
що є відрізком тригонометричного ряду Фур’є. Щоб знайти потрібно визначити коефіцієнт, а значить задати значень періодичної з періодом функції , .
Покажемо, що
\begin{equation} \label{eq:6.14.2} T_n(x) = \Sum_{i = 0}^{2n} f(x_i) \Phi_i(x), \end{equation}
де
\begin{equation} \Phi_i(x) = \Prod_{\substack{j = 0 \\ j \ne i}}^{2 n} \frac{\sin \left(\frac{x - x_j}{2}\right)}{\sin \left(\frac{x_i - x_j}{2}\right)}, \end{equation}
тобто , та . Дійсно
\begin{equation} \Phi_i(x_k) = \Prod_{\substack{j = 0 \\ j \ne i}}^{2 n} \frac{\sin \left(\frac{x_k - x_j}{2}\right)}{\sin \left(\frac{x_i - x_j}{2}\right)}, \end{equation}
для , а
\begin{equation} \Phi_i(x_i) = \Prod_{\substack{j = 0 \\ j \ne i}}^{2 n} \frac{\sin \left(\frac{x_i - x_j}{2}\right)}{\sin \left(\frac{x_i - x_j}{2}\right)} = 1. \end{equation}
Таким чином за допомогою формули \eqref{eq:6.14.2} ми уникли необхідності підраховувати коефіцієнти Фур’є , .
Нехай функція є парною та неперервною на проміжку . Тоді по значенням в -й точці, , , можна побудувати парний тригонометричний багаточлен:
\begin{equation} \label{eq:6.14.3} T_n(x) = \Sum_{i = 0}^{n} f(x_i) \Prod_{\substack{j = 0 \\ j \ne i}}^n \frac{\cos(x) - \cos(x_i)}{\cos(x_i) - \cos(x_j)}. \end{equation}
Якщо ж функція є непарною на проміжку , то по значенням в точках , . можна побудувати непарний інтерполяційний багаточлен:
\begin{equation} \label{eq:6.14.4} T_n(x) = \Sum_{i = 1}^{n} f(x_i) \frac{\sin(x)}{\sin(x_i)} \Prod_{\substack{j = 1 \\ j \ne i}} \frac{\cos(x) - \cos(x_i)}{\cos(x_i) - \cos(x_j)}. \end{equation}
Задача 20: Показати, що тригонометричні багаточлени \eqref{eq:6.14.3}, \eqref{eq:6.14.4} є інтерполюючими для функції . Яке значення функції інтерполює \eqref{eq:6.14.4} при ? Чому?
6.15. Двовимірна інтерполяція
Побудова багаточлена для функції від двох змінних , що інтерполює значення в точках , пов’язана з такими труднощами
-
Якщо в одновимірному випадку кількість вузлів та степінь багаточлена пов’язані простою залежністю: точка дозволяють побудувати багаточлен -го степеня , то в двовимірному випадку багаточлен -го степеня від двох змінних
\begin{equation} P_n(x, y) = \Sum_{0 \le k + m \le n} a_{k,m} x^k y^m, \end{equation}
має коефіцієнтів . Тому необхідно задати значення в точках .
-
Не всяке розташування вузлів допустиме. Якщо розглянути умови інтерполювання
\begin{equation} P_n(x_i, y_i) = \Sum_{0 \le k + m \le n} a_{k,m} x_i^k y_i^m = z_i, \end{equation}
то для розв’язності цієї СЛАР необхідно виконання умови , де матриця має коефіцієнти:
\begin{equation}
\end{equation}
Ця умова, наприклад, для лінійної інтерполяції та вимагає, щоб вузли не лежали на одній прямій. Якщо , то і необхідно розглядати точки, які не лежать на деякій кривій другого порядку і т. д.
Розглянемо випадки, коли можна записати багаточлен для двовимірної інтерполяції в явному вигляді.
Нехай область, в якій інтерполюється функція є прямокутником:
\begin{equation} \overline \Omega = { (x, y): 0 \le x \le L_1, 0 \le y \le L_2 }. \end{equation}
Введемо сітку
\begin{equation} x_i = i h_x, \quad, h_x = L_1 / N, \quad i = \overline{0, N}; \qquad y_j = j h_y, \quad, h_y = L_2 / M, \quad j = \overline{0, M} \end{equation}
Тоді інтерполяційний багаточлен має вигляд
\begin{equation} \label{eq:6.15.1} P(x, y) = \Sum_{i = 0}^{N} \Sum_{j = 0}^{M} f(x_i, y_j) \Prod_{\substack{p = 0 \\ p \ne i}}^{N} \Prod_{\substack{q = 0 \\ q \ne j}}^{M} \left(\frac{x - x_i}{x_p - x_i} \cdot \frac{y - y_j}{y_q - y_j}\right) \end{equation}
Розглянемо випадок, коли . Тоді
\begin{equation} \label{eq:6.15.2} \begin{aligned} P_{1,1}(x, y) &= f(x_0, y_0) \cdot \frac{x - x_1}{x_0 - x_1} \cdot \frac{y - y_1}{y_0 - y_1} + f(x_0, y_1) \cdot \frac{x - x_1}{x_0 - x_1} \cdot \frac{y - y_0}{y_1 - y_0} + \newline & \quad + f(x_1, y_0) \cdot \frac{x - x_0}{x_1 - x_0} \cdot \frac{y - y_1}{y_0 - y_1} + f(x_1, y_1) \cdot \frac{x - x_0}{x_1 - x_0} \cdot \frac{y - y_0}{y_1 - y_0} = \newline &= a_0 + a_1 x + a_2 y + a_{1,2} x y. \end{aligned} \end{equation}
Це так звана білінійна інтерполяція, тобто лінійна по кожній окремій змінній.
Формула \eqref{eq:6.15.1} являє собою приклад інтерполювання на всій області. В одновимірному випадку при великих степенях багаточлена отримують погане наближення через розбіжність процесу інтерполювання. Так ж картина має місце і в двовимірному випадку. Тому найчастіше застосовують кусково-поліноміальну апроксимацію.
Коротко наведемо деякі відомості про кусково-поліноміальне інтерполювання з теорії методу скінчених елементів розв’язання крайових задач для диференціальних рівнянь в частинних похідних.
Нехай область — багатокутник в площині. Представимо її у вигляді
\begin{equation} \Omega = \bigsqcup_{i = 1}^n K_i, \end{equation}
де .
Означення: називається «тріангуляцією» області ,
а — багатокутники з непорожньою внутрішністю що не мають спільних внутрішніх точок, причому , де — характеристика щільності розбиття.
Найчастіше це трикутники або прямокутники.
Нехай — функція, яку ми будемо інтерполювати. Позначимо простір, що апроксимує , а його елементи . Причому звуження цієї функції на область , тобто є поліномом.
Позначимо , — простір багаточленів степеня по сукупності змінних , ; його розмірність . Нехай , — простір багаточленів степеня по кожній окремій змінний , ; його розмірність .
Наприклад, — поліном степеня по , , а лінійна по кожній окремій змінній.
Позначимо через — простір інтерполянтів при розбитті області на трикутники, а — при розбитті на прямокутники.
Приклад 1: Утворимо , .
Будуємо багаточлен -го степеня по двох змінних. Оскільки , то для цього треба задати значення функції в трьох точках. Точки, які задано — , i = \overline{1,3}$$ вибираємо вершинами трикутника, як на малюнку:
Тоді поліном першого степеня є розв’язком такого рівняння відносно :
\begin{equation} \begin{vmatrix} 1 & x & y & z \newline 1 & x_1 & y_1 & z_1 \newline 1 & x_2 & y_2 & z_2 \newline 1 & x_3 & y_3 & z_3 \end{vmatrix} = 0. \end{equation}
Тут , .
Задача 21: Знайти явний вигляд — інтерполяційного багаточлена по значенням в точках , .
Приклад 2: Для , , .
Треба задати значень, щоб забезпечити однозначність наближення. Тому вибираємо точки інтерполювання так:
Приклад 3: , , .
Потрібно задати 10 точок, як на наступному малюнку:
Приклад 4: , , .
Формула для наведена в \eqref{eq:6.15.2}. Точки:
Приклад 5: , , .
Приклад 6: , , .
Нехай — це простір з нормою
де
\begin{equation} |v_k|^2 = \Int_\Omega (D^m v)^2 \diff \Omega = \Int_\Omega \left( \left(D_{x^k}^k x\right)^2 + \left(D_{x^{k - 1} y}^k x\right)^2 + \ldots + \left(D_{y^k}^k x\right)^2 \right) \diff \Omega \end{equation}
\begin{equation} D_{x^k}^k v = \frac{\partial^k v}{\partial x^k}; \quad D_{x^{k - 1} y}^k v = \frac{\partial^k v}{\partial x^{k - 1} \partial y}; \quad \ldots \end{equation}
Якщо , то , класу функцій інтегрованих з квадратом до -ї похідної.
Розглянемо розбиття на трикутники. Накладемо обмеження на них.
Означення: Розбиття називається регулярним, якщо таке, що
\begin{equation} \Max_{k \in T_h} \frac{h_k}{\rho_k} \le \sigma, \quad h_k = \diam K, \quad S \subset K, \quad \rho_k = \mu(S): \end{equation}
Якщо , то вироджується в пряму і це погано.
Теорема: Нехай , , — регулярна тріангуляція . Тоді
\begin{equation} |v - v_h|\void_m \le C h^{l + 1 - m} |v|\void_{l + 1}, \quad m = 0, 1, \quad k \ge 1. \end{equation}
Наприклад: для , : , . Якщо ж , , то .
Ця теорема дозволяє стверджувати збіжність процесу інтерполювання. І чим більше степінь полінома на кожному елементі тим вища швидкість збіжності.
Узагальнимо результат теореми на область з гладкою границею:
Для цього вибираємо точки на границі і будуємо вписаний багатогранник. Його тріангулюємо. Далі на кожному трикутнику будуємо інтерполянт. В результаті отримуємо .
Тоді для , : .