Введение в вычислительную математику

Интерполяция функций

Разбить на страницы
Показывать лекцию целиком

6.1. Постановка задачи интерполяции

Пусть задана совокупность узлов интерполяции или сетка на некотором отрезке [a, b]. В простейшем случае сетка — равномерная, т.е. расстояние между соседними узлами одинаково. В дальнейшем также рассмотрим неравномерные сетки.

  • Совокупность узлов $$\left\{{t_n}\right\}_{n = 0}^N,$$ $$t_{n} = a + n\tau,$$ $$\tau = (b - a)/N,$$ $$t \in \left[{a, b}\right].$$
  • Сеточная проекция функции f(t) на [a, b], т.е. таблица $$f_n = = \left\{{f(t_n)}\right\}_{n = 0}^N $$ ; эту таблицу задает оператор ограничения на сетку или рестрикции (от английского restriction ) $$\mathbf{R}.$$
  • Задача состоит в том, чтобы по таблице {fn} восстановить непрерывную функцию. Обозначим ее через F(t). Разумеется, она отличается от исходной функции f(t), причем такое восстановление неоднозначно и осуществляется оператором интерполяции $$\mathbf{I}.$$ Сама функция F(t) называется интерполирующей или интерполянтом. Необходимо оценить потерю информации при действии этого оператора, т. е. величину |f(t) - F(t)|, зависящую от типа оператора интерполяции и свойств f(t), в частности, ее гладкости. Таким образом, имеем схему:

    $$f(t) \mathop \to\limits_{\mathbf{R}} \left\{{f_n}\right\}_{n = 0}^{N} \mathop \to\limits_{\mathbf{I}} F(t).$$

    6.2. Кусочно - линейная интерполяция

    Простейший способ интерполяции — кусочно - линейная, требующая минимальных требований на гладкость функции f(t). При таком способе интерполяции соседние точки ( tn, fn ) и ( tn + 1, fn + 1 ) соединяют отрезками прямых

    $$$ F(t) = \frac{f_{n + 1} (t - t_n) + f_n (t_{n + 1} - t)}{t_{n + 1} - t_n}, t \in [t_n , t_{n + 1} ]. $$$

    Теорема. Пусть f(t) — Липшиц непрерывная функция, т.е. $$| f(t_1 ) - f(t_2 ) | \le c \left|{t_1 - t_2 }\right|,$$ тогда $$$ \left|{f(t) - F(t)}\right| \le c\frac{\tau }{2} $.$$

    Примечание. Если сетка неравномерная и $$\tau = \max\limits_n (t_{n + 1} - t_n),$$ то теорема верна и для этого случая.

    Доказательство.

    Пусть $$t \in [t_n , t_{n + 1} ],$$ обозначим $$\tau = t_{n + 1} - t_{n}.$$ Тогда $$t = t_n + \alpha \cdot \tau$$ ; $$0 \le \alpha \le 1.$$ В силу линейности f(t) имеем равенство $$F(t) = \alpha f_{n + 1} + (1 - \alpha )f_n.$$

    Оценим разность

    $$\begin{gather*} \left|{F(t) - f(t)}\right| = \left|{\alpha f_{n + 1} + (1 - \alpha )f_n - \alpha f(t) - (1 - \alpha )f(t)}\right| \le \\ \le \alpha \left|{f_{n + 1} - f(t)\left. {}\right| + (1 - \alpha )}\right|f_n - f(t)\left. {}\right|. \end{gather*} $$

    Поскольку $$f_{n + 1} = f(t_{n} + \tau ),$$ имеем

    $$\begin{multline*} \left|f_{n + 1} - f(t)\right| = \left|f(t_n + \tau) - f(t_n + \alpha\tau)\right| \le \left|c(1 - \alpha )\tau\right| = \\ = c(1 - \alpha)\tau, \quad \mbox{т.к. }\quad 0 \le \alpha \le 1. \end{multline*}$$

    Аналогично $$\left|{f_n - f(t)}\right| \le c\alpha \tau.$$ В таком случае $$\left|{f(t) - F(t)}\right| \le 2\alpha (1 - \alpha ) c\tau \le c\tau/2.$$

    Замечание. Простой аппарат кусочно - линейной интерполяции позволяет ввести объекты, на которых базируется один из наиболее известных современных численных методов — метод конечных элементов. Сетке { tn } ставится в соответствие набор базисных функций $$\varphi_n(t),$$ каждая из которых сопоставляется своему узлу tn, причем $$\varphi_n (t_k ) = \delta_k^{n}, \varphi_n (t_{n - 1}) = \varphi_n (t_{n + 1}) = 0, \varphi_n (t_n) = 1,$$ а в остальных точках она вычисляется с помощью кусочно - линейной интерполяции.

    Функция f(t) в этом случае представляется в виде

    $$F(t) = \sum\limits_{n = 0}^{N}{f_n}\varphi_n (t).$$

    В вычислительной математике часто используется кусочно - полиномиальная интерполяция. Так, эрмитовым кубическим интерполянтом называется кусочно - кубический интерполянт с непрерывной производной, кубическим сплайном называется кусочно - кубический интерполянт с двумя непрерывными производными. О сплайнах речь пойдет ниже.

    6.3. Интерполяция обобщенными полиномами

    Для того чтобы функция ( обобщенный полином )$$F(t) = \sum\limits_{n = 0}^{N}{u_n \varphi_n (t)}$$ была интерполирующей, необходимо выполнение условий: F(tk) = fk, $$k = 0 \div N,$$ где fk — значения функции в точках интерполяции. Для коэффициентов обобщенного полинома получаем систему уравнений:

    $$\left\{ \begin{array}{l} u_0 \cdot \varphi_0 (t_0 ) + u_1 \cdot \varphi_1 (t_0 ) + \ldots + u_N \cdot \varphi_N (t_0 ) = f_0, \\ u_0 \cdot \varphi_0 (t_1 ) + u_1 \cdot \varphi_1 (t_1 ) + \ldots + u_N \cdot \varphi_N (t_1 ) = f_1, \\ \ldots \\ u_0 \cdot \varphi_0 (t_N) + u_1 \cdot \varphi_1 (t_N) + \ldots + u_N \cdot \varphi_N (t_N) = f_N , \\ \end{array} \right.$$

    или в векторной форме

    $${\mathbf{Au}} = {\mathbf{f}},$$

    где

    $${\mathbf{A}} = \left( \begin{array}{cccc} {\varphi_0 (t_0 )} {\varphi_1 (t_0 )} \ldots {\varphi_N (t_0 )} \\ {\varphi_0 (t_1 )} {\varphi_1 (t_1 )} \ldots {\varphi_N (t_1 )} \\ \ldots \ldots \ldots \ldots \\ {\varphi_0 (t_N)} {\varphi_1 (t_N)} \ldots {\varphi_N (t_N)} \\ \end{array} \right), {\mathbf{u}} = \left( \begin{array}{cccc} {u_0 } {u_1 } \ldots {u_N} \\ \end{array} \right)^{T}, \\ {\mathbf{f}} = \left( \begin{array}{cccc} {f_0 } {f_1 } \ldots {f_N} \\ \end{array} \right)^{T}.$$

    Теорема (доказывается в курсе линейной алгебры.) Для того чтобы решение задачи интерполяции существовало и было единственным, необходимо и достаточно, чтобы система базисных функций $$\varphi_N (t_k)$$ была линейно независима.

    Теорема (доказывается в курсе линейной алгебры.) Для того чтобы система функций $$\varphi_N (t_k)$$ была линейной независимой в точках t0, ..., tn, необходимо и достаточно, чтобы определитель матрицы Грама

    $${\mathbf{C}} = {\mathbf{A}}^\ast {\mathbf{A}} = \left( \begin{array}{cccc} {(\varphi_0, \varphi_0)} {(\varphi_0, \varphi_1)} \ldots {(\varphi_0, \varphi_N)}\\ {(\varphi_1, \varphi_0)} {(\varphi_1, \varphi_1)} \ldots {(\varphi_1, \varphi_N)}\\ \ldots \ldots \ldots \ldots \\ {(\varphi_N , \varphi_0)} {(\varphi_N , \varphi_1)} \ldots {(\varphi_N , \varphi_N)} \end{array} \right),$$

    был отличен от нуля. Здесь каждый элемент матрицы Грама имеет вид

    $$\gamma_{jk} = (\varphi_k , \varphi_j) = \sum\limits_{i = 0}^{N}{\varphi_k (t_i) \cdot \varphi_j (t_i)}.$$

    В случае, если система функций $$\left\{{\varphi_j}\right\}_0^{N}$$ ортогональна на множестве точек $$\left\{{t_j}\right\}_0^{N},$$ решение задачи интерполяции значительно упрощается (напомним, что система функций $$\left\{{\varphi_j}\right\}_0^{N}$$ является ортогональной на множестве точек $$\left\{{t_j}\right\}_0^{N},$$ если $$(\varphi_k , \varphi_j) = 0$$ при $$k \ne j$$ и $$\left({\varphi_k , \varphi_j}\right) \ne 0$$ при k = j для всех k = 0, 1, ..., N ; j = 0, 1, ..., n ).

    Дело в том, что матрица Грама для ортогональной системы функций диагональна, и ее определитель отличен от нуля (всякая ортогональная система функций заведомо линейно независима). Линейная система уравнений представляется как $${\mathbf{A}}*{\mathbf{Au}} = {\mathbf{A}}*{\mathbf{f}},$$ или $$\mathbf{Cu} = \mathbf{b},$$ где $$\mathbf{C} = \mathbf{A}*\mathbf{A},$$ $$\mathbf{b} = \mathbf{A}*\mathbf{f}$$ - вектор, а ее решение в случае $$\mathbf{A}*\mathbf{A} = \mathbf{E}$$ есть $${\mathbf{u}} = {\mathbf{A}}*{\mathbf{f}}.$$

    Примером ортогональной системы являются показательные функции $$e^{2\pi ikt_j}$$ на множестве точек tj = {j / N}, j = 0, 1, ..., N (на отрезке [0, 1] ).

    6.4. Полиномиальная (алгебраическая) интерполяция

    В этом случае (uk(t) = tk) СЛАУ для определения коэффициентов имеет вид

    $$\left\{ \begin{array}{l} u_0 + u_1 t_0 + \ldots + u_N t_0^{N} = f_0, \\ u_0 + u_1 t_1 + \ldots + u_N t_1^{N} = f_1, \\ \ldots \\ u_0 + u_1 t_N + \ldots + u_N t_N^{N} = f_N , \\ \end{array} \right.$$

    а ее определитель

    $$\det \left( \begin{array}{cccc} 1 {t_0 } {t_0^2 } \ldots \\ 1 {t_1 } {t_1^2 } \ldots \\ \cdots \cdots \cdots \cdots \\ 1 {t_N} {t_N^2 } \ldots \\ \end{array} \right) = \mathop {\Pi\limits_{i \ne j}}\limits^{N}(t_i - t_j), 0 \le j < i \le N,$$

    отличен от нуля, если узлы интерполяции попарно различны. Это известный из курса линейной алгебры определитель Вандермонда.

    Ответ на вопрос о существовании и единственности решения СЛАУ оказывается — утвердительным - решение задачи алгебраической интерполяции всегда существует и единственно, но при больших N система оказывается плохо обусловленной. Однако решение этой задачи можно выписать в явном виде

    $$L_N (t) = \sum\limits_{n = 0}^{N}{f_n} \cdot \varphi_n^{N} (t),$$

    где $$$ \varphi_n^{N} (t) = {\mathop \Pi\limits^N_{\substack{i = 0 \\ i \ne n}}} \frac{t - t_j}{t_n - t_i} $$$ - базисные функции, являющиеся полиномами степени N, каждый из которых сопоставлен со своим узлом сетки так, что $$\varphi_n^{N} (t_k) = \delta_k^{n} .$$ Заметим, что правильнее было бы писать LN(t, {tn}, {fn}), т.е. интерполянт зависит от t, сетки и сеточной функции. Такой вид записи алгебраического интерполяционного полинома не единственен. Выписанный полином называется интерполяционным полиномом в форме Лагранжа. Он удобен для теоретического рассмотрения, но на практике часто оказывается более удобной другая форма представления — полином в форме Ньютона, о котором речь пойдет ниже.

    6.5. Теорема об остаточном члене интерполяции

    Введем понятие остаточного члена интерполяции для оценки погрешности

    $$R_N (t) = f({t}) - L_N (t).$$

    Теорема. Пусть функция f(t) имеет на отрезке [a, b] N + 1 ограниченную производную. Тогда $$$ R_N (t) = \frac{1}{(N + 1)!} {\mathop \Pi\limits_{j = 0}^{N} (t - t_j)} \cdot f^{(N + 1)}(\xi ),$$ где $$\xi \in \left[{a, b}\right] $.$$

    Доказательство.

    Рассмотрим функцию

    $$$ {\psi}(x) = f(x) - L_N (x) - R_N (t)\frac{(x - t_0 )(x - t_1 ) \ldots (x - t_N)}{(t - t_0 )(t - t_1 ) \ldots (t - t_N)}, $$$

    имеющую, по крайней мере, N + 1 производную. По условию, эту производную имеет f(x), а два остальных члена — полиномы.

    Кроме того, $${\psi}(x)$$ на [a, b] имеет, по крайней мере, N + 2 нуля.

    Их можно указать. Точки x = tn (n = 0, …, N) — нули, поскольку f(tn) = L(tn), а последнее слагаемое обращается в них в нуль. N + 2 нулем является точка x = t в силу определения остаточного члена. Далее, поскольку между каждыми двумя нулями непрерывно дифференцируемой функции имеется хотя бы один нуль ее производной, на [a, b] имеется хотя бы N + 1 нуль $${\psi}^{\prime}.$$ Применяя это рассуждение к $$\psi^{\prime\prime}, \psi^{\prime\prime\prime}, \ldots $$ можно показать, что существует точка $$\xi \in [a, b]$$ такая, что $${\psi}^{(N + 1)}(\xi ) = 0.$$

    Вычислим N + 1 производную правой части выражения для f(x) с учетом того, что L(N + 1) = 0. Кроме того, в точке $$\xi$$

    $$\begin{gather*} {\psi}^{(N + 1)} (\xi ) = f^{(N + 1)} (\xi ) - L^{(N + 1)} (\xi ) - \frac{d^{N + 1}}{dx^{N + 1}}\left[{R_N (t) \cdot \frac{(x - t_0 ) \ldots (x - t_N)}{(t - t_0 ) \ldots (t - t_N)}}\right]_\xi, \\ L^{(N + 1)} (\xi ) = 0; {\psi}^{(N + 1)} (\xi ) = 0; \\ \frac{d^{N + 1}}{dx^{N + 1}} \left. \left[\frac{(x - t_0 ) \ldots (x - t_N)}{(t - t_N) \ldots (t - t_N)}\right]\right|_{x = \xi} = \frac {(N + 1)!}{\mathop \Pi\limits_{j = 0}^N (t - t_j)} \end{gather*}$$ Тогда $$$ f^{(N + 1)} (\xi ) - R_N (t) \cdot \frac{{(N + 1)!}}{{ \mathop \Pi\limits_{j = 0}^{N} (t - t_j)}} = 0 $,$$ откуда получим выражение для RN(t): $$$ R_N (t) = \frac{{f^{(N + 1)} (\xi )}}{{(N + 1)!}}{ \mathop \Pi\limits_{j = 0}^N (t - t_j)} $$$

    Рассмотрим некоторые важные следствия этой теоремы.

    Следствие (точность интерполяции на равномерной сетке). Положим, что $$t_n = n\tau, \tau = (b - a)/N, t \in \left[{a, b}\right],$$ — сетка равномерная. В этом случае имеет место оценка

    $$$ \left|{R_N (t)}\right| \le \frac{{\tau ^{N + 1}}}{{N + 1}}C, C = \max\limits_{t \in \left[{a, b}\right]} \left|{f^{(N + 1)}(t)} \right|. $$$

    Доказательство. Пусть $$t = t_k + \alpha \tau , \alpha \in \left[{0, 1} \right], k = 0, 1, \ldots , N - 1.$$

    Тогда $$t - t_n = k\tau + \alpha \tau - n\tau = (k + \alpha - n)\tau $$ ; откуда $${\mathop \Pi\limits_{n = 0}^{N} (t - t_n)} = \tau ^{N + 1} {\mathop \Pi\limits_{n = 0}^{N} (k + \alpha - n)}.$$ Можно показать, что $${\mathop \Pi\limits_{n = 0}^{N}} \left|{k + \alpha - n}\right| \le N$$! . Остаточный член оценивается следующим образом: $$$ R_N (t) = \frac{f^{(N + 1)} (\xi )}{(N + 1)!} {\mathop \Pi\limits_{n = 0}^{N} (t - t_n)} $,$$ поэтому с учетом приведенных оценок получим

    $$$ \left|R_N(t)\right| \le \frac {\tau^{N + 1}}{N + 1} \max\limits_{\xi \in \left[{a, b}\right]} \left|{f^{(N + 1)} (\xi)}\right|. $$$

    Рассмотрим, как ведет себя оценка в задаче экстраполяции при удалении точки t от интервала [t0, tN]. При $$t \in \left[{t_N , t_N + \tau }\right]$$ имеем $$\left|{R_N (t)}\right| \le \tau ^{N + 1} \cdot \max\limits_{\xi \in [t_0, t_N + \tau ]} \left|{f^{(N + 1)} (\xi )}\right|,$$ поскольку $${\mathop \Pi\limits_{n = 0}^{N + 1}} \left|{k + \alpha - n}\right| \le (N + 1)$$!. При$$t \in \left[{t_N + \tau , t_N + 2\tau }\right] \left|{R_N (t)}\right| \le (N + 2) \tau ^{N + 1} \cdot \max\limits_{\xi \in [t_0, t_N + 2\tau ]} \left|{f^{(N + 1)} (\xi )}\right|,$$ так как $${\mathop \Pi\limits_{n = 0}^{N + 2}} \left|{(k + \alpha - n)}\right| \sim (N + 2)$$!

    При$$t \in \left[{t_N + 2\tau , t_N + 3\tau }\right]$$ $$$ \left|{R_N (t)}\right| \le \frac {(N + 2)(N + 3)}{2!} \tau ^{N + 1} \max\limits_{\xi \in [t_0, t_N + 3\tau ]} \left|{f^{(N + 1)}(\xi )}\right| $,$$ и так далее.

    Видно, что ошибка экстраполяции растет быстро, но не сразу: экстраполяция допустима на интервалах $$\sim O(\tau ).$$

    6.6. Интерполяционный полином в форме Ньютона

    6.6.1. Разделенные и конечные разности

    Определение. Пусть задана система узлов $$\left\{{t_n}\right\}_{n = 0}^{N}, t_n \in \left[{a, b}\right], t_0 = a, t_N = b.$$

    Разделенные разности нулевого порядка в точке ti совпадают со значениями функции f(ti) ;

    Разности первого порядка определяются для двух точек ti, ti + 1 равенством

    $$$ f(t_i , t_{i + 1}) = \frac{{f(t_{i + 1}) - f(t_i)}}{{t_{i + 1} - t_i}}, $$$

    разности второго порядка — для трех точек ti, ti + 1, ti + 2

    $$$ f(t_i , t_{i + 1}, t_{i + 2}) = \frac{f(t_{i + 1}, t_{i + 2}) - f(t_i , t_{i + 1})}{t_{i + 2} - t_i}, $$$

    разности порядка k — для k + 1 точки по рекуррентной формуле

    $$$ f(t_i, t_{i + 1}, \ldots , t_{i + k}) = \frac{f(t_{i + 1}, \ldots , t_{i + k}) - f(t_i, \ldots , t_{i + k - 1})}{t_{i + k} - t_i}. $$$

    Методом математической индукции можно показать, что

    а) $$$ f(t_i, t_{i + 1}, \ldots , t_{i + k}) = \sum\limits_{j = 0}^{k}{\frac{f(t_{i + j})}{\prod\limits_{\substack{r = 0 \\ r \ne {i + j}}}^{k}{(t_{i + j} - t_{i + r})}}} $;$$

    б) существует точка $$\xi \in \left[{a, b}\right]$$ такая, что $$k!f(t_{i}, t_{i + 1}, …, t_{i + k}) = f^{(k)}(\xi ).$$

    Отсюда следует, что разделенная разность есть симметричная функция своих аргументов ti, ..., ti + k и она не изменяется при их перестановке.

    Для удобства введем таблицу разделенных разностей:

    t0 f(t0) $$\ldots $$
    f(t0, t1) $$\ldots $$
    t1 f(t1) f(t0, t1, t2) $$\ldots $$
    f(t1, t2) $$\ldots $$
    t2 f(t2) $$\ldots $$ $$\ldots $$ f(t0, …, tn)
    $$\ldots $$ $$\ldots $$ $$\ldots $$ f(tn - 2, tn - 1, tn) $$\ldots $$
    f(tn - 1, tn) $$\ldots$$
    tn f(tn) $$\ldots $$

    Пусть сетка — равномерная. Тогда конечной разностью первого порядка функции f(t) в точке tk с шагом $$\tau$$ называют величину $$\Delta f_{k} = f_{k + 1} - f_{k},$$ где fk = f(tk), второго порядка — величину

    $$\Delta ^{2}f_{k} = \Delta f_{k + 1} - \Delta f_{k} = f_{k + 2} - 2f_{k + 1} + f_{k},$$

    третьего

    $$\Delta ^{3}f_{k} = \Delta f_{k + 3} - 3f_{k + 2} + 3f_{k + 1} - f_{k} = f_{k + 3} - 3f_{k + 2} + 3f_{k + 1} - f_{k},$$

    четвертого

    $$\Delta ^{4}f_{k} = f_{k + 4} - 4f_{k + 3} + 6f_{k + 2} - 4f_{k + 1} + f_{k},$$

    причем

    $${\Delta}^{n} f_k = {\Delta}^{n - 1} f_{k + 1} - {\Delta}^{n - 1} f_k, k \ge 1, {\Delta}^0 f_k = f_k.$$

    Методом математической индукции доказывается формула

    $${\Delta}^{n} f_k = \sum\limits_{s = 0}^{n}{(- 1)^{n - 1} \cdot C_n^{s} f_{k + s}, } $$

    где $$C_i^{s} = \frac{i!}{s!(i - s)!}$$ - биномиальные коэффициенты.

    Нетрудно показать, например, используя формулу Лагранжа, что существует точка $$\xi \in \left[{a, b}\right]$$ такая, что $$\tau ^{n} f^{(n)} (\xi ) = {\Delta}^{n} f_k , t_k \in \left[{a, b}\right],$$ поэтому в вычислительных методах используется приближенная формула

    $$$ f^{(n)} (t) \approx \frac{{\Delta}^{n} f_k}{\tau ^{n}}, $$$

    аналогичная тем формулам численного дифференцирования, что были получены в первой лекции методом неопределенных коэффициентов.

    Заметим, что введенные конечные разности называют "разностями вперед". Аналогично можно ввести "разности назад":

    $$\Delta f_{k} = f_{k} - f_{k - 1}, \Delta ^{2}f_{k} = \Delta f_{k} - \Delta f_{k - 1} = f_{k} - 2f_{k - 1} + f_{k - 2}, \dots \\ \Delta ^{n}f_{k} = \Delta ^{n - 1}f_{k} - \Delta ^{n - 1}f_{k - 1}$$

    и центральные разности

    $$\Delta f_{k} = f_{k + 1/2} - \Delta f_{k - 1/2}, \Delta ^{2}f_{k} = \Delta f_{k + 1/2} - \Delta f_{k - 1/2} = f_{k + 1} - 2f_{k} + f_{k - 1}, \dots , \\ \Delta ^{n}f_{k} = \Delta ^{n - 1}f_{k + 1/2} - \Delta ^{n - 1}f_{k - 1/2}.$$

    Иногда для обозначения первых конечных разностей вперед и назад используют обозначения $$\Delta ^{+}f_{k}, \Delta ^{-}f_{k}.$$

    6.6.2. Интерполяционный полином в форме Ньютона

    Интерполяционный полином может быть записан с использованием введенных выше разделенных разностей. Такая форма его записи называется интерполяционным полиномом в форме Ньютона. Полином имеет вид

    Nn(t) = f(t1) + f(t1, t2)(t - t1) + ... + f(t1, ..., tn + 1)(t - t1) ... (t - tn).

    То, что это интерполяционный полином, может быть доказано, например, методом математической индукции. Отметим, что полином в форме Ньютона напоминает ряд Тейлора, а остаточный член интерполяционного полинома — остаточный член этого ряда. Достоинством записи интерполянта в форме Ньютона является то, что для повышения порядка полинома нет необходимости в его полной перестройке; достаточно лишь добавить к уже полученному выражению еще одно или несколько слагаемых. С помощью разделенных разностей можно оценивать погрешность интерполяции. Читатели могут предложить способ контроля точности вычислений, основанный на использовании разделенных разностей.

    6.7. Многочлены Чебышёва и минимизация остаточного члена интерполяции

    Многочленом Чебышева первого рода называется функция Tn(t) = cos (n arccos t), где $$t \in \left[{- 1, 1}\right], n = 0, 1, \ldots $$

    Убедимся в том, что функция Tn(t) действительно является многочленом. При n = 0 и n = 1 имеем T0(t) = 1, T1(t) = t.

    Положив $$\theta = \arccos t,$$ получим $$T_{1}(t) = \cos \theta , T_{n}(t) = \cos n \theta,$$ $$T_{n - 1}(t) = \cos (n - 1)\theta , T_{n + 1}(t) = \cos (n + 1)\theta.$$ По формуле суммы косинусов $$\cos (n + 1)\theta + \cos (n - 1)\theta = 2\cos \theta \cos n\theta,$$ и справедливо рекуррентное соотношение Tn + 1(t) + Tn - 1(t) = 2T1(t)Tn(t), или Tn + 1(t) = 2t Tn(t) - Tn - 1(t). Отсюда следует вид записи полиномов Чебышева: T2 = 2t2 - 1, T3(t) = 4t3 - 3t, T4(t) = 8t4 - 8t2 + 1 и так далее. Функции Tn(t) являются многочленами степени n со старшим членом 2n - 1tn.

    Введем также нормированные многочлены Чебышева $$$ \bar {T_n} (t) = \frac{T_n (t)}{2^{n - 1}} $.$$

    Нули многочлена Чебышева находятся из очевидного уравнения Tn(t) = cos (n arccos t) = 0, откуда $$$ t_m = \cos \left({\frac{{2m - 1}}{n}\pi }\right), m = 1, 2, \ldots n, t \in [{- 1, 1}] $.$$ Для произвольного отрезка [a, b] нули полинома Чебышева получаются очевидным линейным преобразованием, выражения для них будут $$$ t_m = \frac{a + b}{2} + \frac{b - a}{2}\cos \left({\frac{2m - 1}{2n}\pi }\right), m = 1, 2, \ldots n $.$$ Легко отыскиваются также точки экстремумов полинома Чебышева, для них | Tn(t) | = 1 и на отрезке $$t \in [- 1, 1]$$ точки экстремумов есть $$$ t_m = \cos (\frac{m}{n}\pi ), m = 1, 2, \ldots n $.$$

    Нас интересует решение следующей задачи на минимакс: найти

    $$\min\limits_{\left\{t_n\right\}_{n = 0}^{N}}\left\{\max\limits_{t \in [- 1, 1] } \left|{\mathop \Pi\limits_{n = 0 }^{N}(t - t_n)}\right| \right\}$$

    чтобы путем выбора узлов сетки минимизировать остаточный член интерполяции. Эта задача была решена П.Л.Чебышевым.

    Теорема. (Чебышева (без доказательства)) Среди всех многочленов степени $$n \ge 1,$$ со старшим коэффициентом an равным единице, наименьшее уклонение от нуля, равное 21 - n, имеет нормированный полином Чебышева $$\bar {T_n} (t) = 2^{1 - n} T_n (t), t \in \left[{- 1, 1}\right].$$

    Это свойство полиномов Чебышева, наименьшее уклонение от нуля, можно сформулировать по - другому: для любого полинома Pn(t) = tn + an - 1tn - 1 + ... + a0, отличного от $$$ \bar {T_n} (t) $$$ справедливо $$2^{1 - n} = \max\limits_{\left[{- 1, 1}\right]} \left|{\bar {T_n} (t)}\right| < \max\limits_{\left[{- 1, 1}\right]} \left|{P_n (t)}\right|, t \in \left[{- 1, 1}\right].$$

    Если в качестве интерполяционных узлов выбрать нули полинома Чебышева, то произведение $${\mathop \Pi\limits_{j = 0}^{N + 1} (t - t_j)},$$ а также Rn(t) будут наименее уклоняющимися от нуля.

    6.8. Обусловленность задачи интерполяции. Постоянная Лебега

    В процессе вычислений значения интерполируемой функции известны с некоторой погрешностью. При работе на вычислительной машине ошибки округления неизбежны. Возникает вопрос о чувствительности интерполяционного полинома к ошибкам начальных данных (обусловленности задачи интерполяции ) и к ошибкам округления (вопрос вычислительной устойчивости). Интерполяционный полином — оператор, линейный по отношению к значениям интерполируемой функции. С учетом погрешности начальных данных полином в форме Лагранжа может быть записан следующим образом:

    $$L_N (t) = \sum\limits_{n = 0}^{N}{f_n}\varphi_n^{N} (t) + \sum\limits_{n = 0}^{N}{\delta f_n} \varphi_n^{N} (t),$$

    причем слагаемое

    $$\Delta_N (t, \delta f) = \sum\limits_{n = 0}^{N}{\delta f_n} \varphi_n^{N} (t)$$

    характеризует чувствительность к ошибкам начальных данных и ошибкам вычислений. Нас интересует оценка

    $$\max\limits_{t \in \left[{a, b}\right]} \left|{\Delta_N (t, \delta f)}\right| \le l_N \delta ; \delta = \max\limits_{t \in \left[{a, b}\right]} \left|{\delta f_n}\right|, l_N = \max\limits_{t \in [a, b]}\sum\limits_{n = 0}^{N} \left|\varphi_n^{N} (t)\right|,$$

    коэффициент lN называется постоянной Лебега.

    Введем в рассмотрение еще один объект. Пусть $$\sum {\left|{\varphi_i^{N} \left(x\right)}\right|}$$ - сумма модулей всех базисных функций. Обозначим ее $${L}\left(x\right) = \sum {\left|{l_i^{N} \left(x\right)}\right|}$$ - функция Лебега (сетки). Тогда константа Лебега $$l_N = \sup\limits_{x \in \left[{a, b}\right]}{L}\left(x\right).$$

    Так как функция Лебега зависит лишь от расположения узлов сетки, то и константа Лебега зависит лишь от введенной сетки. Обусловленность и устойчивость задачи интерполяции зависят от константы Лебега.

    Если рассматривать оператор интерполяции как оператор проекции (проектор), переводящий элемент одного пространства (пространства сеточных функций) в другое (пространство непрерывно дифференцируемых функций), то постоянная Лебега есть норма такого оператора проекции. Подробнее об этом в [6.7].

    Конечно, реальная погрешность при интерполяции будет заведомо меньше, чем приведенная выше оценка. Тем не менее, оценка является достижимой (это свойство нормы оператора). Наихудшим распределением погрешности будет такое распределение, когда погрешности максимальны и меняют знак от точки к точке. То, что при этом будет достижима приведенная выше оценка, следует из вида функции Лебега и каждой из базисных функций. Предлагаем читателям соответствующие построения провести самостоятельно.

    Приведем (без доказательства) примерные оценки роста постоянной Лебега в зависимости от числа узлов сетки. Константа Лебега растет примерно как $$l_{N} \sim 2^{N}$$ для равномерной сетки и $$l_{N} \sim ln (N)$$ для сетки с чебышевским набором узлов. Доказано, что рост константы Лебега для последней сетки асимптотически стремится к минимально возможному, и сетка с чебышевскими узлами близка к оптимальной для задач интерполяции.

    6.9. Интерполяция с кратными узлами

    Определение. Пусть в узлах сетки $$\left\{{t_n}\right\}_{n = 0}^{M}$$ заданы не только значения функции f(tn), но и значения ее производных f'(tn), f''(tn), ..., $$f^{(k_n - 1)}(t_n).$$ В этом случае узел tn называется кратным, а число kn, равное количеству заданных значений производных в n узле — кратностью узла.

    Доказывается теорема о существовании единственного полинома PN(t), удовлетворяющего условиям

    $$\begin{gather*} P_N (t_n) = f_n, P^{\prime}_N (t_n) = f^{\prime}_n, \ldots , P_N^{(k_n - 1)} (t_n) = f_n^{k_n - 1}, \\ N = k_0 + k_1 + \ldots + k_M - 1. \end{gather*} $$

    Такой полином называется полиномом с кратными узлами. Отметим два частных случая.

  • в точке t = t0 заданы f0, f'0, ..., f0(N) (M = 0, k0 = N + 1).

    Тогда многочлен PN(t), удовлетворяющий этим условиям, может быть записан как

    $$$ P_N (t) = \sum\limits_{i = 0}^{N}{f^{(i)} (t_0 )}\frac{{(t - t_0)}^i}{i!}. $$$

    Это — ряд Тейлора, который является интерполянтом с кратным узлом в точке t = t0 кратности N + 1.

  • Пусть на концах отрезка [t0, t1] заданы значения f0, f1, f'0, f'1 (M = 1, k0 = 2, k1 = 2, N = 3). Тогда P3(t0) = f0, P'3(t0) = f'0, P3(t1) = f1, P'3(t1) = f'1, а интерполянт имеет вид

    $$\begin{gather*} P_3 (t) = f_0 \frac{{(t_1 - t)^2 \left[{2(t - t_0 ) + \tau }\right]}}{{\tau ^3 }} + {f^{\prime}}_0 \frac{{(t_1 - t)^2 (t - t_0 )}}{{\tau ^2 }} + \\ + f_1 \frac{{(t - t_0 )^2 \left[{2(t_1 - t) + \tau }\right]}}{{\tau ^3 }} + f^{\prime}_1 \frac{{(t - t_0)^2 (t - t_1 )}}{{\tau ^2 }}, \end{gather*}$$

    здесь $$\tau = t_{1} - t_{0}.$$

    Такой многочлен называется кубическим интерполяционным многочленом Эрмита.

  • Теорема (без доказательства). Пусть f(t) имеет N + 1 ограниченную производную на отрезке [a, b]. Тогда погрешность интерполяционного многочлена Эрмита степени N выражается формулой

    $$$ R_N (t) = \frac{{f^{(N + 1)} (\xi )}}{{(N + 1)!}}(t - t_0 )^{k_0 } (t - t_1)^{k_1 } \ldots (t - t_M)^{k_M}, $$$

    где tnинтерполяционные узлы, n = 0, ..., M, ki - кратность i узла, $$\xi \in \left[{a, b}\right], N = k_0 + k_1 + \ldots + k_M - 1.$$

    Поставим теперь следующую задачу: построить кусочно - кубическую интерполирующую функцию, непрерывную на отрезке [a, b] со своими двумя первыми производными.

    Обозначим такую функцию S(t) ; значения производных в узлах tn обозначим mn = S'(tn). Если задать в узлах tn, tn + 1 значение функции и ее первой производной, то получим эрмитов кусочно - кубический полином

    $$\begin{gather*} S(t) = \frac{{(t_{n + 1} - t)^2 \left[{2(t - t_n) + \tau }\right]}}{{\tau ^3 }}f_n + \frac{{(t - t_n)^2 \left[{2(t_{n + 1} - t) + \tau }\right]}}{{\tau ^3 }}f_{n + 1} + \\ + \frac{{(t_{n + 1} - t)^2 (t - t_n)}}{{\tau ^2 }}m_n + \frac{{(t - t_n)^2 (t - t_{n + 1})}} {{\tau ^2 }}m_{n + 1}, \end{gather*}$$

    или

    $$S(z) = f_{n}(1 - z)^{2}(1 + 2z) + f_{n + 1}z^{2}(3 - 2z) + m_{n}\tau _{n}z(1 - \tau )^{2} - m_{n + 1}\tau _{n}z^{2}(1 - z),$$

    где $$\tau _{n} = t_{n + 1} - t_{n}, z = (t - t_{n})/\tau _{n}, m_{n} = S'(t_{n}).$$

    6.9.1. Замечание о тригонометрической интерполяции

    Для периодической функции f(t) с периодом T естественно строить приближение с использованием функций $$$ \varphi_n(t) = a_n \cos {\frac{\pi nt}{T}} + b_n \sin{\frac{\pi nt}{T}} $$$ Тригонометрическая интерполяция состоит в замене f(t) тригонометрическим многочленом $$$ F_N (t) = \sum\limits_{n = 0}^{N}{\varphi_n (t) = a_0 + \sum\limits_{n = 1}^{N}{(a_n \cos \frac{{\pi nt}}{T} + b_n \sin \frac{\pi nt}{T})}} $,$$ коэффициенты которого находятся при решении СЛАУ FN(tk) = f(tk), k = 1, ..., 2N + 1, t2N + 1 - t0 = T, здесь $$\left\{{t_k}\right\}_{k = 0}^{2N + 1}$$ — последовательность узлов интерполяции.

    6.10. Кусочно - многочленная глобальная интерполяция (сплайны)

    Определение. Пусть на отрезке [a, b] задана система узловых точек $$\{t_n\}_{n = 0}^{N - 1}.$$ Сплайном Sm(t) называется определенная на [a, b] функция, имеющая l непрерывных производных и являющаяся на каждом интервале (tn - 1, tn) многочленом степени m.

    Определение. Дефектом сплайна называется разность d = m - l между степенью сплайна и показателем его гладкости l.

    Замечание. Для сплайнов также используется обозначение Sm, d(t). Если сплайн строится так, чтобы выполнялись условия Sm(tn) = f(tn), где f(t) — интерполируемая функция, то он называется интерполяционным сплайном. В соответствии с определением, кусочно - линейная функция является интерполяционным сплайном первой степени дефекта 1, кусочно - квадратичная функция с первой непрерывной производной — интерполяционным сплайном второй степени дефекта 1. Наиболее известным в приложениях является интерполяционный кубический сплайн дефекта 1 (естественный сплайн ), который будем обозначать S(t).

    Определение. Кубическим сплайном дефекта 1, интерполирующим на отрезке [a, b] заданную функцию f(t), называется функция S(t), удовлетворяющая следующим условиям:

  • S(tn) = f(tn) — условие интерполяции в узлах сетки $$\left\{{t_n}\right\}_{n = 0}^{N - 1}.$$
  • $$S(t) \in C^2 [a, b],$$ т.е. является непрерывной вместе с двумя первыми производными.
  • На каждом отрезке [tn, tn + 1], S(t) является кубическим многочленом; n = 0, ..., N - 1.
  • На краях отрезка [a, b] заданы краевые условия. Наиболее часто употребляются следующие:
  • S'(a) = f'(a), S'(b) = f'(b) ;
  • S''(a) = f''(a), S''(b) = f''(b) ; часто полагают S''(a) = S''(b) = 0 ;
  • S(a) = S(b), S'(a) = S'(b) ; эти условия называются периодическими, т.е. интерполируемая функция является периодической с периодом b - a.
  • Покажем, что эта задача имеет единственное решение.

    Теорема. Интерполяционный кубический сплайн S(t), удовлетворяющий условиям 1 — 3 и одному из краевых условий 4, существует и единственен.

    Доказательство.

    Пусть S(z) — эрмитов кубический многочлен, который на каждом отрезке [ tn, tn + 1 ], n = 0, …, N - 1, представлен как

    $$S(z) = f_n (1 - z)^2 (1 + 2z) + f_{n + 1} \cdot z^2 (3 - 2z) + m_n \tau_n z(1 - z)^2 - m_{n + 1} \tau_n z^2 (1 - z),$$

    где $$\tau _{n} = t_{n + 1} - t_{n},$$ $$z = (t - t_{n})/\tau _{n}, m_{n} = S'(t_{n}).$$ Тогда

    $$\begin{gather*} S^{\prime\prime}(t) = \frac{{(f_{n + 1} - f_n)(6 - 12z)}}{{\tau_n^2 }} + m_n \frac{{6z - 4}} {{\tau_n}} + m_{n + 1} \frac{{6z - 2}}{{\tau_n}}, \\ S^{\prime\prime}(t_n + 0) = 6\frac{{f_{n + 1} - f_n}}{{\tau_n^2 }} - \frac{{4m_n}}{{\tau_n}} - \frac{{2m_{n + 1}}}{{\tau_n}}, \\ S^{\prime\prime}(t_n - 0) = - 6\frac{{f_n - f_{n - 1}}}{{\tau_{n - 1}^2 }} + \frac{{2m_{n - 1}}} {{\tau_{n - 1}}} + m_{n + 1} \frac{{4m_n}}{{\tau_{n - 1}}}. \end{gather*} $$

    Условие непрерывности второй производной S''(tn + 0) = S''(tn - 0) будет

    $$\begin{gather*} r_n m_{n - 1} + 2m_n + s_n m_{n + 1} = c_n , \\ c_n = 3\left({s_n \frac{{f_{n + 1} - f_n}}{{\tau_n}} + r_n \frac{{f_n - f_{n - 1}}}{{\tau_{n - 1}}}}\right), s_n = \frac{{\tau_{n - 1}}}{{\tau_{n - 1} + \tau_n}}, r_n = 1 - s_n, \\ n = 1, \ldots , N - 1 \end{gather*} $$

    После добавления краевых условий получаем систему из N + 1 уравнение с N + 1 неизвестным mn. Для краевых условий первого типа (заданы первые производные) система выглядит как

    m0 = f'0, 
    rn mn - 1 + 2mn + snmn + 1 = cn , 
    mn = f'n

    Для условий второго типа (заданы вторые производные)

    $$\begin{gather*} 2m_0 + m_1 = 3\frac{{f_1 - f_0 }}{{\tau_0 }} - \frac{{\tau_0 }}{2}f^{\prime\prime}_0, \\ r_n m_{n - 1} + 2m_n + s_nm_{n + 1} = c_n , \\ m_{N - 1} + 2m_N = 3\frac{{f_N - f_{N - 1}}}{{\tau_{N - 1}}} + \frac{{\tau_{N - 1}}}{2}f^{\prime\prime}_N \end{gather*}$$

    Аналогично получается СЛАУ для третьего типа краевых условий.

    Во всех случаях матрицы СЛАУ оказываются трехдиагональными симметричными, со строгим диагональным преобладанием и, как показывается, положительно определенными, а, следовательно, и неособенными. Следовательно, решение СЛАУ существует и единственно. Отсюда следует существование и единственность решения задачи о построении кубического сплайна.

    Приведем еще одно доказательство этой же теоремы.

    Доказательство.

    Рассмотрим неравномерную сетку: $$t_{n} - t_{n - 1} = \tau _{n - 1},$$ $$t_{n + 1} - t_{n} = \tau _{n}.$$ В узлах сетки определены значения функции: fn - 1, fn , fn + 1. Пусть mn — значение второй производной в точке tn (пока неизвестное!). На отрезке [tn, tn + 1] для второй производной кусочно - кубического сплайна имеем

    $$$ {S^{\prime\prime}_{tt} = \frac {1}{\tau_n}(m_n (t_{n + 1} - t) + m_{n + 1} (t - t_n)).} $$$

    Так как сплайн — полином третьей степени, то его вторая производная — линейная функция. Интегрируем (6.2) по t, получаем (на отрезке [ tn, tn + 1] )

    $$$ S^{\prime}_{t} = \frac {1}{\tau_n} \left(m_{n + 1}\frac{{(t_{n + 1} - t)}^2}{2} - m_n \frac{{(t - t_n)}^2}{2}\right) + A_n. $$$

    Интегрируя последнее соотношение еще раз, получаем:

    $$\begin{gather*} S(t) = \frac {1}{6\tau_n} (m_n (t_{n + 1} - t)^3 + m_{n + 1} (t - t_n)^3) + \\ + \alpha_n (t_{n + 1} - t) + \beta_{n + 1} (t - t_n ). \end{gather*}$$

    An — константа интегрирования. После второго интегрирования положим $$A_n t + B_n = (\beta_n - \alpha_n)t + \alpha_n t_{n + 1} - \beta_n t_n ,$$ т.е. вместо двух констант An, Bn введем две новые константы, более удобные для дальнейших выкладок.

    Из условий S(tn) = fn, S(tn + 1) = fn + 1, получаем:

    $$\begin{gather*} f_n = \frac{{m_n \tau_n^2 }}{6} + \alpha {}_n\tau_n \Rightarrow \alpha_n = \frac{{f_n}}{{\tau_n}} - \frac{{m_n\tau_n}}{6}. \\ f_{n + 1} = \frac{{m_{n + 1} \tau_n^2 }}{6} + \beta {}_n\tau_n \Rightarrow \beta_n = \frac{{f_{n + 1}}}{{\tau_n}} - \frac{{m_{n + 1} \tau_n}}{6}. \\ A_n = \frac{{f_{n + 1} - f_n}}{{\tau_n}} - \frac{{(m_{n + 1} - m_n)\tau_n}}{6}. \end{gather*}$$

    Приравняем первые производные в tn справа и слева S't(tn + 0) = S't(tn - 0), получим систему уравнений для определения коэффициентов сплайна:

    $$$ \frac{m_n \tau_{n - 1}}{2} - \frac{m_{n - 1} \tau_{n - 1}}{2} + \frac{f_n - f_{n - 1}}{\tau_{n - 1}} - \frac{(m_n - m_{n - 1})\tau_{n - 1}}{6} = \\ {= \frac{m_{n + 1} \tau_n}{2} - \frac{m_n \tau_n}{2} + \frac{f_{n + 1} - f_n}{\tau_n} - \frac{(m_{n + 1} - m_n)\tau_n}{6}, } $$$

    которая дополняется соответствующими граничными условиями. В случае свободного сплайна m0 = mN = 0.

    Систему для определения коэффициентов, называемых моментами кубического сплайна, можно записать в матричной форме

    $$\mathbf{AM} = \mathbf{F},$$

    где $$\mathbf{A}$$ — квадратная матрица:

    $$$ \mathbf{A} = \left( \begin{array}{cccccc} {\frac {\tau_1 + \tau_2}{3}} {\frac {\tau_2}{6}} 0 \ldots 0 0 \\ {\frac{\tau_2}{6}} {\frac {\tau_2 + \tau_3}{3}} {\frac{\tau_3}{6}} \ldots 0 0 \\ 0 {\frac{\tau_3}{6}} {\frac {\tau_3 + \tau_4}{3}} \ldots 0 0 \\ \ldots \ldots \ldots \ldots \ldots \ldots \\ 0 0 0 \ldots {\frac{\tau_{N - 1}}{6}} {\frac{\tau_N + \tau_{N - 1}}{3}} \\ \end{array} \right) $$$

    $$\mathbf{M}$$ и $$\mathbf{F}$$ — векторы - столбцы:

    $$$ {\mathbf{M}} = (m_1, m_2, \ldots , m_{N - 1})^T , \\ {\mathbf{F}} = {\left(\frac {f_2 - f_1}{\tau_1} - \frac{f_1 - f_0}{\tau_0}, \frac {f_3 - f_2}{\tau_2} - \frac{f_2 - f_1}{\tau_1}, \ldots , \frac {f_N - f_{N - 1}}{\tau_N} - \frac{f_{N - 1} - f_{N - 2}}{\tau_{N - 1}}\right)}^T. $$$

    Матрица $$\mathbf{A}$$ симметрична, имеет свойство диагонального преобладания и, как можно показать, положительно определена, а следовательно, неособенная. Значит, решение рассматриваемой СЛАУ существует и единственно. Следовательно, и задача о построении кубического сплайна имеет единственное решение. Для других типов краевых условий доказательство проводится аналогично. Метод решения такой СЛАУ, который будет рассмотрен в лекции 10 — прогонка.

    Теорема (без доказательства.) Для функции $$f(t) \in C^4 [a, b]$$ и интерполирующего ее сплайна S (t), построенного на сетке $$\{t_n\}_{n = 0}^{N},$$ имеют место следующие неравенства:

    $$\begin{gather*} \left\|{f(t) - S(t)}\right\|_{[a, b]} \le M_4 \tau ^4, \\ \left\|{f^{\prime}(t) - S^{\prime}(t)}\right\|_{[a, b]} \le M_4 \tau ^3, \\ \left\|{f^{\prime\prime}(t) - S^{\prime\prime}(t)}\right\|_{[a, b]} \le M_4 \tau ^2, \end{gather*} $$

    где M4 = || f(4)(t) ||[a, b], $$\tau = \max\limits_n (t_{n + 1} - t_n).$$

    Отсюда следует, что при $$\tau\rightarrow 0$$ последовательность функций S(k)(t), i = 0, 1, 2 (кубический сплайн и первые две его производные) сходится, соответственно, к f(k)(t).

    Теорема (экстремальное свойство кубических сплайнов (без доказательства.) Пусть сплайн S(t) интерполирует функцию f(t) на системе узлов

    $$\left\{{t_n}\right\}_{n = 0}^{N}; t_0 = a, t_N = b.$$

    Тогда S(t) с краевыми условиями S''(a) = S''(b) = 0 доставляет минимум функционалу

    $$\int\limits_{a}^{b}{[F^{\prime\prime}(t)]^2 }dt$$

    среди всех функций $$F(t) \in C^2_2 [a, b],$$ т.е. функций, имеющих интегрируемые с квадратом вторые производные $$(\int\limits_{a}^{b}{{[F^{\prime\prime}(t)]}^2 dt})$$ сходится на отрезке [a, b] ) и интерполирующих f(t) на отрезке [a, b].

    Локальный сплайн. Локальная форма сплайн - интерполяции предложена В. С. Рябеньким [6.9], [6.10]. Рассмотрим неравномерную сетку: tn - tn - 1 = hn - 1, tn + 1 - tn = hn. В узлах сетки определены значения функции: fn - 1, fn , fn + 1. Не вдаваясь в детали, приведем важные для практического использования формулы в случае постоянного шага сетки h = const . Построим интерполяционный полином второго порядка P2(x) в форме Ньютона (d - fn)/h:

    tn-1 fn-1 $$$ \frac{f_n - f_{n - 1}}{h} $$$

    $$$ \frac{f_{n + 1} - f_n}{h} $$$

    $$$ \frac{f_{n - 1} - 2f_n + f_{n + 1}}{h^2} $$$
    tn fn
    tn+1 fn+1
    $$\begin{gather*} P_2 (t, f_n) = f_{n - 1} + \frac{{f_n - f_{n - 1}}}{h} (t - t_{n - 1}) + \\ + \frac{f_{n - 1} - 2f_n + f_{n + 1}}{h^2 } (t - t_{n - 1})(t - t_n), \end{gather*}$$

    Этот полином приближает f на отрезке [ tn - 1, tn + 1 ] с точностью до o(h2). Рассмотрим теперь полином

    $$\begin{gather*} Q_5 (t, f_n) = P_2 (t, f_n) + \frac{h^3}{2} \left\{{\frac{f_{n + 2} - 3f_{n + 1} + 3f_n - f_{n - 1}}{h^3} \times }\right. \\ \left. {\times \left({\frac{t - t_n}{h}}\right)^3 \left({\frac{t - t_{n + 1}}{h}}\right)\left({3 - \frac{2(t - t_n)}{h}}\right)}\right\}, \end{gather*}$$

    представляющий собой аппроксимацию функции f на отрезке [tn - 1, tn + 1] с непрерывными первой и второй производными. В [6.1] доказано, что выражение (6.4) аппроксимирует $$f_x^{(m)}$$ с порядком o(h3 - m) во всех точках отрезка. Так как коэффициенты сплайна зависят от значений функции лишь в 4-х соседних точках и для определения коэффициентов (6.4) не требуется решать систему линейных уравнений, такая кусочно - гладкая интерполяция называется локальным сплайном.

    Замечание. Q5(t, fn) уже не обладает экстремальным свойством.

    6.11. B - сплайны

    Сплайны с локальным носителем. ( B - сплайны ). В последнее время в вычислительной практике широкое распространение получили B - сплайны (от английского слова bell — колокол), сосредоточенные на конечном носителе. Они используются как для интерполяции функций, так и в качестве базисных функций при построении методов типа конечных элементов.

    Для подробного ознакомления с приложениями B - сплайнов и B - сплайнами произвольной степени рекомендуется обратиться к данной лекции ограничимся наиболее распространенными случаями B - сплайнов порядка 2 и 3, см. также [6.11].

    Определение. B - сплайном, или базисным сплайном степени N - 1 дефекта 1 относительно узлов $$\left\{{t_i}\right\}_{i = n}^{n + N}$$ называется функция

    $$\begin{gather*} B_{N - 1, n} (t) = B_{N - 1}(t_n, t_{n + 1}, \ldots , t_{n + N}, t) = N \sum\limits_{i = n}^{n + N}\frac{{\left({t_i - t}\right)}^{N - 1}_{\max}}{\mathop{\Pi}\limits^{n + 1}_{\substack{ j = n \\ j \ne i}} (t_i - t_j)} \\ (t_i - t)^{N - 1}_{\max} = \left\{ \begin{array}{ll} (t_{i} - t)^{N - 1}, t \le t_i, \\ 0, t > t_i, \\ \end{array} \right. \end{gather*}$$

    Пусть $$t_{n + i} = t_{n} + i\tau ,$$ т.е. рассматривается случай равномерной сетки.

    Рассмотрим несколько частных случаев В - сплайнов.

  • N = 2. В этом случае сплайн строится наиболее просто. $$\begin{gather*} B_{1, n} (t) = B_1(t_n, t_{n + 1}, t_{n + 2}, t) = 2\left[\frac{{(t_n - t)_{\max }}}{{(t_n - t_{n + 1})(t_n - t_{n + 2})}} +\right. \\ \left. \frac{{(t_{n + 1} - t)_{\max }}}{{(t_{n + 1} - t_n)(t_{n + 1} - t_{n + 2})}} + \frac{{(t_{n + 2} - t)_{\max }}}{{(t_{n + 2} - t_n)(t_{n + 2} - t_{n + 1})}}\right] = \\ = \frac{1}{{\tau ^2 }}\left[(t_n - t)_{\max } - 2(t_{n + 1} - t)_{\max } + (t_{n + 2} - t)_{\max }\right], \end{gather*}$$

    или

    $$$ B(t) = \left\{ \begin{array}{ll} \frac {1}{\tau^2}(t_n - t - 2t_{n + 1} + 2t + t_{n + 2} - t) = 0, t \le t_n \\ \frac {1}{\tau^2}(0 - 2t_{n + 1} + 2t + t_{n + 2} - t) = \frac {1}{\tau} + \frac {t - t_{N + 1}}{\tau^2}, t_n \le t \le t_{n + 1} \\ \frac {1}{\tau^2}(0 - 0 + t_{n + 2} - t) = \frac {1}{\tau} - \frac {t - t_{N + 1}}{\tau^2}, t_{n + 1} \le t \le t_{n + 2} \\ 0, t \ge t_{n + 2} \\ \end{array} \right. $$$

    Это функция "крышка" или "крышечка". Она часто используется в качестве базисной функции в методах конечных элементов.

    Рассмотрим случай B - сплайна 2 - го порядка, задаваемого формулой

    $$$ S_k (x) = \left\{ \begin{array}{lll} {x^2 ;} {x = \frac{t - t_{k - 2}}{t_{k - 1} - t_{k - 2}}, } {t \in [t_{k - 2}, t_{k - 1} ];} \\ {1 + 2x - x^2 ;} {x = \frac{t - t_{k - 1}} {t_k - t_{k - 1}}, } {t \in [t_{k - 1}, t_k ];} \\ {2 - x^2 ;} {x = \frac{t - t_k}{t_{k + 1} - t_k}, } {t \in [t_k , t_{k + 1} ];} \\ {(1 - x)^2 ;} {x = \frac{t - t_{k + 1}}{t_{k + 2} - t_{k + 1}}, } {t \in [t_{k + 1}, t_{k + 2} ].} \\ \end{array} \right. $$$

    При t < tk - 2, t > tk - 2, $$S_k (x) \equiv 0.$$ Построенный сплайн обладает следующими свойствами:

  • a) S't (tk - 2) = S't(tk + 2) = 0 ;
  • b) S(tk - 1) = S(tk + 1) = 1 ;
  • c) S(tk - 2) = S(tk + 2) = 0.
  • При интерполяции функций можно поступить таким способом. Заметим, что для интерполяции с помощью сплайна необходимо потребовать выполнения условия

    bi - 1Si - 1 + biSi + bi + 1Si + 1= fi,

    где b — коэффициенты интерполяции, SB - сплайн, индекс указывает на точку носителя, в которой сплайн достигает своего максимума. Система таких соотношений, естественно, дополняется граничными условиями. Известно [6.5], что получившаяся система для определения коэффициентов разложения будет иметь трехдиагональную матрицу с диагональным преобладанием при выполнении ограничения на длины соседних шагов: они должны различаться не более чем в $$$ \frac{1 + \sqrt{13}}{2} $$$ раза.

  • N = 4 (кубический B - сплайн ) имеет вид $$\begin{gather*} B_{3, n}(t) = \frac{1}{{6\tau ^4 }}\left[(t_n - t)_{\max }^3 - 4(t_{n + 1} - t)_{\max }^3 + 6(t_{n + 2} - t)_{\max }^3 -\right. \\ \left. - 4(t_{n + 3} - t)_{\max }^3 + (t_{n + 4} - t)_{\max }^3\right], \end{gather*}$$

    или, после несложных упрощений:

    $$$ \left\{ \begin{array}{ll} 0, {t \ge t_n, } \\ {\frac {1}{6\tau^4}(t - t_n)^3, } {t_n{\le} t \le t_{n + 1}}, \\ {\frac {1}{6\tau} + \frac {1}{2\tau^2}(t - t_{n + 1}) + \frac{1}{2\tau^3}(t - t_{n + 1})^2 - \frac {1}{2\tau^4}(t - t_{n + 1})^3, } {t_{n + 1}{\le} t {\le} t_{n + 2}, } \\ {\frac{1}{6\tau} + \frac{1}{2\tau^2}(t_{n + 3} - t) + \frac{1}{2\tau^3}(t_{n + 3} - t)^2 - \frac{1}{2\tau^4}(t_{n + 3} - t)^3, } {t_{n + 2}{\le} t {\le} t_{n + 3}, } \\ {\frac{1}{6\tau^4}(t_{n + 4} - t)^3, } {t_{n + 3}{\le} t {\le} t_{n + 4}} \\ {0, } {t \ge t_{n + 4}} \\ \end{array} \right. $$$

    Базисные сплайны заданной степени являются линейно независимыми функциями и образуют базис в функциональных пространствах, что можно использовать для представления с их помощью других функций этих же пространств. Любая, например, кусочно - постоянная функция на отрезке, составленном из равных интервалов, может быть единственным образом представлена как линейная комбинация В - сплайнов нулевой степени, любая кусочно - линейная функция — В - сплайнов первой степени и т.д. Базисные сплайны играют существенную роль при построении численных методов решения задач математической физики, например, метода конечных элементов в теории приближения функций, при решении задач компьютерной графики.

    Для последнего класса задач также используются функции Бернштейна:

    $$\begin{gather*} B_n^{N} (t) = \frac{N!}{n!(N - n)!}\frac{{(b - t)}^{N - n}{(t - a)}^{n}}{{(b - a)}^{N}}, \\ n = 0, \ldots , N, t \in [a, b]. \end{gather*}$$

    Функции Бернштейна иногда записывают в форме рекуррентного соотношения:

    $$\begin{gather*} B_{- 1}^{N} (t) = 0, B_0^0 (t) = 1, B_i^{N} (t) = \frac{{(b - t)B_i^{N - 1} (t) + (t - a)B_{i - 1}^{N - 1}(t)}}{{b - a}}, \\ i = 0, \ldots , n, B_{N + 1}^{N} (t) = 0. \end{gather*}$$

    Такие рекуррентные последовательности применяются с целью уменьшения ошибок округления.

    Функции Бернштейна являются базисными для построения кривых Безье, активно использующихся в компьютерной графике и техническом дизайне, появившихся в результате работ Безье и де Кастильо над формами автомобилей фирм Рено и Ситроен. Подробнее о функциях Бернштейна в [6.12].

  • 6.12. Интерполяция функций двух переменных

    Пусть сетка образована пересечением прямых x = xn, n = 0, ..., N и y = ym, m = 0, ..., M, fnm = f(xn, ym) — значение функции в узле { xn, ym }. Воспользуемся, например, аппаратом кусочно - многочленной интерполяции. Для этого сначала реализуется кусочно - многочленная интерполяция заданной степени по x на каждой прямой y = ym. Затем при каждом значении x = xn реализуется кусочно - многочленная интерполяция по y с учетом значений функции, полученных на первом шаге. Так, в случае кусочно - линейной интерполяции по обоим переменным этот метод приводит (для случая прямоугольника $$x \in [x_n, x_{n + 1}], y \in [y_n, y_{n + 1}]$$ ) к интерполяционному многочлену

    $$\begin{gather*} F(x, y) = f_{nm} \frac{(x - x_{n + 1})(y - y_{m + 1})}{(x_n - x_{n + 1})(y_m - y_{m + 1})} + f_{n + 1, m} \frac{(x - x_n)(y - y_{m + 1})}{(x_{n + 1} - x_n)(y_m - y_{m + 1})} + \\ + f_{n + 1, m + 1} \frac{(x - x_n)(y - y_m)}{(x_{n + 1} - x_n)(y_{m + 1} - y_m)} + f_{n, m + 1} \frac{(x - x_{n + 1})(y - y_m)}{(x_n - x_{n + 1})(y_{m + 1} - y_m)}. \end{gather*}$$

    Сходным образом можно провести последовательную лагранжеву интерполяцию, но при каждом фиксированном значении m, затем — при каждом фиксированном значении n с учетом первого шага интерполяции. Общая формула такого интерполянта аналогична одномерной формуле для интерполяционного полинома в форме Лагранжа:

    $$\begin{gather*} L_{NM} (x, y) = \sum\limits_{n = 0}^{N}{\sum\limits_{m = 0}^{M}{f_{nm}\prod\limits_{\substack{ i = 0 \\ i \ne n}} ^{N}{\prod\limits_{\substack{ j = 0 \\ j \ne m}}^{M}{\frac{(x - x_i)(y - y_j)}{(x_n - x_i)(y_m - y_j)}}} }}. \end{gather*}$$

    Если fA, fB, fD — значение функции f(x, y) в вершинах A, B, D, некоторого треугольника на треугольной расчетной сетке, то вычислить приближенное значение функции внутри этого треугольника можно с помощью билинейной функции $$f(x, y) \approx F(x, y) = ax + by + c,$$ находя коэффициенты a, b, c из условий

    axA + byA + c = fA, 
    axB + byB + c = fB, 
    axD + byD + c = fD,

    где {xA, yA}, {xB, yB}, {xD, yD} - координаты вершин A, B, D. Погрешность такой интерполяции для функции f(x, y) с непрерывными вторыми производными будет O(h2), где h — длина наибольшей стороны треугольника АВD.

    6.13. Задачи

  • Выписать интерполяционные полиномы первой и второй степени в форме Лагранжа и Ньютона.

    Решение. Интерполяционные полиномы первой и второй степени в форме Лагранжа:

    $$\begin{multline*} L_1 (t) = f(t_0 )\frac{{t - t_1 }}{{t_0 - t_1 }} + f(t_1 )\frac{{t - t_0 }}{{t_1 - t_0 }}, \\ L_2 (t) = f(t_0 )\frac{{(t - t_1 )(t - t_2 )}}{{(t_0 - t_1 )(t_0 - t_2 )}} + f(t_1 )\frac{{(t - t_0 )(t - t_2 )}}{{(t_1 - t_0 )(t_1 - t_2 )}} + \\ + f(t_2 )\frac{{(t - t_0 )(t - t_2 )}}{{(t_2 - t_0 )(t_2 - t_1 )}}, \end{multline*} $$

    где t0, t1, t2 — узлы интерполяции, f(t1), f(t2), f(t3) - значения интерполируемой функции.

    Интерполяционные полиномы первой и второй степени в форме Ньютона:

    $$\begin{gather*} N_1 (t) = f(t_1 ) + \frac{{f(t_2 ) - f(t_1 )}}{{t_2 - t_1 }}(t - t_1 ), \\ N_2 (t) = f(t_1 ) + \frac{{f(t_2 ) - f(t_1 )}}{{t_2 - t_1 }}(t - t_1 ) + \\ \frac{1}{{t_3 - t_1 }}\left[{\frac{{f(t_3 ) - f(t_2 )}}{{t_3 - t_2 }} - \frac{{f(t_2 ) - f(t_1 )}} {{t_2 - t_1 }}}\right](t - t_1 )(t - t_2 ). \end{gather*}$$
  • Сравните количество арифметических действий, требуемое для вычисления интерполяционного полинома, записанного в двух формах:
    Ln(x) = a0 + a1t + ... + antn, 
    Ln(x) = a0 + t(a1 + t(a2 + t(... (an - 1 + cnt) ...))) (схема Горнера)

    Решение. В первом случае для вычисления значения в одной точке требуется $$$ \frac{n}{2}(n + 1) $$$ умножений и n сложений. Во втором — n умножений и n сложений.

  • Задана система узлов интерполяции:

    $$$ t_i = t_0 + \frac{{t_n - t_0 }}{{n - 1}}(i - 1), i = 1, \ldots , n. $$$

    Какова погрешность интерполяции, если n = 3?

    Решение. Сделаем замену переменных в выражении для остаточного члена

    $$$ R_3 (t) = (t - t_0)(t - \frac{t_0 + t_n}{2})(x - t_n), t = \frac{t_0 + t_n}{2} + \frac{t_n - t_0 }{2}z, z \in [- 1;1]. $$$

    Получим

    $$$ R_3 (t) = \frac{{(t_n - t_0 )}^3 }{2}(z^3 - z). $$$

    Полученный кубический полином имеет на [- 1;1] экстремумы в точках

    $$$ z_{1, 2} = \pm \frac{1}{\sqrt 3 }. $$$

    В таком случае $$$ \max \left|{R_3 (t)}\right| = \left\|{R_3 (t)}\right\| = \frac{{(t_n - t_0 )}^3 }{12\sqrt 3 } $.$$

  • Предложите простой рекуррентный алгоритм вычисления коэффициентов $$a_{i} (i = 0 \div N - 1)$$ интерполяционного полинома
    Pn(t) = a0 + a1(t - t0 ) + ... + an(t - t0) ... (t - tN - 1).

    Решение. Для коэффициентов полинома получаем систему линейных уравнений с треугольной матрицей:

    $$\left. \begin{array}{c} a_0 = f_0, \\ a_0 + a_1 (t_1 - t_0 ) = f_1, \\ a_0 + a_1 (t_2 - t_0 ) + a_2 (t_2 - t_0 )(t_2 - t_1 ) = f_2, \\ \cdots \\ a_0 + a_1(t_N - t_0 ) + \ldots + a_N (t_N - t_0 ) \ldots (t_N - t_{N - 1}) = f_N, \end{array} \right.$$

    которая легко решается от первого уравнения к последнему:

    $$$ a_0 = f_0, a_1 = \frac{{f_1 - f_0 }}{{t_1 - t_0 }}, a = \frac{1}{{t_2 - t_1 }}\left({\frac{{f_2 - f_0 }}{{t_2 - t_0 }} + \frac{{f_1 - f_0 }}{{t_1 - t_0 }}}\right), \ldots $$$
  • Оценить погрешность приближения функции ln t'(t' = 1, 23) при помощи интерполяционного полинома второй степени по точкам 1, 1; 1, 2; 1, 3.

    Решение. Остаточный член интерполяции будет

    $$$ R_N (t) = \frac{{f^{(N + 1)} (\xi )}}{{(N + 1)!}}(t - t_0 ) \ldots (t - t_N); $$$

    при N = 2 имеем:

    $$\begin{gather*} \varepsilon = \left|{f(x) - L_2 (t)}\right| \le \frac{{\max\limits_{[1, 1;1, 3]} \left|{f^{(3)} (t)}\right|}}{6}\left|{(t - t_0 )(t - t_1 )(t - t_2 )}\right|, \\ \max\limits_{[1, 3;1, 2]} \left|{f^{(3)} (t)}\right| = \frac{2}{{1 \cdot 1, 3}} \approx 1, 5. \end{gather*}$$

    В таком случае

    $$\begin{gather*} \varepsilon = \left|{\ln (t^{\prime}) - L_2 (t)}\right| \le \frac{{1, 5}}{6}\left|{(1, 23 - 1, 1)(1, 23 - 1, 2)(1, 23 - 1, 3)}\right| \approx \\ \approx 6, 9 \cdot 10^{- 5}. \end{gather*}$$
  • Показать, что погрешность интерполяции может быть выражена следующим образом:
    f(t) - LN(t) = (t - t0) ... (t - tN)f(t, t0, ..., tN),

    где f(t, t0, ..., tN)разделенная разность порядка N.

    Решение. Из выражения для разделенной разности порядка N + 1

    $$\begin{gather*} f(t, t_0, \ldots , t_N) = \frac{{f(t)}}{{(t - t_0 ) \ldots (t - t_N)}} + \frac{{f(t_0 )}}{{(t_0 - t)(t_N - t_0 ) \ldots (t_0 - t_N)}} + \ldots + \\ + \frac{{f(t_N)}}{{(t_N - t)(t_N - t_0 ) \ldots (t_N - t_{N - 1})}}, \end{gather*}$$

    получим выражение для f(t):

    $$\begin{gather*} f(t) = f(t_0 )\frac{{(t - t_1 ) \ldots (t - t_N)}}{{(t_0 - t_1 ) \ldots (t_0 - t_N)}} + f(t_N)\frac{{(t - t_0) \ldots (t - t_{N - 1})}}{{(t_N - t_0 ) \ldots (t_N - t_{N - 1})}} + \\ + (t - t_0 ) \ldots (t - t_N) \cdot f(t, t_0, \ldots , t_N) = \\ = L_N (t) + (t - t_0 ) \ldots (t - t_N) \cdot f(t, t_0, \ldots , t_N). \end{gather*}$$

    Тогда

    $$f(t) - L_N (t) \cdot (t - t_0) \ldots (t - t_N) \cdot f(t, t_0, \ldots , t_N).$$

    Сравнивая полученное выражение с выражением для остаточного члена интерполяции $$$ R_N (t) = f(t) - L(t) = \frac{{f^{(N + 1)} (\xi )}}{{(N + 1)!}}(t - t_0 ) \ldots (t - t_N), $$$ приходим к выводу, что для некоторой точки $$\xi \in [t_0, t_N]$$ имеет место соотношение между разделенной разностью и производной порядка N + 1:

    $$$ f(t, t_0, \ldots , t_N) = \frac{{f^{(N + 1)} (\xi )}}{{(N + 1)!}}. $$$
  • Пусть значения функции f(t) заданы в узлах интерполяции t1, t2, t3. Построить функцию $$$ g(t) = \frac{{a_0 + a_1 t}}{{d_0 + t}} $,$$ для которой выполнялось бы условие интерполяции: g(ti) = f(ti), i = 1, 2, 3 (задача дробно - линейной интерполяции ).

    Решение. Из условий интерполяции $$$ g(t_i) = \frac{a_0 + a_1 t_i}{d_0 + t_i} = f(t_i), i = 1, 2, 3 $$$ получаем систему трех линейных уравнений:

    a0 + a1t1 - d0f1 = t1f1, 
    a0 + a1t2 - d0f2 = t2f2, 
    a0 + a1t3 - d0f2 = t3f3.

    Вводя обозначения

    $$\begin{gather*} \tau_n = t_n - t_{i - 1}, \bar {\tau} = \frac{{\tau_n + \tau_{n + 1}}}{2}, \quad \Delta_n f = \frac{{f_n - f_{n - 1}}}{{\tau_n}}, \\ \Delta_{n + 1} f = \frac{{f_{n + 1} - f_n}}{{\tau_{n + 1}}}, \quad \delta_nf = \frac{{\Delta_{n + 1} f - \Delta_n f}}{{\bar {\tau}}}, \end{gather*}$$

    и применив метод последовательного исключения неизвестных, получим

    $$\begin{gather*} a_0 = (2t_n \Delta_n f \Delta_{n + 1} f - f_n t_n \delta_n f)/\delta_n (tf), \\ a_1 = f_n - 2\Delta_n f \Delta_{n + 1} f, b_0 = - t \delta_n (t f)/\delta_n f. \end{gather*} $$

    Здесь учтено, что $$$ \delta_n (tf) = t_n \delta_n f + \frac{{f_{n + 1} + f_{n - 1}}}{{\bar \tau_n}} $.$$ Разумеется, знаменатель дробно - рационального выражения не должен обращаться в нуль на рассматриваемом отрезке.

  • 6.14. Задачи для самостоятельного решения

  • Покажите, что интерполяционный полином в форме Лагранжа может быть построен в соответствии со следующими рекуррентными формулами: L0(t) = f(t0),

    $$\begin{gather*} L_n (t) = L_{n - 1} (t) + \left[{f(t_n) - L_{n - 1} (t)}\right] + \frac{{P_n (t)}}{{P_n (t_n)}}, \\ P_1 (t) = t - t_0, P_{n + 1}(t) = P_n(t)(t - t_n). \end{gather*}$$

  • Построить интерполяционный кубический полином $$P_3 (t) = \sum\limits_{i = 0}^3{a_i t^{i}} ,$$ для которого выполнено P3(1) = 1, P3(2) = 2, P3(3) = 2, a3 = 1.
  • Построить интерполяционный полином в форме Лагранжа для функций f(t) = | t |, f(t) = t2 по узлам - 1; 0; 1 ; и - 2; - 1; 0; 1; 2.
  • Оценить погрешность интерполяции функции f(t) = sin t на отрезке $$[0;\pi /4]$$ по трем равноотстоящим узлам.
  • Оценить, какое количество узлов интерполяции потребуется на отрезке $$[0; \pi /4]$$ для обеспечения точности $$\varepsilon = 10^{ - 3}$$ при интерполяции функции sin t.
  • Привести примеры непрерывных функций, для которых расходится последовательность интерполяционных полиномов (на равномерной сетке).
  • Какой величины необходимо выбрать шаг интерполирования $$\tau$$ для обеспечения точности $$\varepsilon \le 10^{- 4}$$ интерполяции функции $$f(t) = \sqrt[3]{t}, t \in [1;10^3 ]$$ при линейной и квадратичной интерполяции?
  • Пусть имеется таблица функции f(t) = sin t в равноотстоящих точка $$\{t_n\}_0^N,$$ причем $$\max\limits_n (t_{n + 1} - t_n) = \tau .$$ При каком $$\tau$$ линейная интерполяция позволит восстановить f(t) с точностью $$\varepsilon \le 10^{- 4}?$$ Тот же вопрос для квадратичной интерполяции. Решить задачу для случаев равномерной и неравномерной сеток $$\{t_n\}_0^{N}.$$
  • Как оценить погрешность интерполяционного процесса, если интерполируемая функция задана таблично?
  • По заданным значениям функции
    t 1 2 2,5 3
    f - 6 - 1 15,6 16

    найти значение t, при котором f(t) = 0 (решение уравнения f(t) = 0 для заданной функции методом обратной интерполяции ).

  • Построить линейный и кубический сплайны по значениям функции f(t) в точках {0, 1} и {0, 1, 2} соответственно.
  • Показать, что система линейных алгебраических уравнений для определения коэффициентов сплайна (6.3) всегда имеет единственное решение. Показать, что для этой системы устойчив метод прогонки. Оценить число обусловленности системы (6.3) в случае, когда $$h_n \equiv h $$ не зависит от номера узла.
  • Страницы:

    6.1. Постановка задачи интерполяции

    Пусть задана совокупность узлов интерполяции или сетка на некотором отрезке [a, b]. В простейшем случае сетка — равномерная, т.е. расстояние между соседними узлами одинаково. В дальнейшем также рассмотрим неравномерные сетки.

  • Совокупность узлов $$\left\{{t_n}\right\}_{n = 0}^N,$$ $$t_{n} = a + n\tau,$$ $$\tau = (b - a)/N,$$ $$t \in \left[{a, b}\right].$$
  • Сеточная проекция функции f(t) на [a, b], т.е. таблица $$f_n = = \left\{{f(t_n)}\right\}_{n = 0}^N $$ ; эту таблицу задает оператор ограничения на сетку или рестрикции (от английского restriction ) $$\mathbf{R}.$$
  • Задача состоит в том, чтобы по таблице {fn} восстановить непрерывную функцию. Обозначим ее через F(t). Разумеется, она отличается от исходной функции f(t), причем такое восстановление неоднозначно и осуществляется оператором интерполяции $$\mathbf{I}.$$ Сама функция F(t) называется интерполирующей или интерполянтом. Необходимо оценить потерю информации при действии этого оператора, т. е. величину |f(t) - F(t)|, зависящую от типа оператора интерполяции и свойств f(t), в частности, ее гладкости. Таким образом, имеем схему:

    $$f(t) \mathop \to\limits_{\mathbf{R}} \left\{{f_n}\right\}_{n = 0}^{N} \mathop \to\limits_{\mathbf{I}} F(t).$$

    6.2. Кусочно - линейная интерполяция

    Простейший способ интерполяции — кусочно - линейная, требующая минимальных требований на гладкость функции f(t). При таком способе интерполяции соседние точки ( tn, fn ) и ( tn + 1, fn + 1 ) соединяют отрезками прямых

    $$$ F(t) = \frac{f_{n + 1} (t - t_n) + f_n (t_{n + 1} - t)}{t_{n + 1} - t_n}, t \in [t_n , t_{n + 1} ]. $$$

    Теорема. Пусть f(t) — Липшиц непрерывная функция, т.е. $$| f(t_1 ) - f(t_2 ) | \le c \left|{t_1 - t_2 }\right|,$$ тогда $$$ \left|{f(t) - F(t)}\right| \le c\frac{\tau }{2} $.$$

    Примечание. Если сетка неравномерная и $$\tau = \max\limits_n (t_{n + 1} - t_n),$$ то теорема верна и для этого случая.

    Доказательство.

    Пусть $$t \in [t_n , t_{n + 1} ],$$ обозначим $$\tau = t_{n + 1} - t_{n}.$$ Тогда $$t = t_n + \alpha \cdot \tau$$ ; $$0 \le \alpha \le 1.$$ В силу линейности f(t) имеем равенство $$F(t) = \alpha f_{n + 1} + (1 - \alpha )f_n.$$

    Оценим разность

    $$\begin{gather*} \left|{F(t) - f(t)}\right| = \left|{\alpha f_{n + 1} + (1 - \alpha )f_n - \alpha f(t) - (1 - \alpha )f(t)}\right| \le \\ \le \alpha \left|{f_{n + 1} - f(t)\left. {}\right| + (1 - \alpha )}\right|f_n - f(t)\left. {}\right|. \end{gather*} $$

    Поскольку $$f_{n + 1} = f(t_{n} + \tau ),$$ имеем

    $$\begin{multline*} \left|f_{n + 1} - f(t)\right| = \left|f(t_n + \tau) - f(t_n + \alpha\tau)\right| \le \left|c(1 - \alpha )\tau\right| = \\ = c(1 - \alpha)\tau, \quad \mbox{т.к. }\quad 0 \le \alpha \le 1. \end{multline*}$$

    Аналогично $$\left|{f_n - f(t)}\right| \le c\alpha \tau.$$ В таком случае $$\left|{f(t) - F(t)}\right| \le 2\alpha (1 - \alpha ) c\tau \le c\tau/2.$$

    Замечание. Простой аппарат кусочно - линейной интерполяции позволяет ввести объекты, на которых базируется один из наиболее известных современных численных методов — метод конечных элементов. Сетке { tn } ставится в соответствие набор базисных функций $$\varphi_n(t),$$ каждая из которых сопоставляется своему узлу tn, причем $$\varphi_n (t_k ) = \delta_k^{n}, \varphi_n (t_{n - 1}) = \varphi_n (t_{n + 1}) = 0, \varphi_n (t_n) = 1,$$ а в остальных точках она вычисляется с помощью кусочно - линейной интерполяции.

    Функция f(t) в этом случае представляется в виде

    $$F(t) = \sum\limits_{n = 0}^{N}{f_n}\varphi_n (t).$$

    В вычислительной математике часто используется кусочно - полиномиальная интерполяция. Так, эрмитовым кубическим интерполянтом называется кусочно - кубический интерполянт с непрерывной производной, кубическим сплайном называется кусочно - кубический интерполянт с двумя непрерывными производными. О сплайнах речь пойдет ниже.

    6.3. Интерполяция обобщенными полиномами

    Для того чтобы функция ( обобщенный полином )$$F(t) = \sum\limits_{n = 0}^{N}{u_n \varphi_n (t)}$$ была интерполирующей, необходимо выполнение условий: F(tk) = fk, $$k = 0 \div N,$$ где fk — значения функции в точках интерполяции. Для коэффициентов обобщенного полинома получаем систему уравнений:

    $$\left\{ \begin{array}{l} u_0 \cdot \varphi_0 (t_0 ) + u_1 \cdot \varphi_1 (t_0 ) + \ldots + u_N \cdot \varphi_N (t_0 ) = f_0, \\ u_0 \cdot \varphi_0 (t_1 ) + u_1 \cdot \varphi_1 (t_1 ) + \ldots + u_N \cdot \varphi_N (t_1 ) = f_1, \\ \ldots \\ u_0 \cdot \varphi_0 (t_N) + u_1 \cdot \varphi_1 (t_N) + \ldots + u_N \cdot \varphi_N (t_N) = f_N , \\ \end{array} \right.$$

    или в векторной форме

    $${\mathbf{Au}} = {\mathbf{f}},$$

    где

    $${\mathbf{A}} = \left( \begin{array}{cccc} {\varphi_0 (t_0 )} {\varphi_1 (t_0 )} \ldots {\varphi_N (t_0 )} \\ {\varphi_0 (t_1 )} {\varphi_1 (t_1 )} \ldots {\varphi_N (t_1 )} \\ \ldots \ldots \ldots \ldots \\ {\varphi_0 (t_N)} {\varphi_1 (t_N)} \ldots {\varphi_N (t_N)} \\ \end{array} \right), {\mathbf{u}} = \left( \begin{array}{cccc} {u_0 } {u_1 } \ldots {u_N} \\ \end{array} \right)^{T}, \\ {\mathbf{f}} = \left( \begin{array}{cccc} {f_0 } {f_1 } \ldots {f_N} \\ \end{array} \right)^{T}.$$

    Теорема (доказывается в курсе линейной алгебры.) Для того чтобы решение задачи интерполяции существовало и было единственным, необходимо и достаточно, чтобы система базисных функций $$\varphi_N (t_k)$$ была линейно независима.

    Теорема (доказывается в курсе линейной алгебры.) Для того чтобы система функций $$\varphi_N (t_k)$$ была линейной независимой в точках t0, ..., tn, необходимо и достаточно, чтобы определитель матрицы Грама

    $${\mathbf{C}} = {\mathbf{A}}^\ast {\mathbf{A}} = \left( \begin{array}{cccc} {(\varphi_0, \varphi_0)} {(\varphi_0, \varphi_1)} \ldots {(\varphi_0, \varphi_N)}\\ {(\varphi_1, \varphi_0)} {(\varphi_1, \varphi_1)} \ldots {(\varphi_1, \varphi_N)}\\ \ldots \ldots \ldots \ldots \\ {(\varphi_N , \varphi_0)} {(\varphi_N , \varphi_1)} \ldots {(\varphi_N , \varphi_N)} \end{array} \right),$$

    был отличен от нуля. Здесь каждый элемент матрицы Грама имеет вид

    $$\gamma_{jk} = (\varphi_k , \varphi_j) = \sum\limits_{i = 0}^{N}{\varphi_k (t_i) \cdot \varphi_j (t_i)}.$$

    В случае, если система функций $$\left\{{\varphi_j}\right\}_0^{N}$$ ортогональна на множестве точек $$\left\{{t_j}\right\}_0^{N},$$ решение задачи интерполяции значительно упрощается (напомним, что система функций $$\left\{{\varphi_j}\right\}_0^{N}$$ является ортогональной на множестве точек $$\left\{{t_j}\right\}_0^{N},$$ если $$(\varphi_k , \varphi_j) = 0$$ при $$k \ne j$$ и $$\left({\varphi_k , \varphi_j}\right) \ne 0$$ при k = j для всех k = 0, 1, ..., N ; j = 0, 1, ..., n ).

    Дело в том, что матрица Грама для ортогональной системы функций диагональна, и ее определитель отличен от нуля (всякая ортогональная система функций заведомо линейно независима). Линейная система уравнений представляется как $${\mathbf{A}}*{\mathbf{Au}} = {\mathbf{A}}*{\mathbf{f}},$$ или $$\mathbf{Cu} = \mathbf{b},$$ где $$\mathbf{C} = \mathbf{A}*\mathbf{A},$$ $$\mathbf{b} = \mathbf{A}*\mathbf{f}$$ - вектор, а ее решение в случае $$\mathbf{A}*\mathbf{A} = \mathbf{E}$$ есть $${\mathbf{u}} = {\mathbf{A}}*{\mathbf{f}}.$$

    Примером ортогональной системы являются показательные функции $$e^{2\pi ikt_j}$$ на множестве точек tj = {j / N}, j = 0, 1, ..., N (на отрезке [0, 1] ).

    6.4. Полиномиальная (алгебраическая) интерполяция

    В этом случае (uk(t) = tk) СЛАУ для определения коэффициентов имеет вид

    $$\left\{ \begin{array}{l} u_0 + u_1 t_0 + \ldots + u_N t_0^{N} = f_0, \\ u_0 + u_1 t_1 + \ldots + u_N t_1^{N} = f_1, \\ \ldots \\ u_0 + u_1 t_N + \ldots + u_N t_N^{N} = f_N , \\ \end{array} \right.$$

    а ее определитель

    $$\det \left( \begin{array}{cccc} 1 {t_0 } {t_0^2 } \ldots \\ 1 {t_1 } {t_1^2 } \ldots \\ \cdots \cdots \cdots \cdots \\ 1 {t_N} {t_N^2 } \ldots \\ \end{array} \right) = \mathop {\Pi\limits_{i \ne j}}\limits^{N}(t_i - t_j), 0 \le j < i \le N,$$

    отличен от нуля, если узлы интерполяции попарно различны. Это известный из курса линейной алгебры определитель Вандермонда.

    Ответ на вопрос о существовании и единственности решения СЛАУ оказывается — утвердительным - решение задачи алгебраической интерполяции всегда существует и единственно, но при больших N система оказывается плохо обусловленной. Однако решение этой задачи можно выписать в явном виде

    $$L_N (t) = \sum\limits_{n = 0}^{N}{f_n} \cdot \varphi_n^{N} (t),$$

    где $$$ \varphi_n^{N} (t) = {\mathop \Pi\limits^N_{\substack{i = 0 \\ i \ne n}}} \frac{t - t_j}{t_n - t_i} $$$ - базисные функции, являющиеся полиномами степени N, каждый из которых сопоставлен со своим узлом сетки так, что $$\varphi_n^{N} (t_k) = \delta_k^{n} .$$ Заметим, что правильнее было бы писать LN(t, {tn}, {fn}), т.е. интерполянт зависит от t, сетки и сеточной функции. Такой вид записи алгебраического интерполяционного полинома не единственен. Выписанный полином называется интерполяционным полиномом в форме Лагранжа. Он удобен для теоретического рассмотрения, но на практике часто оказывается более удобной другая форма представления — полином в форме Ньютона, о котором речь пойдет ниже.

    6.5. Теорема об остаточном члене интерполяции

    Введем понятие остаточного члена интерполяции для оценки погрешности

    $$R_N (t) = f({t}) - L_N (t).$$

    Теорема. Пусть функция f(t) имеет на отрезке [a, b] N + 1 ограниченную производную. Тогда $$$ R_N (t) = \frac{1}{(N + 1)!} {\mathop \Pi\limits_{j = 0}^{N} (t - t_j)} \cdot f^{(N + 1)}(\xi ),$$ где $$\xi \in \left[{a, b}\right] $.$$

    Доказательство.

    Рассмотрим функцию

    $$$ {\psi}(x) = f(x) - L_N (x) - R_N (t)\frac{(x - t_0 )(x - t_1 ) \ldots (x - t_N)}{(t - t_0 )(t - t_1 ) \ldots (t - t_N)}, $$$

    имеющую, по крайней мере, N + 1 производную. По условию, эту производную имеет f(x), а два остальных члена — полиномы.

    Кроме того, $${\psi}(x)$$ на [a, b] имеет, по крайней мере, N + 2 нуля.

    Их можно указать. Точки x = tn (n = 0, …, N) — нули, поскольку f(tn) = L(tn), а последнее слагаемое обращается в них в нуль. N + 2 нулем является точка x = t в силу определения остаточного члена. Далее, поскольку между каждыми двумя нулями непрерывно дифференцируемой функции имеется хотя бы один нуль ее производной, на [a, b] имеется хотя бы N + 1 нуль $${\psi}^{\prime}.$$ Применяя это рассуждение к $$\psi^{\prime\prime}, \psi^{\prime\prime\prime}, \ldots $$ можно показать, что существует точка $$\xi \in [a, b]$$ такая, что $${\psi}^{(N + 1)}(\xi ) = 0.$$

    Вычислим N + 1 производную правой части выражения для f(x) с учетом того, что L(N + 1) = 0. Кроме того, в точке $$\xi$$

    $$\begin{gather*} {\psi}^{(N + 1)} (\xi ) = f^{(N + 1)} (\xi ) - L^{(N + 1)} (\xi ) - \frac{d^{N + 1}}{dx^{N + 1}}\left[{R_N (t) \cdot \frac{(x - t_0 ) \ldots (x - t_N)}{(t - t_0 ) \ldots (t - t_N)}}\right]_\xi, \\ L^{(N + 1)} (\xi ) = 0; {\psi}^{(N + 1)} (\xi ) = 0; \\ \frac{d^{N + 1}}{dx^{N + 1}} \left. \left[\frac{(x - t_0 ) \ldots (x - t_N)}{(t - t_N) \ldots (t - t_N)}\right]\right|_{x = \xi} = \frac {(N + 1)!}{\mathop \Pi\limits_{j = 0}^N (t - t_j)} \end{gather*}$$ Тогда $$$ f^{(N + 1)} (\xi ) - R_N (t) \cdot \frac{{(N + 1)!}}{{ \mathop \Pi\limits_{j = 0}^{N} (t - t_j)}} = 0 $,$$ откуда получим выражение для RN(t): $$$ R_N (t) = \frac{{f^{(N + 1)} (\xi )}}{{(N + 1)!}}{ \mathop \Pi\limits_{j = 0}^N (t - t_j)} $$$

    Рассмотрим некоторые важные следствия этой теоремы.

    Следствие (точность интерполяции на равномерной сетке). Положим, что $$t_n = n\tau, \tau = (b - a)/N, t \in \left[{a, b}\right],$$ — сетка равномерная. В этом случае имеет место оценка

    $$$ \left|{R_N (t)}\right| \le \frac{{\tau ^{N + 1}}}{{N + 1}}C, C = \max\limits_{t \in \left[{a, b}\right]} \left|{f^{(N + 1)}(t)} \right|. $$$

    Доказательство. Пусть $$t = t_k + \alpha \tau , \alpha \in \left[{0, 1} \right], k = 0, 1, \ldots , N - 1.$$

    Тогда $$t - t_n = k\tau + \alpha \tau - n\tau = (k + \alpha - n)\tau $$ ; откуда $${\mathop \Pi\limits_{n = 0}^{N} (t - t_n)} = \tau ^{N + 1} {\mathop \Pi\limits_{n = 0}^{N} (k + \alpha - n)}.$$ Можно показать, что $${\mathop \Pi\limits_{n = 0}^{N}} \left|{k + \alpha - n}\right| \le N$$! . Остаточный член оценивается следующим образом: $$$ R_N (t) = \frac{f^{(N + 1)} (\xi )}{(N + 1)!} {\mathop \Pi\limits_{n = 0}^{N} (t - t_n)} $,$$ поэтому с учетом приведенных оценок получим

    $$$ \left|R_N(t)\right| \le \frac {\tau^{N + 1}}{N + 1} \max\limits_{\xi \in \left[{a, b}\right]} \left|{f^{(N + 1)} (\xi)}\right|. $$$

    Рассмотрим, как ведет себя оценка в задаче экстраполяции при удалении точки t от интервала [t0, tN]. При $$t \in \left[{t_N , t_N + \tau }\right]$$ имеем $$\left|{R_N (t)}\right| \le \tau ^{N + 1} \cdot \max\limits_{\xi \in [t_0, t_N + \tau ]} \left|{f^{(N + 1)} (\xi )}\right|,$$ поскольку $${\mathop \Pi\limits_{n = 0}^{N + 1}} \left|{k + \alpha - n}\right| \le (N + 1)$$!. При$$t \in \left[{t_N + \tau , t_N + 2\tau }\right] \left|{R_N (t)}\right| \le (N + 2) \tau ^{N + 1} \cdot \max\limits_{\xi \in [t_0, t_N + 2\tau ]} \left|{f^{(N + 1)} (\xi )}\right|,$$ так как $${\mathop \Pi\limits_{n = 0}^{N + 2}} \left|{(k + \alpha - n)}\right| \sim (N + 2)$$!

    При$$t \in \left[{t_N + 2\tau , t_N + 3\tau }\right]$$ $$$ \left|{R_N (t)}\right| \le \frac {(N + 2)(N + 3)}{2!} \tau ^{N + 1} \max\limits_{\xi \in [t_0, t_N + 3\tau ]} \left|{f^{(N + 1)}(\xi )}\right| $,$$ и так далее.

    Видно, что ошибка экстраполяции растет быстро, но не сразу: экстраполяция допустима на интервалах $$\sim O(\tau ).$$

    6.6. Интерполяционный полином в форме Ньютона

    6.6.1. Разделенные и конечные разности

    Определение. Пусть задана система узлов $$\left\{{t_n}\right\}_{n = 0}^{N}, t_n \in \left[{a, b}\right], t_0 = a, t_N = b.$$

    Разделенные разности нулевого порядка в точке ti совпадают со значениями функции f(ti) ;

    Разности первого порядка определяются для двух точек ti, ti + 1 равенством

    $$$ f(t_i , t_{i + 1}) = \frac{{f(t_{i + 1}) - f(t_i)}}{{t_{i + 1} - t_i}}, $$$

    разности второго порядка — для трех точек ti, ti + 1, ti + 2

    $$$ f(t_i , t_{i + 1}, t_{i + 2}) = \frac{f(t_{i + 1}, t_{i + 2}) - f(t_i , t_{i + 1})}{t_{i + 2} - t_i}, $$$

    разности порядка k — для k + 1 точки по рекуррентной формуле

    $$$ f(t_i, t_{i + 1}, \ldots , t_{i + k}) = \frac{f(t_{i + 1}, \ldots , t_{i + k}) - f(t_i, \ldots , t_{i + k - 1})}{t_{i + k} - t_i}. $$$

    Методом математической индукции можно показать, что

    а) $$$ f(t_i, t_{i + 1}, \ldots , t_{i + k}) = \sum\limits_{j = 0}^{k}{\frac{f(t_{i + j})}{\prod\limits_{\substack{r = 0 \\ r \ne {i + j}}}^{k}{(t_{i + j} - t_{i + r})}}} $;$$

    б) существует точка $$\xi \in \left[{a, b}\right]$$ такая, что $$k!f(t_{i}, t_{i + 1}, …, t_{i + k}) = f^{(k)}(\xi ).$$

    Отсюда следует, что разделенная разность есть симметричная функция своих аргументов ti, ..., ti + k и она не изменяется при их перестановке.

    Для удобства введем таблицу разделенных разностей:

    t0 f(t0) $$\ldots $$
    f(t0, t1) $$\ldots $$
    t1 f(t1) f(t0, t1, t2) $$\ldots $$
    f(t1, t2) $$\ldots $$
    t2 f(t2) $$\ldots $$ $$\ldots $$ f(t0, …, tn)
    $$\ldots $$ $$\ldots $$ $$\ldots $$ f(tn - 2, tn - 1, tn) $$\ldots $$
    f(tn - 1, tn) $$\ldots$$
    tn f(tn) $$\ldots $$

    Пусть сетка — равномерная. Тогда конечной разностью первого порядка функции f(t) в точке tk с шагом $$\tau$$ называют величину $$\Delta f_{k} = f_{k + 1} - f_{k},$$ где fk = f(tk), второго порядка — величину

    $$\Delta ^{2}f_{k} = \Delta f_{k + 1} - \Delta f_{k} = f_{k + 2} - 2f_{k + 1} + f_{k},$$

    третьего

    $$\Delta ^{3}f_{k} = \Delta f_{k + 3} - 3f_{k + 2} + 3f_{k + 1} - f_{k} = f_{k + 3} - 3f_{k + 2} + 3f_{k + 1} - f_{k},$$

    четвертого

    $$\Delta ^{4}f_{k} = f_{k + 4} - 4f_{k + 3} + 6f_{k + 2} - 4f_{k + 1} + f_{k},$$

    причем

    $${\Delta}^{n} f_k = {\Delta}^{n - 1} f_{k + 1} - {\Delta}^{n - 1} f_k, k \ge 1, {\Delta}^0 f_k = f_k.$$

    Методом математической индукции доказывается формула

    $${\Delta}^{n} f_k = \sum\limits_{s = 0}^{n}{(- 1)^{n - 1} \cdot C_n^{s} f_{k + s}, } $$

    где $$C_i^{s} = \frac{i!}{s!(i - s)!}$$ - биномиальные коэффициенты.

    Нетрудно показать, например, используя формулу Лагранжа, что существует точка $$\xi \in \left[{a, b}\right]$$ такая, что $$\tau ^{n} f^{(n)} (\xi ) = {\Delta}^{n} f_k , t_k \in \left[{a, b}\right],$$ поэтому в вычислительных методах используется приближенная формула

    $$$ f^{(n)} (t) \approx \frac{{\Delta}^{n} f_k}{\tau ^{n}}, $$$

    аналогичная тем формулам численного дифференцирования, что были получены в первой лекции методом неопределенных коэффициентов.

    Заметим, что введенные конечные разности называют "разностями вперед". Аналогично можно ввести "разности назад":

    $$\Delta f_{k} = f_{k} - f_{k - 1}, \Delta ^{2}f_{k} = \Delta f_{k} - \Delta f_{k - 1} = f_{k} - 2f_{k - 1} + f_{k - 2}, \dots \\ \Delta ^{n}f_{k} = \Delta ^{n - 1}f_{k} - \Delta ^{n - 1}f_{k - 1}$$

    и центральные разности

    $$\Delta f_{k} = f_{k + 1/2} - \Delta f_{k - 1/2}, \Delta ^{2}f_{k} = \Delta f_{k + 1/2} - \Delta f_{k - 1/2} = f_{k + 1} - 2f_{k} + f_{k - 1}, \dots , \\ \Delta ^{n}f_{k} = \Delta ^{n - 1}f_{k + 1/2} - \Delta ^{n - 1}f_{k - 1/2}.$$

    Иногда для обозначения первых конечных разностей вперед и назад используют обозначения $$\Delta ^{+}f_{k}, \Delta ^{-}f_{k}.$$

    6.6.2. Интерполяционный полином в форме Ньютона

    Интерполяционный полином может быть записан с использованием введенных выше разделенных разностей. Такая форма его записи называется интерполяционным полиномом в форме Ньютона. Полином имеет вид

    Nn(t) = f(t1) + f(t1, t2)(t - t1) + ... + f(t1, ..., tn + 1)(t - t1) ... (t - tn).

    То, что это интерполяционный полином, может быть доказано, например, методом математической индукции. Отметим, что полином в форме Ньютона напоминает ряд Тейлора, а остаточный член интерполяционного полинома — остаточный член этого ряда. Достоинством записи интерполянта в форме Ньютона является то, что для повышения порядка полинома нет необходимости в его полной перестройке; достаточно лишь добавить к уже полученному выражению еще одно или несколько слагаемых. С помощью разделенных разностей можно оценивать погрешность интерполяции. Читатели могут предложить способ контроля точности вычислений, основанный на использовании разделенных разностей.

    6.7. Многочлены Чебышёва и минимизация остаточного члена интерполяции

    Многочленом Чебышева первого рода называется функция Tn(t) = cos (n arccos t), где $$t \in \left[{- 1, 1}\right], n = 0, 1, \ldots $$

    Убедимся в том, что функция Tn(t) действительно является многочленом. При n = 0 и n = 1 имеем T0(t) = 1, T1(t) = t.

    Положив $$\theta = \arccos t,$$ получим $$T_{1}(t) = \cos \theta , T_{n}(t) = \cos n \theta,$$ $$T_{n - 1}(t) = \cos (n - 1)\theta , T_{n + 1}(t) = \cos (n + 1)\theta.$$ По формуле суммы косинусов $$\cos (n + 1)\theta + \cos (n - 1)\theta = 2\cos \theta \cos n\theta,$$ и справедливо рекуррентное соотношение Tn + 1(t) + Tn - 1(t) = 2T1(t)Tn(t), или Tn + 1(t) = 2t Tn(t) - Tn - 1(t). Отсюда следует вид записи полиномов Чебышева: T2 = 2t2 - 1, T3(t) = 4t3 - 3t, T4(t) = 8t4 - 8t2 + 1 и так далее. Функции Tn(t) являются многочленами степени n со старшим членом 2n - 1tn.

    Введем также нормированные многочлены Чебышева $$$ \bar {T_n} (t) = \frac{T_n (t)}{2^{n - 1}} $.$$

    Нули многочлена Чебышева находятся из очевидного уравнения Tn(t) = cos (n arccos t) = 0, откуда $$$ t_m = \cos \left({\frac{{2m - 1}}{n}\pi }\right), m = 1, 2, \ldots n, t \in [{- 1, 1}] $.$$ Для произвольного отрезка [a, b] нули полинома Чебышева получаются очевидным линейным преобразованием, выражения для них будут $$$ t_m = \frac{a + b}{2} + \frac{b - a}{2}\cos \left({\frac{2m - 1}{2n}\pi }\right), m = 1, 2, \ldots n $.$$ Легко отыскиваются также точки экстремумов полинома Чебышева, для них | Tn(t) | = 1 и на отрезке $$t \in [- 1, 1]$$ точки экстремумов есть $$$ t_m = \cos (\frac{m}{n}\pi ), m = 1, 2, \ldots n $.$$

    Нас интересует решение следующей задачи на минимакс: найти

    $$\min\limits_{\left\{t_n\right\}_{n = 0}^{N}}\left\{\max\limits_{t \in [- 1, 1] } \left|{\mathop \Pi\limits_{n = 0 }^{N}(t - t_n)}\right| \right\}$$

    чтобы путем выбора узлов сетки минимизировать остаточный член интерполяции. Эта задача была решена П.Л.Чебышевым.

    Теорема. (Чебышева (без доказательства)) Среди всех многочленов степени $$n \ge 1,$$ со старшим коэффициентом an равным единице, наименьшее уклонение от нуля, равное 21 - n, имеет нормированный полином Чебышева $$\bar {T_n} (t) = 2^{1 - n} T_n (t), t \in \left[{- 1, 1}\right].$$

    Это свойство полиномов Чебышева, наименьшее уклонение от нуля, можно сформулировать по - другому: для любого полинома Pn(t) = tn + an - 1tn - 1 + ... + a0, отличного от $$$ \bar {T_n} (t) $$$ справедливо $$2^{1 - n} = \max\limits_{\left[{- 1, 1}\right]} \left|{\bar {T_n} (t)}\right| < \max\limits_{\left[{- 1, 1}\right]} \left|{P_n (t)}\right|, t \in \left[{- 1, 1}\right].$$

    Если в качестве интерполяционных узлов выбрать нули полинома Чебышева, то произведение $${\mathop \Pi\limits_{j = 0}^{N + 1} (t - t_j)},$$ а также Rn(t) будут наименее уклоняющимися от нуля.

    6.8. Обусловленность задачи интерполяции. Постоянная Лебега

    В процессе вычислений значения интерполируемой функции известны с некоторой погрешностью. При работе на вычислительной машине ошибки округления неизбежны. Возникает вопрос о чувствительности интерполяционного полинома к ошибкам начальных данных (обусловленности задачи интерполяции ) и к ошибкам округления (вопрос вычислительной устойчивости). Интерполяционный полином — оператор, линейный по отношению к значениям интерполируемой функции. С учетом погрешности начальных данных полином в форме Лагранжа может быть записан следующим образом:

    $$L_N (t) = \sum\limits_{n = 0}^{N}{f_n}\varphi_n^{N} (t) + \sum\limits_{n = 0}^{N}{\delta f_n} \varphi_n^{N} (t),$$

    причем слагаемое

    $$\Delta_N (t, \delta f) = \sum\limits_{n = 0}^{N}{\delta f_n} \varphi_n^{N} (t)$$

    характеризует чувствительность к ошибкам начальных данных и ошибкам вычислений. Нас интересует оценка

    $$\max\limits_{t \in \left[{a, b}\right]} \left|{\Delta_N (t, \delta f)}\right| \le l_N \delta ; \delta = \max\limits_{t \in \left[{a, b}\right]} \left|{\delta f_n}\right|, l_N = \max\limits_{t \in [a, b]}\sum\limits_{n = 0}^{N} \left|\varphi_n^{N} (t)\right|,$$

    коэффициент lN называется постоянной Лебега.

    Введем в рассмотрение еще один объект. Пусть $$\sum {\left|{\varphi_i^{N} \left(x\right)}\right|}$$ - сумма модулей всех базисных функций. Обозначим ее $${L}\left(x\right) = \sum {\left|{l_i^{N} \left(x\right)}\right|}$$ - функция Лебега (сетки). Тогда константа Лебега $$l_N = \sup\limits_{x \in \left[{a, b}\right]}{L}\left(x\right).$$

    Так как функция Лебега зависит лишь от расположения узлов сетки, то и константа Лебега зависит лишь от введенной сетки. Обусловленность и устойчивость задачи интерполяции зависят от константы Лебега.

    Если рассматривать оператор интерполяции как оператор проекции (проектор), переводящий элемент одного пространства (пространства сеточных функций) в другое (пространство непрерывно дифференцируемых функций), то постоянная Лебега есть норма такого оператора проекции. Подробнее об этом в [6.7].

    Конечно, реальная погрешность при интерполяции будет заведомо меньше, чем приведенная выше оценка. Тем не менее, оценка является достижимой (это свойство нормы оператора). Наихудшим распределением погрешности будет такое распределение, когда погрешности максимальны и меняют знак от точки к точке. То, что при этом будет достижима приведенная выше оценка, следует из вида функции Лебега и каждой из базисных функций. Предлагаем читателям соответствующие построения провести самостоятельно.

    Приведем (без доказательства) примерные оценки роста постоянной Лебега в зависимости от числа узлов сетки. Константа Лебега растет примерно как $$l_{N} \sim 2^{N}$$ для равномерной сетки и $$l_{N} \sim ln (N)$$ для сетки с чебышевским набором узлов. Доказано, что рост константы Лебега для последней сетки асимптотически стремится к минимально возможному, и сетка с чебышевскими узлами близка к оптимальной для задач интерполяции.

    6.9. Интерполяция с кратными узлами

    Определение. Пусть в узлах сетки $$\left\{{t_n}\right\}_{n = 0}^{M}$$ заданы не только значения функции f(tn), но и значения ее производных f'(tn), f''(tn), ..., $$f^{(k_n - 1)}(t_n).$$ В этом случае узел tn называется кратным, а число kn, равное количеству заданных значений производных в n узле — кратностью узла.

    Доказывается теорема о существовании единственного полинома PN(t), удовлетворяющего условиям

    $$\begin{gather*} P_N (t_n) = f_n, P^{\prime}_N (t_n) = f^{\prime}_n, \ldots , P_N^{(k_n - 1)} (t_n) = f_n^{k_n - 1}, \\ N = k_0 + k_1 + \ldots + k_M - 1. \end{gather*} $$

    Такой полином называется полиномом с кратными узлами. Отметим два частных случая.

  • в точке t = t0 заданы f0, f'0, ..., f0(N) (M = 0, k0 = N + 1).

    Тогда многочлен PN(t), удовлетворяющий этим условиям, может быть записан как

    $$$ P_N (t) = \sum\limits_{i = 0}^{N}{f^{(i)} (t_0 )}\frac{{(t - t_0)}^i}{i!}. $$$

    Это — ряд Тейлора, который является интерполянтом с кратным узлом в точке t = t0 кратности N + 1.

  • Пусть на концах отрезка [t0, t1] заданы значения f0, f1, f'0, f'1 (M = 1, k0 = 2, k1 = 2, N = 3). Тогда P3(t0) = f0, P'3(t0) = f'0, P3(t1) = f1, P'3(t1) = f'1, а интерполянт имеет вид

    $$\begin{gather*} P_3 (t) = f_0 \frac{{(t_1 - t)^2 \left[{2(t - t_0 ) + \tau }\right]}}{{\tau ^3 }} + {f^{\prime}}_0 \frac{{(t_1 - t)^2 (t - t_0 )}}{{\tau ^2 }} + \\ + f_1 \frac{{(t - t_0 )^2 \left[{2(t_1 - t) + \tau }\right]}}{{\tau ^3 }} + f^{\prime}_1 \frac{{(t - t_0)^2 (t - t_1 )}}{{\tau ^2 }}, \end{gather*}$$

    здесь $$\tau = t_{1} - t_{0}.$$

    Такой многочлен называется кубическим интерполяционным многочленом Эрмита.

  • Теорема (без доказательства). Пусть f(t) имеет N + 1 ограниченную производную на отрезке [a, b]. Тогда погрешность интерполяционного многочлена Эрмита степени N выражается формулой

    $$$ R_N (t) = \frac{{f^{(N + 1)} (\xi )}}{{(N + 1)!}}(t - t_0 )^{k_0 } (t - t_1)^{k_1 } \ldots (t - t_M)^{k_M}, $$$

    где tnинтерполяционные узлы, n = 0, ..., M, ki - кратность i узла, $$\xi \in \left[{a, b}\right], N = k_0 + k_1 + \ldots + k_M - 1.$$

    Поставим теперь следующую задачу: построить кусочно - кубическую интерполирующую функцию, непрерывную на отрезке [a, b] со своими двумя первыми производными.

    Обозначим такую функцию S(t) ; значения производных в узлах tn обозначим mn = S'(tn). Если задать в узлах tn, tn + 1 значение функции и ее первой производной, то получим эрмитов кусочно - кубический полином

    $$\begin{gather*} S(t) = \frac{{(t_{n + 1} - t)^2 \left[{2(t - t_n) + \tau }\right]}}{{\tau ^3 }}f_n + \frac{{(t - t_n)^2 \left[{2(t_{n + 1} - t) + \tau }\right]}}{{\tau ^3 }}f_{n + 1} + \\ + \frac{{(t_{n + 1} - t)^2 (t - t_n)}}{{\tau ^2 }}m_n + \frac{{(t - t_n)^2 (t - t_{n + 1})}} {{\tau ^2 }}m_{n + 1}, \end{gather*}$$

    или

    $$S(z) = f_{n}(1 - z)^{2}(1 + 2z) + f_{n + 1}z^{2}(3 - 2z) + m_{n}\tau _{n}z(1 - \tau )^{2} - m_{n + 1}\tau _{n}z^{2}(1 - z),$$

    где $$\tau _{n} = t_{n + 1} - t_{n}, z = (t - t_{n})/\tau _{n}, m_{n} = S'(t_{n}).$$

    6.9.1. Замечание о тригонометрической интерполяции

    Для периодической функции f(t) с периодом T естественно строить приближение с использованием функций $$$ \varphi_n(t) = a_n \cos {\frac{\pi nt}{T}} + b_n \sin{\frac{\pi nt}{T}} $$$ Тригонометрическая интерполяция состоит в замене f(t) тригонометрическим многочленом $$$ F_N (t) = \sum\limits_{n = 0}^{N}{\varphi_n (t) = a_0 + \sum\limits_{n = 1}^{N}{(a_n \cos \frac{{\pi nt}}{T} + b_n \sin \frac{\pi nt}{T})}} $,$$ коэффициенты которого находятся при решении СЛАУ FN(tk) = f(tk), k = 1, ..., 2N + 1, t2N + 1 - t0 = T, здесь $$\left\{{t_k}\right\}_{k = 0}^{2N + 1}$$ — последовательность узлов интерполяции.

    6.10. Кусочно - многочленная глобальная интерполяция (сплайны)

    Определение. Пусть на отрезке [a, b] задана система узловых точек $$\{t_n\}_{n = 0}^{N - 1}.$$ Сплайном Sm(t) называется определенная на [a, b] функция, имеющая l непрерывных производных и являющаяся на каждом интервале (tn - 1, tn) многочленом степени m.

    Определение. Дефектом сплайна называется разность d = m - l между степенью сплайна и показателем его гладкости l.

    Замечание. Для сплайнов также используется обозначение Sm, d(t). Если сплайн строится так, чтобы выполнялись условия Sm(tn) = f(tn), где f(t) — интерполируемая функция, то он называется интерполяционным сплайном. В соответствии с определением, кусочно - линейная функция является интерполяционным сплайном первой степени дефекта 1, кусочно - квадратичная функция с первой непрерывной производной — интерполяционным сплайном второй степени дефекта 1. Наиболее известным в приложениях является интерполяционный кубический сплайн дефекта 1 (естественный сплайн ), который будем обозначать S(t).

    Определение. Кубическим сплайном дефекта 1, интерполирующим на отрезке [a, b] заданную функцию f(t), называется функция S(t), удовлетворяющая следующим условиям:

  • S(tn) = f(tn) — условие интерполяции в узлах сетки $$\left\{{t_n}\right\}_{n = 0}^{N - 1}.$$
  • $$S(t) \in C^2 [a, b],$$ т.е. является непрерывной вместе с двумя первыми производными.
  • На каждом отрезке [tn, tn + 1], S(t) является кубическим многочленом; n = 0, ..., N - 1.
  • На краях отрезка [a, b] заданы краевые условия. Наиболее часто употребляются следующие:
  • S'(a) = f'(a), S'(b) = f'(b) ;
  • S''(a) = f''(a), S''(b) = f''(b) ; часто полагают S''(a) = S''(b) = 0 ;
  • S(a) = S(b), S'(a) = S'(b) ; эти условия называются периодическими, т.е. интерполируемая функция является периодической с периодом b - a.
  • Покажем, что эта задача имеет единственное решение.

    Теорема. Интерполяционный кубический сплайн S(t), удовлетворяющий условиям 1 — 3 и одному из краевых условий 4, существует и единственен.

    Доказательство.

    Пусть S(z) — эрмитов кубический многочлен, который на каждом отрезке [ tn, tn + 1 ], n = 0, …, N - 1, представлен как

    $$S(z) = f_n (1 - z)^2 (1 + 2z) + f_{n + 1} \cdot z^2 (3 - 2z) + m_n \tau_n z(1 - z)^2 - m_{n + 1} \tau_n z^2 (1 - z),$$

    где $$\tau _{n} = t_{n + 1} - t_{n},$$ $$z = (t - t_{n})/\tau _{n}, m_{n} = S'(t_{n}).$$ Тогда

    $$\begin{gather*} S^{\prime\prime}(t) = \frac{{(f_{n + 1} - f_n)(6 - 12z)}}{{\tau_n^2 }} + m_n \frac{{6z - 4}} {{\tau_n}} + m_{n + 1} \frac{{6z - 2}}{{\tau_n}}, \\ S^{\prime\prime}(t_n + 0) = 6\frac{{f_{n + 1} - f_n}}{{\tau_n^2 }} - \frac{{4m_n}}{{\tau_n}} - \frac{{2m_{n + 1}}}{{\tau_n}}, \\ S^{\prime\prime}(t_n - 0) = - 6\frac{{f_n - f_{n - 1}}}{{\tau_{n - 1}^2 }} + \frac{{2m_{n - 1}}} {{\tau_{n - 1}}} + m_{n + 1} \frac{{4m_n}}{{\tau_{n - 1}}}. \end{gather*} $$

    Условие непрерывности второй производной S''(tn + 0) = S''(tn - 0) будет

    $$\begin{gather*} r_n m_{n - 1} + 2m_n + s_n m_{n + 1} = c_n , \\ c_n = 3\left({s_n \frac{{f_{n + 1} - f_n}}{{\tau_n}} + r_n \frac{{f_n - f_{n - 1}}}{{\tau_{n - 1}}}}\right), s_n = \frac{{\tau_{n - 1}}}{{\tau_{n - 1} + \tau_n}}, r_n = 1 - s_n, \\ n = 1, \ldots , N - 1 \end{gather*} $$

    После добавления краевых условий получаем систему из N + 1 уравнение с N + 1 неизвестным mn. Для краевых условий первого типа (заданы первые производные) система выглядит как

    m0 = f'0, 
    rn mn - 1 + 2mn + snmn + 1 = cn , 
    mn = f'n

    Для условий второго типа (заданы вторые производные)

    $$\begin{gather*} 2m_0 + m_1 = 3\frac{{f_1 - f_0 }}{{\tau_0 }} - \frac{{\tau_0 }}{2}f^{\prime\prime}_0, \\ r_n m_{n - 1} + 2m_n + s_nm_{n + 1} = c_n , \\ m_{N - 1} + 2m_N = 3\frac{{f_N - f_{N - 1}}}{{\tau_{N - 1}}} + \frac{{\tau_{N - 1}}}{2}f^{\prime\prime}_N \end{gather*}$$

    Аналогично получается СЛАУ для третьего типа краевых условий.

    Во всех случаях матрицы СЛАУ оказываются трехдиагональными симметричными, со строгим диагональным преобладанием и, как показывается, положительно определенными, а, следовательно, и неособенными. Следовательно, решение СЛАУ существует и единственно. Отсюда следует существование и единственность решения задачи о построении кубического сплайна.

    Приведем еще одно доказательство этой же теоремы.

    Доказательство.

    Рассмотрим неравномерную сетку: $$t_{n} - t_{n - 1} = \tau _{n - 1},$$ $$t_{n + 1} - t_{n} = \tau _{n}.$$ В узлах сетки определены значения функции: fn - 1, fn , fn + 1. Пусть mn — значение второй производной в точке tn (пока неизвестное!). На отрезке [tn, tn + 1] для второй производной кусочно - кубического сплайна имеем

    $$$ {S^{\prime\prime}_{tt} = \frac {1}{\tau_n}(m_n (t_{n + 1} - t) + m_{n + 1} (t - t_n)).} $$$

    Так как сплайн — полином третьей степени, то его вторая производная — линейная функция. Интегрируем (6.2) по t, получаем (на отрезке [ tn, tn + 1] )

    $$$ S^{\prime}_{t} = \frac {1}{\tau_n} \left(m_{n + 1}\frac{{(t_{n + 1} - t)}^2}{2} - m_n \frac{{(t - t_n)}^2}{2}\right) + A_n. $$$

    Интегрируя последнее соотношение еще раз, получаем:

    $$\begin{gather*} S(t) = \frac {1}{6\tau_n} (m_n (t_{n + 1} - t)^3 + m_{n + 1} (t - t_n)^3) + \\ + \alpha_n (t_{n + 1} - t) + \beta_{n + 1} (t - t_n ). \end{gather*}$$

    An — константа интегрирования. После второго интегрирования положим $$A_n t + B_n = (\beta_n - \alpha_n)t + \alpha_n t_{n + 1} - \beta_n t_n ,$$ т.е. вместо двух констант An, Bn введем две новые константы, более удобные для дальнейших выкладок.

    Из условий S(tn) = fn, S(tn + 1) = fn + 1, получаем:

    $$\begin{gather*} f_n = \frac{{m_n \tau_n^2 }}{6} + \alpha {}_n\tau_n \Rightarrow \alpha_n = \frac{{f_n}}{{\tau_n}} - \frac{{m_n\tau_n}}{6}. \\ f_{n + 1} = \frac{{m_{n + 1} \tau_n^2 }}{6} + \beta {}_n\tau_n \Rightarrow \beta_n = \frac{{f_{n + 1}}}{{\tau_n}} - \frac{{m_{n + 1} \tau_n}}{6}. \\ A_n = \frac{{f_{n + 1} - f_n}}{{\tau_n}} - \frac{{(m_{n + 1} - m_n)\tau_n}}{6}. \end{gather*}$$

    Приравняем первые производные в tn справа и слева S't(tn + 0) = S't(tn - 0), получим систему уравнений для определения коэффициентов сплайна:

    $$$ \frac{m_n \tau_{n - 1}}{2} - \frac{m_{n - 1} \tau_{n - 1}}{2} + \frac{f_n - f_{n - 1}}{\tau_{n - 1}} - \frac{(m_n - m_{n - 1})\tau_{n - 1}}{6} = \\ {= \frac{m_{n + 1} \tau_n}{2} - \frac{m_n \tau_n}{2} + \frac{f_{n + 1} - f_n}{\tau_n} - \frac{(m_{n + 1} - m_n)\tau_n}{6}, } $$$

    которая дополняется соответствующими граничными условиями. В случае свободного сплайна m0 = mN = 0.

    Систему для определения коэффициентов, называемых моментами кубического сплайна, можно записать в матричной форме

    $$\mathbf{AM} = \mathbf{F},$$

    где $$\mathbf{A}$$ — квадратная матрица:

    $$$ \mathbf{A} = \left( \begin{array}{cccccc} {\frac {\tau_1 + \tau_2}{3}} {\frac {\tau_2}{6}} 0 \ldots 0 0 \\ {\frac{\tau_2}{6}} {\frac {\tau_2 + \tau_3}{3}} {\frac{\tau_3}{6}} \ldots 0 0 \\ 0 {\frac{\tau_3}{6}} {\frac {\tau_3 + \tau_4}{3}} \ldots 0 0 \\ \ldots \ldots \ldots \ldots \ldots \ldots \\ 0 0 0 \ldots {\frac{\tau_{N - 1}}{6}} {\frac{\tau_N + \tau_{N - 1}}{3}} \\ \end{array} \right) $$$

    $$\mathbf{M}$$ и $$\mathbf{F}$$ — векторы - столбцы:

    $$$ {\mathbf{M}} = (m_1, m_2, \ldots , m_{N - 1})^T , \\ {\mathbf{F}} = {\left(\frac {f_2 - f_1}{\tau_1} - \frac{f_1 - f_0}{\tau_0}, \frac {f_3 - f_2}{\tau_2} - \frac{f_2 - f_1}{\tau_1}, \ldots , \frac {f_N - f_{N - 1}}{\tau_N} - \frac{f_{N - 1} - f_{N - 2}}{\tau_{N - 1}}\right)}^T. $$$

    Матрица $$\mathbf{A}$$ симметрична, имеет свойство диагонального преобладания и, как можно показать, положительно определена, а следовательно, неособенная. Значит, решение рассматриваемой СЛАУ существует и единственно. Следовательно, и задача о построении кубического сплайна имеет единственное решение. Для других типов краевых условий доказательство проводится аналогично. Метод решения такой СЛАУ, который будет рассмотрен в лекции 10 — прогонка.

    Теорема (без доказательства.) Для функции $$f(t) \in C^4 [a, b]$$ и интерполирующего ее сплайна S (t), построенного на сетке $$\{t_n\}_{n = 0}^{N},$$ имеют место следующие неравенства:

    $$\begin{gather*} \left\|{f(t) - S(t)}\right\|_{[a, b]} \le M_4 \tau ^4, \\ \left\|{f^{\prime}(t) - S^{\prime}(t)}\right\|_{[a, b]} \le M_4 \tau ^3, \\ \left\|{f^{\prime\prime}(t) - S^{\prime\prime}(t)}\right\|_{[a, b]} \le M_4 \tau ^2, \end{gather*} $$

    где M4 = || f(4)(t) ||[a, b], $$\tau = \max\limits_n (t_{n + 1} - t_n).$$

    Отсюда следует, что при $$\tau\rightarrow 0$$ последовательность функций S(k)(t), i = 0, 1, 2 (кубический сплайн и первые две его производные) сходится, соответственно, к f(k)(t).

    Теорема (экстремальное свойство кубических сплайнов (без доказательства.) Пусть сплайн S(t) интерполирует функцию f(t) на системе узлов

    $$\left\{{t_n}\right\}_{n = 0}^{N}; t_0 = a, t_N = b.$$

    Тогда S(t) с краевыми условиями S''(a) = S''(b) = 0 доставляет минимум функционалу

    $$\int\limits_{a}^{b}{[F^{\prime\prime}(t)]^2 }dt$$

    среди всех функций $$F(t) \in C^2_2 [a, b],$$ т.е. функций, имеющих интегрируемые с квадратом вторые производные $$(\int\limits_{a}^{b}{{[F^{\prime\prime}(t)]}^2 dt})$$ сходится на отрезке [a, b] ) и интерполирующих f(t) на отрезке [a, b].

    Локальный сплайн. Локальная форма сплайн - интерполяции предложена В. С. Рябеньким [6.9], [6.10]. Рассмотрим неравномерную сетку: tn - tn - 1 = hn - 1, tn + 1 - tn = hn. В узлах сетки определены значения функции: fn - 1, fn , fn + 1. Не вдаваясь в детали, приведем важные для практического использования формулы в случае постоянного шага сетки h = const . Построим интерполяционный полином второго порядка P2(x) в форме Ньютона (d - fn)/h:

    tn-1 fn-1 $$$ \frac{f_n - f_{n - 1}}{h} $$$

    $$$ \frac{f_{n + 1} - f_n}{h} $$$

    $$$ \frac{f_{n - 1} - 2f_n + f_{n + 1}}{h^2} $$$
    tn fn
    tn+1 fn+1
    $$\begin{gather*} P_2 (t, f_n) = f_{n - 1} + \frac{{f_n - f_{n - 1}}}{h} (t - t_{n - 1}) + \\ + \frac{f_{n - 1} - 2f_n + f_{n + 1}}{h^2 } (t - t_{n - 1})(t - t_n), \end{gather*}$$

    Этот полином приближает f на отрезке [ tn - 1, tn + 1 ] с точностью до o(h2). Рассмотрим теперь полином

    $$\begin{gather*} Q_5 (t, f_n) = P_2 (t, f_n) + \frac{h^3}{2} \left\{{\frac{f_{n + 2} - 3f_{n + 1} + 3f_n - f_{n - 1}}{h^3} \times }\right. \\ \left. {\times \left({\frac{t - t_n}{h}}\right)^3 \left({\frac{t - t_{n + 1}}{h}}\right)\left({3 - \frac{2(t - t_n)}{h}}\right)}\right\}, \end{gather*}$$

    представляющий собой аппроксимацию функции f на отрезке [tn - 1, tn + 1] с непрерывными первой и второй производными. В [6.1] доказано, что выражение (6.4) аппроксимирует $$f_x^{(m)}$$ с порядком o(h3 - m) во всех точках отрезка. Так как коэффициенты сплайна зависят от значений функции лишь в 4-х соседних точках и для определения коэффициентов (6.4) не требуется решать систему линейных уравнений, такая кусочно - гладкая интерполяция называется локальным сплайном.

    Замечание. Q5(t, fn) уже не обладает экстремальным свойством.

    6.11. B - сплайны

    Сплайны с локальным носителем. ( B - сплайны ). В последнее время в вычислительной практике широкое распространение получили B - сплайны (от английского слова bell — колокол), сосредоточенные на конечном носителе. Они используются как для интерполяции функций, так и в качестве базисных функций при построении методов типа конечных элементов.

    Для подробного ознакомления с приложениями B - сплайнов и B - сплайнами произвольной степени рекомендуется обратиться к данной лекции ограничимся наиболее распространенными случаями B - сплайнов порядка 2 и 3, см. также [6.11].

    Определение. B - сплайном, или базисным сплайном степени N - 1 дефекта 1 относительно узлов $$\left\{{t_i}\right\}_{i = n}^{n + N}$$ называется функция

    $$\begin{gather*} B_{N - 1, n} (t) = B_{N - 1}(t_n, t_{n + 1}, \ldots , t_{n + N}, t) = N \sum\limits_{i = n}^{n + N}\frac{{\left({t_i - t}\right)}^{N - 1}_{\max}}{\mathop{\Pi}\limits^{n + 1}_{\substack{ j = n \\ j \ne i}} (t_i - t_j)} \\ (t_i - t)^{N - 1}_{\max} = \left\{ \begin{array}{ll} (t_{i} - t)^{N - 1}, t \le t_i, \\ 0, t > t_i, \\ \end{array} \right. \end{gather*}$$

    Пусть $$t_{n + i} = t_{n} + i\tau ,$$ т.е. рассматривается случай равномерной сетки.

    Рассмотрим несколько частных случаев В - сплайнов.

  • N = 2. В этом случае сплайн строится наиболее просто. $$\begin{gather*} B_{1, n} (t) = B_1(t_n, t_{n + 1}, t_{n + 2}, t) = 2\left[\frac{{(t_n - t)_{\max }}}{{(t_n - t_{n + 1})(t_n - t_{n + 2})}} +\right. \\ \left. \frac{{(t_{n + 1} - t)_{\max }}}{{(t_{n + 1} - t_n)(t_{n + 1} - t_{n + 2})}} + \frac{{(t_{n + 2} - t)_{\max }}}{{(t_{n + 2} - t_n)(t_{n + 2} - t_{n + 1})}}\right] = \\ = \frac{1}{{\tau ^2 }}\left[(t_n - t)_{\max } - 2(t_{n + 1} - t)_{\max } + (t_{n + 2} - t)_{\max }\right], \end{gather*}$$

    или

    $$$ B(t) = \left\{ \begin{array}{ll} \frac {1}{\tau^2}(t_n - t - 2t_{n + 1} + 2t + t_{n + 2} - t) = 0, t \le t_n \\ \frac {1}{\tau^2}(0 - 2t_{n + 1} + 2t + t_{n + 2} - t) = \frac {1}{\tau} + \frac {t - t_{N + 1}}{\tau^2}, t_n \le t \le t_{n + 1} \\ \frac {1}{\tau^2}(0 - 0 + t_{n + 2} - t) = \frac {1}{\tau} - \frac {t - t_{N + 1}}{\tau^2}, t_{n + 1} \le t \le t_{n + 2} \\ 0, t \ge t_{n + 2} \\ \end{array} \right. $$$

    Это функция "крышка" или "крышечка". Она часто используется в качестве базисной функции в методах конечных элементов.

    Рассмотрим случай B - сплайна 2 - го порядка, задаваемого формулой

    $$$ S_k (x) = \left\{ \begin{array}{lll} {x^2 ;} {x = \frac{t - t_{k - 2}}{t_{k - 1} - t_{k - 2}}, } {t \in [t_{k - 2}, t_{k - 1} ];} \\ {1 + 2x - x^2 ;} {x = \frac{t - t_{k - 1}} {t_k - t_{k - 1}}, } {t \in [t_{k - 1}, t_k ];} \\ {2 - x^2 ;} {x = \frac{t - t_k}{t_{k + 1} - t_k}, } {t \in [t_k , t_{k + 1} ];} \\ {(1 - x)^2 ;} {x = \frac{t - t_{k + 1}}{t_{k + 2} - t_{k + 1}}, } {t \in [t_{k + 1}, t_{k + 2} ].} \\ \end{array} \right. $$$

    При t < tk - 2, t > tk - 2, $$S_k (x) \equiv 0.$$ Построенный сплайн обладает следующими свойствами:

  • a) S't (tk - 2) = S't(tk + 2) = 0 ;
  • b) S(tk - 1) = S(tk + 1) = 1 ;
  • c) S(tk - 2) = S(tk + 2) = 0.
  • При интерполяции функций можно поступить таким способом. Заметим, что для интерполяции с помощью сплайна необходимо потребовать выполнения условия

    bi - 1Si - 1 + biSi + bi + 1Si + 1= fi,

    где b — коэффициенты интерполяции, SB - сплайн, индекс указывает на точку носителя, в которой сплайн достигает своего максимума. Система таких соотношений, естественно, дополняется граничными условиями. Известно [6.5], что получившаяся система для определения коэффициентов разложения будет иметь трехдиагональную матрицу с диагональным преобладанием при выполнении ограничения на длины соседних шагов: они должны различаться не более чем в $$$ \frac{1 + \sqrt{13}}{2} $$$ раза.

  • N = 4 (кубический B - сплайн ) имеет вид $$\begin{gather*} B_{3, n}(t) = \frac{1}{{6\tau ^4 }}\left[(t_n - t)_{\max }^3 - 4(t_{n + 1} - t)_{\max }^3 + 6(t_{n + 2} - t)_{\max }^3 -\right. \\ \left. - 4(t_{n + 3} - t)_{\max }^3 + (t_{n + 4} - t)_{\max }^3\right], \end{gather*}$$

    или, после несложных упрощений:

    $$$ \left\{ \begin{array}{ll} 0, {t \ge t_n, } \\ {\frac {1}{6\tau^4}(t - t_n)^3, } {t_n{\le} t \le t_{n + 1}}, \\ {\frac {1}{6\tau} + \frac {1}{2\tau^2}(t - t_{n + 1}) + \frac{1}{2\tau^3}(t - t_{n + 1})^2 - \frac {1}{2\tau^4}(t - t_{n + 1})^3, } {t_{n + 1}{\le} t {\le} t_{n + 2}, } \\ {\frac{1}{6\tau} + \frac{1}{2\tau^2}(t_{n + 3} - t) + \frac{1}{2\tau^3}(t_{n + 3} - t)^2 - \frac{1}{2\tau^4}(t_{n + 3} - t)^3, } {t_{n + 2}{\le} t {\le} t_{n + 3}, } \\ {\frac{1}{6\tau^4}(t_{n + 4} - t)^3, } {t_{n + 3}{\le} t {\le} t_{n + 4}} \\ {0, } {t \ge t_{n + 4}} \\ \end{array} \right. $$$

    Базисные сплайны заданной степени являются линейно независимыми функциями и образуют базис в функциональных пространствах, что можно использовать для представления с их помощью других функций этих же пространств. Любая, например, кусочно - постоянная функция на отрезке, составленном из равных интервалов, может быть единственным образом представлена как линейная комбинация В - сплайнов нулевой степени, любая кусочно - линейная функция — В - сплайнов первой степени и т.д. Базисные сплайны играют существенную роль при построении численных методов решения задач математической физики, например, метода конечных элементов в теории приближения функций, при решении задач компьютерной графики.

    Для последнего класса задач также используются функции Бернштейна:

    $$\begin{gather*} B_n^{N} (t) = \frac{N!}{n!(N - n)!}\frac{{(b - t)}^{N - n}{(t - a)}^{n}}{{(b - a)}^{N}}, \\ n = 0, \ldots , N, t \in [a, b]. \end{gather*}$$

    Функции Бернштейна иногда записывают в форме рекуррентного соотношения:

    $$\begin{gather*} B_{- 1}^{N} (t) = 0, B_0^0 (t) = 1, B_i^{N} (t) = \frac{{(b - t)B_i^{N - 1} (t) + (t - a)B_{i - 1}^{N - 1}(t)}}{{b - a}}, \\ i = 0, \ldots , n, B_{N + 1}^{N} (t) = 0. \end{gather*}$$

    Такие рекуррентные последовательности применяются с целью уменьшения ошибок округления.

    Функции Бернштейна являются базисными для построения кривых Безье, активно использующихся в компьютерной графике и техническом дизайне, появившихся в результате работ Безье и де Кастильо над формами автомобилей фирм Рено и Ситроен. Подробнее о функциях Бернштейна в [6.12].

  • 6.12. Интерполяция функций двух переменных

    Пусть сетка образована пересечением прямых x = xn, n = 0, ..., N и y = ym, m = 0, ..., M, fnm = f(xn, ym) — значение функции в узле { xn, ym }. Воспользуемся, например, аппаратом кусочно - многочленной интерполяции. Для этого сначала реализуется кусочно - многочленная интерполяция заданной степени по x на каждой прямой y = ym. Затем при каждом значении x = xn реализуется кусочно - многочленная интерполяция по y с учетом значений функции, полученных на первом шаге. Так, в случае кусочно - линейной интерполяции по обоим переменным этот метод приводит (для случая прямоугольника $$x \in [x_n, x_{n + 1}], y \in [y_n, y_{n + 1}]$$ ) к интерполяционному многочлену

    $$\begin{gather*} F(x, y) = f_{nm} \frac{(x - x_{n + 1})(y - y_{m + 1})}{(x_n - x_{n + 1})(y_m - y_{m + 1})} + f_{n + 1, m} \frac{(x - x_n)(y - y_{m + 1})}{(x_{n + 1} - x_n)(y_m - y_{m + 1})} + \\ + f_{n + 1, m + 1} \frac{(x - x_n)(y - y_m)}{(x_{n + 1} - x_n)(y_{m + 1} - y_m)} + f_{n, m + 1} \frac{(x - x_{n + 1})(y - y_m)}{(x_n - x_{n + 1})(y_{m + 1} - y_m)}. \end{gather*}$$

    Сходным образом можно провести последовательную лагранжеву интерполяцию, но при каждом фиксированном значении m, затем — при каждом фиксированном значении n с учетом первого шага интерполяции. Общая формула такого интерполянта аналогична одномерной формуле для интерполяционного полинома в форме Лагранжа:

    $$\begin{gather*} L_{NM} (x, y) = \sum\limits_{n = 0}^{N}{\sum\limits_{m = 0}^{M}{f_{nm}\prod\limits_{\substack{ i = 0 \\ i \ne n}} ^{N}{\prod\limits_{\substack{ j = 0 \\ j \ne m}}^{M}{\frac{(x - x_i)(y - y_j)}{(x_n - x_i)(y_m - y_j)}}} }}. \end{gather*}$$

    Если fA, fB, fD — значение функции f(x, y) в вершинах A, B, D, некоторого треугольника на треугольной расчетной сетке, то вычислить приближенное значение функции внутри этого треугольника можно с помощью билинейной функции $$f(x, y) \approx F(x, y) = ax + by + c,$$ находя коэффициенты a, b, c из условий

    axA + byA + c = fA, 
    axB + byB + c = fB, 
    axD + byD + c = fD,

    где {xA, yA}, {xB, yB}, {xD, yD} - координаты вершин A, B, D. Погрешность такой интерполяции для функции f(x, y) с непрерывными вторыми производными будет O(h2), где h — длина наибольшей стороны треугольника АВD.

    6.13. Задачи

  • Выписать интерполяционные полиномы первой и второй степени в форме Лагранжа и Ньютона.

    Решение. Интерполяционные полиномы первой и второй степени в форме Лагранжа:

    $$\begin{multline*} L_1 (t) = f(t_0 )\frac{{t - t_1 }}{{t_0 - t_1 }} + f(t_1 )\frac{{t - t_0 }}{{t_1 - t_0 }}, \\ L_2 (t) = f(t_0 )\frac{{(t - t_1 )(t - t_2 )}}{{(t_0 - t_1 )(t_0 - t_2 )}} + f(t_1 )\frac{{(t - t_0 )(t - t_2 )}}{{(t_1 - t_0 )(t_1 - t_2 )}} + \\ + f(t_2 )\frac{{(t - t_0 )(t - t_2 )}}{{(t_2 - t_0 )(t_2 - t_1 )}}, \end{multline*} $$

    где t0, t1, t2 — узлы интерполяции, f(t1), f(t2), f(t3) - значения интерполируемой функции.

    Интерполяционные полиномы первой и второй степени в форме Ньютона:

    $$\begin{gather*} N_1 (t) = f(t_1 ) + \frac{{f(t_2 ) - f(t_1 )}}{{t_2 - t_1 }}(t - t_1 ), \\ N_2 (t) = f(t_1 ) + \frac{{f(t_2 ) - f(t_1 )}}{{t_2 - t_1 }}(t - t_1 ) + \\ \frac{1}{{t_3 - t_1 }}\left[{\frac{{f(t_3 ) - f(t_2 )}}{{t_3 - t_2 }} - \frac{{f(t_2 ) - f(t_1 )}} {{t_2 - t_1 }}}\right](t - t_1 )(t - t_2 ). \end{gather*}$$
  • Сравните количество арифметических действий, требуемое для вычисления интерполяционного полинома, записанного в двух формах:
    Ln(x) = a0 + a1t + ... + antn, 
    Ln(x) = a0 + t(a1 + t(a2 + t(... (an - 1 + cnt) ...))) (схема Горнера)

    Решение. В первом случае для вычисления значения в одной точке требуется $$$ \frac{n}{2}(n + 1) $$$ умножений и n сложений. Во втором — n умножений и n сложений.

  • Задана система узлов интерполяции:

    $$$ t_i = t_0 + \frac{{t_n - t_0 }}{{n - 1}}(i - 1), i = 1, \ldots , n. $$$

    Какова погрешность интерполяции, если n = 3?

    Решение. Сделаем замену переменных в выражении для остаточного члена

    $$$ R_3 (t) = (t - t_0)(t - \frac{t_0 + t_n}{2})(x - t_n), t = \frac{t_0 + t_n}{2} + \frac{t_n - t_0 }{2}z, z \in [- 1;1]. $$$

    Получим

    $$$ R_3 (t) = \frac{{(t_n - t_0 )}^3 }{2}(z^3 - z). $$$

    Полученный кубический полином имеет на [- 1;1] экстремумы в точках

    $$$ z_{1, 2} = \pm \frac{1}{\sqrt 3 }. $$$

    В таком случае $$$ \max \left|{R_3 (t)}\right| = \left\|{R_3 (t)}\right\| = \frac{{(t_n - t_0 )}^3 }{12\sqrt 3 } $.$$

  • Предложите простой рекуррентный алгоритм вычисления коэффициентов $$a_{i} (i = 0 \div N - 1)$$ интерполяционного полинома
    Pn(t) = a0 + a1(t - t0 ) + ... + an(t - t0) ... (t - tN - 1).

    Решение. Для коэффициентов полинома получаем систему линейных уравнений с треугольной матрицей:

    $$\left. \begin{array}{c} a_0 = f_0, \\ a_0 + a_1 (t_1 - t_0 ) = f_1, \\ a_0 + a_1 (t_2 - t_0 ) + a_2 (t_2 - t_0 )(t_2 - t_1 ) = f_2, \\ \cdots \\ a_0 + a_1(t_N - t_0 ) + \ldots + a_N (t_N - t_0 ) \ldots (t_N - t_{N - 1}) = f_N, \end{array} \right.$$

    которая легко решается от первого уравнения к последнему:

    $$$ a_0 = f_0, a_1 = \frac{{f_1 - f_0 }}{{t_1 - t_0 }}, a = \frac{1}{{t_2 - t_1 }}\left({\frac{{f_2 - f_0 }}{{t_2 - t_0 }} + \frac{{f_1 - f_0 }}{{t_1 - t_0 }}}\right), \ldots $$$
  • Оценить погрешность приближения функции ln t'(t' = 1, 23) при помощи интерполяционного полинома второй степени по точкам 1, 1; 1, 2; 1, 3.

    Решение. Остаточный член интерполяции будет

    $$$ R_N (t) = \frac{{f^{(N + 1)} (\xi )}}{{(N + 1)!}}(t - t_0 ) \ldots (t - t_N); $$$

    при N = 2 имеем:

    $$\begin{gather*} \varepsilon = \left|{f(x) - L_2 (t)}\right| \le \frac{{\max\limits_{[1, 1;1, 3]} \left|{f^{(3)} (t)}\right|}}{6}\left|{(t - t_0 )(t - t_1 )(t - t_2 )}\right|, \\ \max\limits_{[1, 3;1, 2]} \left|{f^{(3)} (t)}\right| = \frac{2}{{1 \cdot 1, 3}} \approx 1, 5. \end{gather*}$$

    В таком случае

    $$\begin{gather*} \varepsilon = \left|{\ln (t^{\prime}) - L_2 (t)}\right| \le \frac{{1, 5}}{6}\left|{(1, 23 - 1, 1)(1, 23 - 1, 2)(1, 23 - 1, 3)}\right| \approx \\ \approx 6, 9 \cdot 10^{- 5}. \end{gather*}$$
  • Показать, что погрешность интерполяции может быть выражена следующим образом:
    f(t) - LN(t) = (t - t0) ... (t - tN)f(t, t0, ..., tN),

    где f(t, t0, ..., tN)разделенная разность порядка N.

    Решение. Из выражения для разделенной разности порядка N + 1

    $$\begin{gather*} f(t, t_0, \ldots , t_N) = \frac{{f(t)}}{{(t - t_0 ) \ldots (t - t_N)}} + \frac{{f(t_0 )}}{{(t_0 - t)(t_N - t_0 ) \ldots (t_0 - t_N)}} + \ldots + \\ + \frac{{f(t_N)}}{{(t_N - t)(t_N - t_0 ) \ldots (t_N - t_{N - 1})}}, \end{gather*}$$

    получим выражение для f(t):

    $$\begin{gather*} f(t) = f(t_0 )\frac{{(t - t_1 ) \ldots (t - t_N)}}{{(t_0 - t_1 ) \ldots (t_0 - t_N)}} + f(t_N)\frac{{(t - t_0) \ldots (t - t_{N - 1})}}{{(t_N - t_0 ) \ldots (t_N - t_{N - 1})}} + \\ + (t - t_0 ) \ldots (t - t_N) \cdot f(t, t_0, \ldots , t_N) = \\ = L_N (t) + (t - t_0 ) \ldots (t - t_N) \cdot f(t, t_0, \ldots , t_N). \end{gather*}$$

    Тогда

    $$f(t) - L_N (t) \cdot (t - t_0) \ldots (t - t_N) \cdot f(t, t_0, \ldots , t_N).$$

    Сравнивая полученное выражение с выражением для остаточного члена интерполяции $$$ R_N (t) = f(t) - L(t) = \frac{{f^{(N + 1)} (\xi )}}{{(N + 1)!}}(t - t_0 ) \ldots (t - t_N), $$$ приходим к выводу, что для некоторой точки $$\xi \in [t_0, t_N]$$ имеет место соотношение между разделенной разностью и производной порядка N + 1:

    $$$ f(t, t_0, \ldots , t_N) = \frac{{f^{(N + 1)} (\xi )}}{{(N + 1)!}}. $$$
  • Пусть значения функции f(t) заданы в узлах интерполяции t1, t2, t3. Построить функцию $$$ g(t) = \frac{{a_0 + a_1 t}}{{d_0 + t}} $,$$ для которой выполнялось бы условие интерполяции: g(ti) = f(ti), i = 1, 2, 3 (задача дробно - линейной интерполяции ).

    Решение. Из условий интерполяции $$$ g(t_i) = \frac{a_0 + a_1 t_i}{d_0 + t_i} = f(t_i), i = 1, 2, 3 $$$ получаем систему трех линейных уравнений:

    a0 + a1t1 - d0f1 = t1f1, 
    a0 + a1t2 - d0f2 = t2f2, 
    a0 + a1t3 - d0f2 = t3f3.

    Вводя обозначения

    $$\begin{gather*} \tau_n = t_n - t_{i - 1}, \bar {\tau} = \frac{{\tau_n + \tau_{n + 1}}}{2}, \quad \Delta_n f = \frac{{f_n - f_{n - 1}}}{{\tau_n}}, \\ \Delta_{n + 1} f = \frac{{f_{n + 1} - f_n}}{{\tau_{n + 1}}}, \quad \delta_nf = \frac{{\Delta_{n + 1} f - \Delta_n f}}{{\bar {\tau}}}, \end{gather*}$$

    и применив метод последовательного исключения неизвестных, получим

    $$\begin{gather*} a_0 = (2t_n \Delta_n f \Delta_{n + 1} f - f_n t_n \delta_n f)/\delta_n (tf), \\ a_1 = f_n - 2\Delta_n f \Delta_{n + 1} f, b_0 = - t \delta_n (t f)/\delta_n f. \end{gather*} $$

    Здесь учтено, что $$$ \delta_n (tf) = t_n \delta_n f + \frac{{f_{n + 1} + f_{n - 1}}}{{\bar \tau_n}} $.$$ Разумеется, знаменатель дробно - рационального выражения не должен обращаться в нуль на рассматриваемом отрезке.

  • 6.14. Задачи для самостоятельного решения

  • Покажите, что интерполяционный полином в форме Лагранжа может быть построен в соответствии со следующими рекуррентными формулами: L0(t) = f(t0),

    $$\begin{gather*} L_n (t) = L_{n - 1} (t) + \left[{f(t_n) - L_{n - 1} (t)}\right] + \frac{{P_n (t)}}{{P_n (t_n)}}, \\ P_1 (t) = t - t_0, P_{n + 1}(t) = P_n(t)(t - t_n). \end{gather*}$$

  • Построить интерполяционный кубический полином $$P_3 (t) = \sum\limits_{i = 0}^3{a_i t^{i}} ,$$ для которого выполнено P3(1) = 1, P3(2) = 2, P3(3) = 2, a3 = 1.
  • Построить интерполяционный полином в форме Лагранжа для функций f(t) = | t |, f(t) = t2 по узлам - 1; 0; 1 ; и - 2; - 1; 0; 1; 2.
  • Оценить погрешность интерполяции функции f(t) = sin t на отрезке $$[0;\pi /4]$$ по трем равноотстоящим узлам.
  • Оценить, какое количество узлов интерполяции потребуется на отрезке $$[0; \pi /4]$$ для обеспечения точности $$\varepsilon = 10^{ - 3}$$ при интерполяции функции sin t.
  • Привести примеры непрерывных функций, для которых расходится последовательность интерполяционных полиномов (на равномерной сетке).
  • Какой величины необходимо выбрать шаг интерполирования $$\tau$$ для обеспечения точности $$\varepsilon \le 10^{- 4}$$ интерполяции функции $$f(t) = \sqrt[3]{t}, t \in [1;10^3 ]$$ при линейной и квадратичной интерполяции?
  • Пусть имеется таблица функции f(t) = sin t в равноотстоящих точка $$\{t_n\}_0^N,$$ причем $$\max\limits_n (t_{n + 1} - t_n) = \tau .$$ При каком $$\tau$$ линейная интерполяция позволит восстановить f(t) с точностью $$\varepsilon \le 10^{- 4}?$$ Тот же вопрос для квадратичной интерполяции. Решить задачу для случаев равномерной и неравномерной сеток $$\{t_n\}_0^{N}.$$
  • Как оценить погрешность интерполяционного процесса, если интерполируемая функция задана таблично?
  • По заданным значениям функции
    t 1 2 2,5 3
    f - 6 - 1 15,6 16

    найти значение t, при котором f(t) = 0 (решение уравнения f(t) = 0 для заданной функции методом обратной интерполяции ).

  • Построить линейный и кубический сплайны по значениям функции f(t) в точках {0, 1} и {0, 1, 2} соответственно.
  • Показать, что система линейных алгебраических уравнений для определения коэффициентов сплайна (6.3) всегда имеет единственное решение. Показать, что для этой системы устойчив метод прогонки. Оценить число обусловленности системы (6.3) в случае, когда $$h_n \equiv h $$ не зависит от номера узла.
  • Вернуться к учебному плану